Choreography vs Orchestration
Advanced Ecosystem 🔴 SeniorDefinition
Deux approches de coordination de services. Orchestration : un chef centralisé dirige (Temporal). Chorégraphie : chaque service réagit aux événements des autres (event-driven).
Analogie
Orchestre symphonique (chef d'orchestre dirigeant chaque musicien) vs danse de salon (chaque danseur réagit aux mouvements du partenaire).
Exemple de code
// Orchestration (centralized)
await paymentService.charge(order);
await inventoryService.reserve(order);
await shippingService.ship(order);
// Choreography (event-driven)
eventBus.emit('order.created', order);
// Each service listens and reacts independently
Cas d'usage
Choisir orchestration pour les workflows critiques avec compensation, chorégraphie pour le découplage maximal.
Anti-pattern
Mélanger les deux approches sans stratégie claire, créant un système ni centralisé ni décentralisé.