Saga Coordination

Choreography는 이벤트가 다음 단계를 부르고, Orchestration은 조정자가 명령한다

둘 다 로컬 트랜잭션의 연쇄지만 책임 위치가 다르다. 장애 추적과 변경 관리가 쉬운 쪽을 선택한다.

Choreography

Order

OrderCreated 발행

Inventory

StockReserved 발행

Payment

결과 이벤트 발행

Orchestration

Orchestrator

상태와 다음 명령 결정

Service

명령 수행 후 응답

Compensation

실패 시 역순 지시

결합도

Choreography는 중앙 조정자가 없지만 이벤트 계약이 중요하다.

관찰성

Orchestration은 한 곳에서 진행 상태와 실패 위치를 추적하기 쉽다.

변경 비용

단계가 자주 바뀌면 명시적 조정자가 관리하기 쉽다.