Apache Airflow schedules data pipelines as directed acyclic graphs (DAGs) —
a task only starts once every task it depends on has finished successfully. This
scene shows one pipeline (extract → validate → transform → join → load →
dbt models → notify) laid out left to right, with tasks changing color as
the scheduler moves them through their lifecycle.
parallelism/pool slots: how many tasks can run at once across all DAG runs.backfill command replays missed schedule intervals — watch them compete for the same worker pool.Because Airflow models dependencies explicitly as a graph rather than as a chain of cron jobs, it can safely re-run just the failed branch of a pipeline, parallelize independent branches, and backfill months of missed runs — none of which a plain cron schedule can express.
A pipeline of eight tasks is laid out as a directed acyclic graph. Watch tasks move from pending to queued to running to success (or retry and fail) exactly as Airflow's scheduler would sequence them, gated by dependencies and a shared worker pool.
A task only queues once every upstream task has succeeded; a light pulse fires down each outgoing edge on success, unlocking the next task. Failed tasks retry automatically before failing the branch, and a limited worker pool forces queued tasks to wait their turn.
Adjust run speed, the task failure rate, and the worker pool size. Toggle backfill to launch several DAG runs at once and watch them compete for the same pool of workers, the way Airflow replays missed historical schedule intervals.
Because Airflow encodes dependencies as an explicit graph instead of a sequence of cron jobs, it can retry only the failed branch, run independent branches in parallel, and backfill months of missed runs — none of which a plain cron chain can do safely.