Pattern · seen in 1 breakdown across 1 company
Choreography vs Orchestration
Two ways to run a process that spans several services: let each service react to the previous one's event with no one in charge, or let one engine own the steps and direct each service.
The mechanism
At its core: when several services handle one job, either nobody is in charge and each reacts to the last one's event, or one engine holds the steps and directs everyone. The first has nothing central to fail but cannot tell you the current status of the job. The second can, but everything depends on the engine. The engine becomes a single, shared dependency.
Break a service and see who can still say where order #42 is - and what happens when the thing that knows goes down.
Definition
When one job needs several services to finish it - take the order, charge the card, ship the box - something has to decide what happens next. There are two ways to arrange that:
- choreography - no one is in charge. Each service listens for an event, does its own step, and announces a new event for the next service to pick up
- orchestration - one engine is in charge. It holds the list of steps and tells each service when to do its part
Choreography keeps services loosely tied, and there is nothing central to run or to fail. The catch is that the process itself is written down nowhere: it only exists in the chain of events passing between services. That makes it hard to change, and when something stalls you cannot simply ask which orders are stuck and where. Orchestration turns the process into a real thing you can look up, change, and restart from where it stopped. The price is a central engine that every flow now depends on.
This is the first choice to make. Once you decide the process needs an owner, the next question is where that engine should live - inside your service, or as a shared platform - which is what embedded vs centralized orchestration covers. Most systems start with choreography and move to some kind of engine before that second question comes up.
When it applies
Tradeoffs
The same move, 1 ways
Every row is a production system that bet on this pattern — the note says how, in that system's own terms.
Problems this pattern answers
The walls where its breakdowns live — each opens the cross-company comparison.