Choreography vs Orchestration

Advanced Ecosystem 🔴 Senior

Definition

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é.

Termes lies

#architecture#distributed#microservices