Sagas manage transactions across services without distributed locks.
Choreography:
Each service publishes events, others react. No central coordinator.
- Pros: Loose coupling, no single point of failure
- Cons: Hard to track, implicit flow
Orchestration:
Central orchestrator directs each step.
- Pros: Clear flow, easier debugging
- Cons: Orchestrator becomes critical path
Compensation:
If step N fails, trigger compensating actions for steps to N-. Example: Cancel order, release inventory, refund payment.