Learning
토픽 141 / 201·분산 트랜잭션 및 보안

Saga Choreography vs Orchestration

Saga Choreography vs Orchestration

Saga 패턴에서 로컬 트랜잭션 간 조율 방식을 이벤트 기반(Choreography) 또는 중앙 조정자(Orchestration)로 구현하는 두 가지 접근법

Choreography (이벤트 기반)

  • 각 서비스가 이벤트를 발행하고 다른 서비스가 구독하여 다음 단계 수행
  • 중앙 조정자 없음, 서비스 간 직접 통신 (이벤트 브로커 경유)
  • 장점: 느슨한 결합, 단순한 구현 (서비스 수 적을 때)
  • 단점: 흐름 파악 어려움, 순환 의존 위험, 디버깅 난이도↑

Orchestration (중앙 조정자)

  • Saga Orchestrator(오케스트레이터)가 각 서비스에 명령을 보내고 응답을 받아 흐름 제어
  • 중앙 집중식 워크플로 관리, 상태 머신으로 구현
  • 장점: 흐름 가시성↑, 복잡한 비즈니스 로직 관리 용이, 디버깅 편리
  • 단점: 오케스트레이터 SPOF 위험, 결합도↑

비교표

연관: Saga 패턴, 마이크로서비스, 이벤트 소싱, 분산 트랜잭션