Saga: Orchestration vs Choreography — Trade-offs and When to Choose Each
Fast recall
Quick revision
Core answer
Whether you understand saga as a concept AND can articulate concrete trade-offs — not just the definitions
Thinking one is universally better; treating 'everything via events' as automatically choreography; missing that orchestration engines are often the right industrial choice
Walk through the specific pain points of choreography at scale (emergent behaviour, implicit workflow), then explain why Temporal-style durable workflows have taken over complex sagas; discuss observability differences
Interview-ready guide
Interview answer
The saga problem
- A sequence of local transactions across services with compensation instead of 2PC
- Classic example: checkout — reserve inventory, authorize payment, schedule shipping, any step can fail
- Failure triggers compensating actions to maintain business invariants
- Two implementation styles: choreography and orchestration
Choreography in plain terms
- Services emit domain events; other services subscribe and react
- Order service emits OrderCreated; inventory reserves stock and emits StockReserved; payment authorizes and emits PaymentAuthorized; shipping ships
- Failures emit compensating events: StockReservationFailed, PaymentFailed, etc
- No central coordinator; each service owns its bit
- The overall flow is emergent — nobody owns it
Orchestration in plain terms
- A central saga orchestrator holds the workflow
- Issues commands to services, receives replies, decides next step
- On failure, issues compensating commands explicitly
- Tools: Temporal (workflow-as-code), Camunda (BPMN visual), Netflix Conductor, AWS Step Functions
- The workflow has an identity, status, and visible state machine
When to pick choreography
- 2 to 3 services involved; flow fits in your head
- Event-driven architecture already established; Kafka disciplined
- Strong domain separation; no service needs the overall flow
- Simple compensation — one failure triggers at most 1 or 2 compensating events
- High throughput, simple plumbing
When to pick orchestration
- 4 or more steps; flow complexity exceeds mental model
- Explicit compensation needed; regulated industries
- Business requires visible workflow for audit or compliance
- Stakeholders want to watch running workflows
- Flow evolves often; centralized editing is easier
- Need durable execution, retries, timeouts as first-class features
The observability tiebreaker
- Choreography: distributed tracing across services; no flow entity to look at
- Orchestration: the workflow IS the flow entity; Temporal UI or Camunda Cockpit show running state
- Regulated or compliance-heavy flows — orchestration wins
- High-throughput event pipelines — choreography wins
The distributed monolith trap
- Teams start with choreography at 2 services, add more
- Each new service subscribes to N events and emits M
- Event graph becomes a knot; nobody understands the flow
- Symptoms: features require editing 5 services; debugging takes hours; emergent surprises
- Prevent by switching to orchestration as complexity grows past 4 services
Compensation design
- Backward recovery: undo earlier steps — cancel, refund, release
- Forward recovery: retry the failing step until it succeeds; requires idempotency
- Semantic compensation: compensation isn't perfectly symmetric; email already sent can't be unsent
- Idempotency is non-negotiable in any saga step
Temporal-style durable workflows
- Workflow-as-code: write in Java, Go, TypeScript, or Python
- Runtime persists every state change; crashes resume from last checkpoint
- Unit-testable like regular code
- Shifted the default — complex sagas on Temporal, Conductor, Step Functions are now the norm
- Pure choreography for complex flows is rarer than 5 years ago
Hybrid is common
- Orchestrator handles the main flow
- Emits an OrderCompleted event; marketing, analytics, recommendations subscribe independently
- Choreography for side-effect fanout is simpler
- Orchestration for the critical path is safer
Cost and benefit
- Choreography: low infra cost, low coupling, low observability, unpredictable at scale
- Orchestration: extra cluster to run, visible flow, explicit compensation, bounded by orchestrator throughput
The rule of thumb
- Choreography below 4 steps and 3 services
- Orchestration above
- Hybrid for mixed patterns
- In 2026, pure choreography for complex sagas is rarer; Temporal-style orchestration has become the industrial default
The strategic answer
- Both patterns achieve the same business outcome
- Choreography: decoupled, lean, emergent; great at small scale
- Orchestration: explicit, observable, durable; great for complex or regulated flows
- The tiebreaker is observability and compensation explicitness
- Temporal and similar tools make orchestration lightweight; complex sagas have largely moved there
- Hybrid is often the mature answer — orchestrated critical path plus choreographed fanout
Saga: Orchestration vs Choreography — Trade-offs and When to Choose Each
Direct Answer
Choreography: services emit domain events and react — no central coordinator. Simple for 2–3 services; becomes a 'distributed monolith' at 5+ (hard to see the flow, every service knows every event, emergent behaviour unpredictable). Orchestration: a central saga orchestrator (Temporal, Camunda, Netflix Conductor, Axon) issues commands and receives replies; compensating actions on failure are explicit. Pick choreography for small, decoupled event flows; pick orchestration when the flow has 4+ steps, needs explicit compensation, or must be visualized. Observability is the tiebreaker: orchestration gives you a running workflow you can watch; choreography gives you traces across services.
Common Mistakes & Pitfalls
Thinking one is universally better; treating 'everything via events' as automatically choreography; missing that orchestration engines are often the right industrial choice
Check your understanding
Answer these without looking back at the article.
- How does Temporal's 'workflow-as-code' differ from Camunda's BPMN approach?
- What exactly is the 'distributed monolith' trap in choreography, and how do you detect it?
- How would you migrate a choreographed saga to orchestrated (Temporal) without downtime?
- What's the difference between backward, forward, and semantic compensation in sagas?
Related interview prep categories
2Want a guided curriculum order?
These modules are also sequenced in our flagship backend interview track — open it when you prefer an ordered path instead of browsing by topic.