"매 service 가 자기 part 의 dance step 을 알고 events 으로 react — 매 central conductor 없음.". Choreography는 distributed workflow를 events 의 emit/subscribe 로 구현하는 pattern. Orchestration 의 반대 — 매 decoupling 매 high, 매 visibility 매 low. 2026년 event-driven microservices, EDA, Saga pattern 의 핵심 선택지.
매 핵심
매 Choreography vs Orchestration
측면
Choreography
Orchestration
Control
Distributed
Centralized (orchestrator)
Coupling
Low (events)
Higher (orchestrator knows all)
Visibility
Hard (trace tools 필요)
Easy (one workflow definition)
Add new step
Just subscribe
Edit orchestrator
Failure handling
Each service handles own
Orchestrator decides
Examples
Kafka events, NATS
Temporal, AWS Step Functions
매 패턴 종류
Event-carried state transfer: event 가 모든 필요 data 포함.
Event notification: event 는 trigger only, state 는 query.
Saga choreography: distributed transaction 의 compensating events.
매 응용
E-commerce order flow (OrderCreated → Payment → Shipping events).
User signup pipeline (UserRegistered → emails → analytics).
// Order service
asyncfunctioncreateOrder(req: CreateOrderRequest){constorder=awaitdb.orders.insert({...req,status:'pending'});awaitkafka.produce('order.created',{orderId: order.id,userId: order.userId,amount: order.total,});returnorder;}// Order service also listens for compensations
kafka.consume('payment.failed',async(evt)=>{awaitdb.orders.update(evt.orderId,{status:'cancelled'});awaitkafka.produce('order.cancelled',{orderId: evt.orderId});});