본문 바로가기
Backend#Backend#Microservices#Transaction조회 2

Saga Pattern란?

정의

마이크로서비스에서 분산 트랜잭션을 여러 로컬 트랜잭션으로 쪼개고, 실패 시 보상 트랜잭션으로 되돌리는 패턴.

다른 표현사가 패턴Saga

Saga란?

여러 서비스에 걸친 비즈니스 트랜잭션을 각 서비스의 로컬 트랜잭션들의 시퀀스로 구성하고, 일부 실패 시 이전 단계를 "보상(compensate)" 트랜잭션으로 되돌리는 패턴이다.

두 가지 스타일

  • Choreography — 각 서비스가 이벤트 발행·구독 (분산형)
  • Orchestration — 중앙 오케스트레이터가 단계 조율

예: 주문 플로우

  1. 재고 차감 → 결제 승인 → 배송 생성
  2. 결제 실패 시: 재고 원복 (보상)

2PC(2-phase commit)보다 가용성 높지만 최종 일관성이라는 트레이드오프.

🔗 함께 보면 좋은 용어

Backend 전체 →