분산 트랜잭션 — 2PC, 3PC, 사가 패턴

별점: ★★★★★ | ★132회 기출


답안.

Ⅰ. 개요

분산 트랜잭션: 여러 노드에 걸친 트랜잭션에서 전체 원자성 보장 문제.

Ⅱ. 핵심 구성요소

[Phase 1: 준비(Prepare)]
코디네이터 → 참여자들: "커밋 준비됐나?"
참여자: 로그 기록 후 "Yes" or "No"

[Phase 2: 커밋(Commit)]
모두 Yes → 코디네이터: "커밋!"
하나라도 No → 코디네이터: "롤백!"

문제점:
- 코디네이터 장애 시 블록킹 (2PC 한계)
- 성능 저하 (2번의 라운드트립)
[Choreography 방식]
주문서비스 → 이벤트(주문생성) → Kafka
  ↓
결제서비스 구독 → 결제 → 이벤트(결제완료)
  ↓
재고서비스 구독 → 재고감소 → ...

실패 시: 보상 트랜잭션(Compensating Transaction) 발행
예) 결제 실패 → 주문 취소 이벤트 발행

[Orchestration 방식]
사가 오케스트레이터가 각 서비스에 명령 전달
중앙 집중식 흐름 제어

해당 키워드의 기술적 구성요소와 동작 원리를 서술한다.

Ⅲ. 특징 및 비교

핵심 기술의 장단점과 유사 기술과의 차이를 분석한다.

Ⅳ. 적용 사례

실무 환경에서의 적용 사례와 기대효과를 제시한다.

Ⅴ. 전망

최신 기술 동향과 향후 발전 방향을 서술한다.