문제 상황
사용자 서비스는 사용자를 데이터베이스에 추가하고 메시지 브로커에 이벤트를 전송한다. 그 이후 다른 서비스에서 해당 이벤트를 받아 후속 작업을 진행한다.
문제 상황 – 코드 예제
트랜잭셔널 아웃박스 패턴
트랜잭셔널 아웃박스에서는 메시지 브로커로 이벤트를 전달하는 대신 outbox라는 테이블을 이용하여 트랜잭션을 보장할 수 있게 한다.
트랜잭셔널 아웃박스 패턴 – Solution
- 트랜잭셔널 아웃박스
- 데이터/메시지 유실 문제를 해결한다.
- 각 데이터베이스는 적절한 이벤트 발생을 보장한다.
참고
반응형