Atomicity, Consistency → Commit Transaction

Atomicity, Consistency → Rollback Trasaction
데이터 마지막 상태만 저장하는 것이 아닌, 해당 데이터에 수행된 전체 이력을 기록
데이터 구조 단순
데이터의 일관성과 트랜잭션 처리 가능
데이터 저장소의 개체를 직접 업데이트 하지 않기 때문에, 동시에 대한 충돌 문제 해결

도메인 주도 설계
메시지 중심의 비동기 작업 처리
단점
상태를 변경하는 COMMAND
조회를 담당하는 QUERY

→ Event Store = Kafka, Event Handlers = Topic 에 전달된 값을 Catch
처리방식
Choreography-based saga

Orchestration-based saga

차이점 : orchestration 은 중앙 집중적인 처리 방식이며(broker 를 통한 연결) choreography 방식은 개별적인 서비스가 통신을 통해 처리한다.
정리 :
개념
적합 상황
보상 트랜잭션
| 구분 | Orchestration | Choreography |
|---|---|---|
| 보상 트랜잭션 책임 | 오케스트레이터가 보상 트랜잭션을 관리 | 각 서비스가 보상 트랜잭션을 자체적으로 관리 |
| 트랜잭션 상태 관리 | 중앙에서 상태를 관리하여 일관성 유지 용이 | 개별 서비스가 상태를 관리하며 분산적 |
| 보상 트랜잭션 트리거 | 오케스트레이터가 호출 | 이벤트 기반으로 보상 트랜잭션이 트리거됨 |
| 구현 난이도 | 트랜잭션 추적과 관리가 상대적으로 쉬움 | 서비스 간 협조 필요, 복잡한 이벤트 관리 요구 |
| 복구/롤백 모니터링 | 중앙에서 일관된 모니터링 가능 | 분산된 상태로 각 서비스에서 개별적으로 모니터링 |