Open skarltjr opened 2 years ago
대안 2 : SAGA패턴
즉 한 번에 모든 트랜잭션을 관리할 수 없다.
최종적인 일관성을 맞추겠다.
saga pattern에는 크게 두 종류가 있다.
Choreography & Orchestration
- Orchestration방식
Orchestration 방식은 중앙 집중식 방식이라는것으로부터 장점,단점이 존재한다. 장점 :
단점 :
작은 서비스에선 간편하게 사용할 수 있지만 결국 확장과 단일 장애지점이라는 한계가 명확
- Choreography 방식
각각 서비스끼리 이벤트에 기반한 통신 보상 트랜잭션을 통한 최종 일관성
장점 :
단점 :
- Choreography 방식은 서비스끼리 직접적으로 통신하지 않고, 이벤트 Pub/Sub을 활용해서 통신하는 방식
- 프로세스를 진행하다가 여러 서비스를 거쳐 서비스에서 실패가 난다면 보상 트랜잭션 이벤트를 발행
- 중앙 집중식으로 오케스트레이터라는 관리자가 존재
- 실패 이벤트 발생시 관리자에게 이벤트를 전달
- 관리자가 모두에게 롤백 이벤트 전달
문제 :
대안 1: Two-Phase Commit