Data & Analytics
Airflow backfill concurrency one does not prove run order
Test ordering-sensitive backfills under multiple Airflow schedulers.
November 2, 2026
Many backfills are safe in any order. Some carry state forward from one interval to the next. An Airflow issue reports that with multiple schedulers a later backfill DagRun can be promoted before an earlier one, even when max_active_runs is one. The cap limits overlap, but it is not a sequence guarantee.
Classify the backfill dependency
Write down whether interval N needs output or state from interval N minus one. If not, order may be irrelevant. If yes, capture the required sequence and how the DAG enforces it. Do not rely on a concurrency setting to express a data dependency.
Test the real scheduler topology
Create a small backfill in staging with the same scheduler count and run settings. Record creation and actual start times for each logical date. Include retries and paused or failed intervals. A single-scheduler test may miss the reported race.
Make sequence explicit
Use dependency checks or a controlled serial driver when the business outcome requires order. Reconcile output after the run and restart from the last verified interval on failure. Track the upstream issue and remove the workaround only after the target release passes your ordering test.
Adovo’s view
Concurrency controls capacity; dependencies control meaning. When one interval consumes the previous interval’s result, encode that relationship directly. A one-run cap can keep the cluster calm while still putting the wrong run first.
