Production gotchas — topology, timeouts, concurrency
The DAG failures that become pages: unbounded concurrency, missing catchup policy, and a backfill that starves the daily run — cap them with max_active_runs and pools, then wire the monitoring and escalation path the backfill runbook prescribes.
At a glance
| When | Hardening a DAG before it takes production traffic; Planning a backfill that runs beside live schedules |
|---|---|
| Where | Airflow / Orchestration |
| Why | Unbounded concurrency and a missing catchup policy only surface when a backfill collides with the daily run — cap both first. |
Learning objectives
- Cap max_active_runs and pool limits before a backfill starves the daily run
- Find unsafe retries, missing catchup policy and unbounded concurrency
- Monitor backfill progress, resource contention and validation pass rate
What you need
- The DAGs currently in production
- The daily production schedule and golden-hour windows
- [object Object]
Steps
- Check the DAG for unsafe retries, missing catchup policy, ambiguous catchup/backfill semantics and unbounded concurrency. (from skill-airflow-dag-reviewer )
- Cap max_active_runs and pool limits so a backfill cannot starve the daily run. (from skill-airflow-dag-reviewer )
- Never overlap the production window; never backfill without a rollback path. (from pattern-backfill-safety )
- Design against the incident — an unmanaged backfill can starve daily production runs and double-write history. (from runbook-backfill-required )
- Monitor backfill progress, resource contention and validation pass rate. (from runbook-backfill-required )
- Schedule with the platform owner; escalate if the backfill window collides with a golden-hour production run. (from runbook-backfill-required )
Check yourself
- max_active_runs and pool limits are set on every DAG a backfill could touch.
- The escalation path names the platform owner and the golden-hour window that must stay clear.
Worked example
Concurrency guard from the checklist — from skill-airflow-dag-reviewer
`max_active_runs` and pool limits prevent a backfill from starving the daily run.
What the reviewer flags — from skill-airflow-dag-reviewer
Non-idempotent tasks, unsafe retries, missing catchup policy, ambiguous
catchup/backfill semantics and unbounded concurrency.
Sourced from
Security scan
Last sweep 2026-10-24: 0 finding(s), 0 marked as examples.
Common gotchas
- Cap max_active_runs and pool limits so a backfill cannot starve the daily run.
- Never overlap the production window; never backfill without a rollback path.
- Ambiguous catchup/backfill semantics are a review finding, not a footnote.
Production considerations
- Monitor backfill progress, resource contention and validation pass rate.
- Escalate if the backfill window collides with a golden-hour production run.
Diagram
production topology
|
|- max_active_runs + pools --> contention capped
|
|- catchup policy --> catchup/backfill semantics explicit
|
|- monitoring --> progress, contention, validation pass rate
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 | intermediate |
| Version | 0.1.0 |
| License | CC-BY-4.0 |
| Security flags | none |
Did this solve your problem?
Production gotchas — topology, timeouts, concurrency