Aether is a Go framework for building workflow orchestration systems. It implements the Graph Workflow Protocol (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/BabySid/aether/llms.txt
Use this file to discover all available pages before exploring further.
aether/v1), a declarative protocol for expressing workflows as JSON documents with typed resources — Workflow, CronWorkflow, and WorkflowTemplate. Aether handles DAG scheduling, loop iteration, conditional branching, retry/timeout policies, cron scheduling, and suspend/resume patterns, while delegating all execution logic to pluggable backends you control.
Quickstart
Wire up the engine and run your first workflow in minutes
Architecture
Understand the hexagonal design and how all pieces fit together
Core Concepts
Learn the workflow model, templates, phases, and parameter binding
Extension Points
Implement custom executors, stores, and brokers for your infrastructure
What Aether provides
Aether is a scheduler and coordinator — it never executes task logic itself. All execution is delegated to pluggableexecutor.Plugin implementations dispatched through a broker.TaskBroker. This separation means your workers can run in-process, in separate goroutines, or on remote machines without changing the engine.
DAG Orchestration
Dependency-driven task scheduling with parallel execution and conditional branching
Loop Primitives
Static item lists, dynamic itemsFrom, and repeatCondition loops with concurrency control
Cron Scheduling
Periodic workflow execution with Allow, Forbid, and Replace concurrency policies
Retry & Timeout
Per-task retry policies with expression-based conditions and deadline enforcement
Suspend & Resume
First-class human-approval gates and external callback patterns
Lifecycle Hooks
Workflow and task-level event notifications for monitoring and automation
Get started
Implement required interfaces
Provide a
store.Store, broker.TaskBroker, executor.Plugin, and idgen.Generator. Start with in-memory implementations for development — see the Quickstart for working examples.Create and start the engine
Wire everything together with functional options and call
Start() to launch background services.Protocol-first design
Aether defines a declarative protocol rather than an imperative framework. Workflows are expressed as JSON/struct documents, following the Kubernetes resource model. The engine is a runtime that interprets these documents — not a library you extend by subclassing.Aether’s core engine has zero external dependencies. All infrastructure concerns (state persistence, task dispatch, expression evaluation, secrets, etc.) are injected via interfaces — you choose the implementations.