The orchestration mental model — DAGs, schedules, idempotency, backfills
Build the map before touching code: a DAG plus its schedule decides when runs happen, the idempotency test decides whether re-runs are safe, catchup decides what happens to missed intervals, and a backfill decides how history gets fixed — four decisions every later lesson sharpens.
At a glance
| When | Designing your first recurring pipeline; Onboarding onto a codebase full of scheduled DAGs |
|---|---|
| Where | Airflow / Orchestration |
| Why | Orchestration is four decisions — what runs, when it runs, whether re-runs are safe, and how history gets fixed — and every later lesson sharpens one of them. |
Learning objectives
- Name the four decisions orchestration makes — schedule, catchup, idempotency, backfill
- Apply the idempotency test to a task before running anything
- Say what a backfill is for and why it is dangerous
What you need
- An Airflow project to reason about — real or planned
- The pipeline's schedule and SLA
- The Airflow documentation at airflow.apache.org/docs
Steps
- Airflow's documentation covers DAG authoring, scheduling semantics and timetables, backfills and catchup, task state and retries, dynamic task mapping, and best practices — that list is the map of orchestration. (from ref-airflow-docs )
- Read the scheduling and best-practices pages before designing any recurring pipeline — they answer the idempotency and backfill questions the skills only sketch. (from ref-airflow-docs )
- Set `catchup` as a deliberate choice, not a default. (from skill-airflow-dag-reviewer )
- Hold every task to the idempotency test — "If this task runs twice for the same logical date, is the output the same?" (from skill-airflow-dag-reviewer )
- If no, fix it before anything else — retries will happen. (from skill-airflow-dag-reviewer )
- A backfill exists because historical output is wrong or missing and must be recomputed safely, without breaking production. (from runbook-backfill-required )
- Respect its blast radius — backfills corrupt production or take down the daily run. (from pattern-backfill-safety )
Check yourself
- You can say what a DAG, a logical date, `catchup` and a backfill each decide about a pipeline.
- Asked whether a task is safe to re-run, you reach for the idempotency test instead of a guess.
- Given a wrong historical date range, you name the backfill runbook before touching anything.
Worked example
The idempotency test — from skill-airflow-dag-reviewer
"If this task runs twice for the same logical date, is the output the same?"
If no, fix it before anything else — retries will happen.
What the Airflow docs cover — from ref-airflow-docs
DAG authoring, scheduling semantics and timetables, backfills and catchup,
task state and retries, dynamic task mapping, and best practices.
Sourced from
Security scan
Last sweep 2026-10-24: 0 finding(s), 0 marked as examples.
Common gotchas
- `catchup` is a deliberate choice, not a default.
- Retries will happen — fix a task that is not idempotent before anything else.
- Backfills corrupt production or take down the daily run when run unmanaged.
Production considerations
- The scheduling and best-practices pages answer the idempotency and backfill questions the skills only sketch.
- Keep pipelines idempotent so a backfill is a routine operation.
Diagram
orchestration mental model
|
|- DAG + schedule + catchup --> when runs happen
|
|- idempotency test --> whether re-runs are safe
|
|- backfill + shadow swap --> how history gets fixed
Registry stats
| Verification | community · Oct 23, 2026 |
|---|---|
| Completeness | 81 |
| Trust multiplier | ×1.25 |
| Composite | 34.15 · adequate |
| Freshness | 1 days since last source check |
| Difficulty | beginner |
| Version | 0.1.0 |
| License | CC-BY-4.0 |
| Security flags | none |
Did this solve your problem?
The orchestration mental model — DAGs, schedules, idempotency, backfills