orchestration: conductor at musical orchestra choreography: dancers
Orchestration single point of failure services depend on orchestrator lots of communication
order placement needs to be highly available
- orchestrator needs to be highly available
- order placements needs to be highly available
smaller orchestrator (vs Enterprise Service Bus) eg. Order Placement Orchestrator, Order Cancellation Orchestrator
logic shifts to the orchestrator
error handling becomes a design decision
- in the orchestrator?
- in the service?
-> no new lines, so not architecture, but design
Choreography
highly available, only the starting service
event-driven architecture is typically choreographed
error handling what if payment says: “oh, but they removed that credit card”
“where is my order?” -> there is no state owner either:
- make order placement state owner
- new customer facing service for state ownership
Hybrid async or sync