CHOREOGRAPHY-VS-ORCHESTRATION
Choreography vs orchestration is the architectural comparison between orchestration (a central coordinator drives) and choreography (services react to events with no coordinator), a structuring choice for multi-system EDI flows.
Definition
Orchestration: a coordinator (Saga orchestrator, BPM, workflow engine like Temporal/AWS Step Functions) calls services in order, handling errors and compensations. Choreography: each service listens to events and publishes the next, without a central coordinator. Trade-off: coupling vs traceability.
Origin
Distinction popularised by Sam Newman (Building Microservices, 2015). Earlier debated in the BPM/ESB world (Workflow Patterns, van der Aalst, 2003).
Use
An EDIFACT ORDERS arriving that must: validate stock, debit account, emit ORDRSP. Orchestration: a Temporal workflow Stock → Debit → ORDRSP, with retries and compensations centralised. Choreography: Kafka events 'order.received' → stock service reacts → publishes 'stock.reserved' → account service reacts, etc. Freer but harder to debug.
Related terms
- Saga pattern — implementation of both.
- Event sourcing — choreography foundation.
- Kafka — choreography transport.
- Integration broker — general concept.