Trigger Rules in Apache Airflow
Deciding When a Task Should Run β±οΈβ
The Story: Success Isnβt Always Requiredβ
Imagine this situation:
- One branch succeeds
- Another branch is skipped
- A third branch fails
Now a downstream task asks:
βShould I run?β
By default, Airflow answers:
βOnly if everything succeeded.β
But real-world workflows are more nuanced.
Thatβs why Trigger Rules exist β
to precisely control when a task is allowed to execute.
What Are Trigger Rules?β
A trigger rule defines the conditions under which a task runs, based on the state of its upstream tasks.
Trigger rules evaluate:
- Success
- Failure
- Skipped
- Upstream completion states
Default Trigger Ruleβ
all_success
Meaning:
- Every upstream task must succeed
- Any failure or skip prevents execution
This is safe β but often too strict.
Why Trigger Rules Matterβ
Without custom trigger rules:
- Branching breaks downstream logic
- Cleanup tasks donβt run
- Notifications donβt fire
- DAGs behave unexpectedly
With trigger rules:
- Pipelines become predictable
- Edge cases are handled
- DAGs become production-ready