Orchestration

Coordinating work by dependency, state and time. Why a scheduler is not an orchestrator, what a failed task in the middle of a DAG means, and why idempotency is the property that makes re-running safe.

Orchestration

Coordinating work by dependency, state and time — deciding not only when a task may start but whether it should, and what its result means.

Q · What actually decides that a task is allowed to run right now, and what does the orchestrator know that a clock does not?
Scheduler vs Orchestrator

"Run at 02:00" versus "run B after A succeeds, retry C, skip D if the source is empty" — a difference in what the system remembers, not in how it is configured.

Q · When does a schedule stop being sufficient, and what exactly does an orchestrator add beyond firing a command at a time?
Airflow Concepts

A DAG of tasks, a scheduler, a metadata database and workers — and the logical data interval, which is the most misunderstood idea in orchestration.

Q · When a run is labelled 2026-03-11 but executes on the 12th, which day's data is it responsible for — and what happens when you re-run it in June?
Task Dependencies

The edges are the program. What "B runs after A" means when A is skipped, when A is upstream of forty tasks, and when B secretly reads a table nobody declared.

Q · What does "after" actually mean in a task graph — after success, after completion, after data arrival — and which edges are missing from your graph right now?
When a Task Fails Mid-DAG

A succeeded, B succeeded, C failed. Re-run everything, only C, or C and everything downstream? The answer is decided entirely by idempotency.

Q · A task fails in the middle of a graph that has already written data. What is safe to re-run, and how do you know the parts that succeeded are still correct?
Idempotent Data Pipelines

Re-running the same logical input must not corrupt or duplicate the result. A pipeline that cannot be re-run is a pipeline whose every bug is permanent.

Q · If I run this task twice for the same interval, is the result identical to running it once — and if not, what exactly do I do the next time I find a bug in it?
Incremental Processing

Process what is new instead of recomputing ten years — and inherit, in exchange, every problem of state: watermarks, late data and two eras in one table.

Q · Which records does this run actually need to process, and what happens to the ones that should have been in the last run but were not there yet?
The High-Water Mark

"Processed through offset X" — the one piece of state that decides what a restart re-reads, and why a log position is a promise and a timestamp is a guess.

Q · After a crash, where does this pipeline resume — and is the thing it resumes from an exact position or an approximation of one?