Process Flow - Catchup and backfill behavior
DAG Start Date
Scheduler checks DAG runs
Are there missing runs before today?
No→Run only current schedule
Yes
Catchup enabled?
No→Run only current schedule
Yes
Scheduler creates DAG runs for missing intervals
Runs execute in order
Backfill command?
No→Continue normal scheduling
Yes
Backfill creates DAG runs for specified intervals
Runs execute immediately
Backfill complete
This flow shows how Airflow decides to run past DAG runs (catchup) and how manual backfill triggers immediate runs for past intervals.