The DAG
Jobs in a workflow form a directed acyclic graph (DAG) based on theirneeds: fields.
Athanor uses Kahn’s algorithm to topologically sort jobs into levels. Jobs at the same
level run concurrently.
Simple Chain
first → second → third (sequential).
Fan-Out / Fan-In
test and build run in parallel after lint completes. deploy waits for both.
Failure Propagation
If a job fails, all jobs that depend on it (directly or transitively) are skipped:failure status.
Cycle Detection
Circular dependencies are caught at parse time:cycle detected in job dependencies.
No Dependencies
Jobs with noneeds: field all run in the first level, concurrently: