🚀 Saga Orchestration in Microservices Explained with Real Movie Booking Example 🎬
- 사가 코레오그래피의 한계점(서비스 간 강한 결합, 복잡한 보상 로직)을 해결하기 위해 사가 오케스트레이션 패턴이 도입되었습니다. 🔗
- 사가 오케스트레이션은 중앙 집중식 '오케스트레이터' 레이어를 통해 분산 트랜잭션의 전체 워크플로우를 제어합니다. 🧠
- 오케스트레이터는 마이크로서비스에 명령을 보내고, 응답(성공/실패 이벤트)을 수신하며, 이에 따라 다음 단계를 결정하거나 보상 명령을 발행합니다. 🚦
- 이 패턴은 서비스 간의 느슨한 결합을 촉진하고, 시스템 일관성을 보장하며, 장애 발생 시 강력한 복원력을 제공합니다. 💪
- 영화 예약 시스템을 예시로, 예약, 좌석 예약, 결제 과정을 포함한 상세한 성공 및 실패 시나리오별 워크플로우를 설명합니다. 🎬
- 실패 발생 시 오케스트레이터가 이전 작업에 대한 명시적인 롤백 명령을 서비스에 전송하여 데이터 일관성을 유지합니다. ↩️
- 구현은 별도의 오케스트레이터 마이크로서비스 생성, Kafka를 통한 명령/이벤트 통신 설정, 기존 서비스의 오케스트레이터 명령 수신 및 처리 적응을 포함합니다. 🛠️
- Kafka 토픽을 명령(요청)과 이벤트(응답)로 분리하여 불필요한 통신(핑퐁)을 방지하는 것이 중요합니다. ↔️
- 기존 서비스(예: 예약 서비스)는 오케스트레이터 명령을 소비하고 초기 생성뿐만 아니라 후속 업데이트 및 롤백 시나리오를 처리하도록 수정되어야 합니다. 🔄
데브허브 | DEVHUB | 🚀 Saga Orchestration in Microservices Explained with Real Movie Booking Example 🎬