Skip to main content

The DAG

Jobs in a workflow form a directed acyclic graph (DAG) based on their needs: fields. Athanor uses Kahn’s algorithm to topologically sort jobs into levels. Jobs at the same level run concurrently.

Simple Chain

Execution: firstsecondthird (sequential).

Fan-Out / Fan-In

Execution:
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:
The workflow finishes with a failure status.

Cycle Detection

Circular dependencies are caught at parse time:
This produces an error: cycle detected in job dependencies.

No Dependencies

Jobs with no needs: field all run in the first level, concurrently:
All three start at the same time.