Decision guide

Choreography vs Orchestration

How should services coordinate a multi-step business process?

Side by side

CriterionChoreographyOrchestration
CouplingEvent contracts between servicesServices coupled to coordinator's commands
VisibilityNeeds tracing to reconstructCentral state per process
Changing the flowTouches multiple servicesChange the orchestrator
Failure handlingDistributed compensationsCentralized compensations/timeouts
RiskHidden cyclic dependenciesOrchestrator becomes a god service
ToolingBrokers + tracingTemporal, Step Functions, Camunda

When to choose each

Choreography

Services react to each other's events; no central coordinator.

Choose when

  • Short, stable flows (2–3 steps)
  • Highly decoupled teams

Avoid when

  • Long flows with many branches and timeouts

Orchestration

A coordinator (service or workflow engine) sends commands and tracks state.

Choose when

  • Complex flows with compensations and timeouts
  • Need for visibility and auditing of each process

Avoid when

  • Trivial notifications that don't need coordination

Verdict

Use choreography for simple, stable reactions; use orchestration (often a durable workflow engine) when a process has many steps, timeouts and compensations or when the business needs to see where each instance is.

Learn more

Sources