RabbitMQ로 SAGA 패턴 구현
·
Backend
SAGA 패턴?MSA에서 분산 트랜잭션 처리를 위해 도입한 패턴이다.각 서비스의 로컬 트랜잭션들이 순차적으로 업데이트를 해나가며,트랜잭션 실패 시 보상 트랜잭션을 수행하여 이전 서비스들의 트랜잭션을 롤백한다. SAGA 아키텍처 구조도 Order와 Product는 Producer이고, Product와 Payment는 Consumer가 된다.즉 Product의 경우 동시에 Producer와 Consumer의 역할을 한다. SAGA 플로우정상 흐름Order application에 클라이언트 요청이 들어오면, Order에서 필요한 로직을 수행하고 exchange에 메시지를 보낸다.exchange가 message를 product.queue로 라우팅한다.product는 product.queue의 메시지를 컨슘하여 ..