패턴 이름만 외웠는지, 이중 쓰기 실패 모드와 아웃박스 이후에도 남는 중복·운영 부담을 함께 설명할 수 있는지를 가른다.
트랜잭셔널 아웃박스는 도메인 데이터 변경과 이벤트 기록을 같은 DB 트랜잭션에 묶어 "커밋은 됐는데 발행이 빠지는" 이중 쓰기를 원천 차단하는 패턴이다. 커밋된 아웃박스 레코드는 별도 퍼블리셔(폴링 또는 CDC)가 읽어 브로커로 발행하고 상태를 갱신한다. 즉 발행 시점은 트랜잭션 밖으로 빠지지만 "커밋되지 않은 이벤트는 발행되지 않는다"는 보장이 생긴다. 다만 재시도·실패 복구 과정에서 중복 발행이 남으므로 소비자 멱등 처리가 짝으로 깔려야 완성된다.
발행 실패로 이벤트가 누락돼 정합성 사고를 친 경험이 있다면 아웃박스 도입 전후 비교로 자연스럽게 풀 수 있다
재시도 로직만 강화하다가 중복 처리 버그를 만난 경험이 있다면 소비자 멱등 키 설계 이야기로 이을 수 있다
Debezium·CDC 기반 발행을 운영해본 적이 있다면 폴링 방식과의 트레이드오프를 본인 경험으로 풀 수 있다
DLQ·아웃박스 테이블 정리 운영을 해본 경험이 있다면 "보장하는 것 vs 운영으로 막는 것"의 경계를 설명하는 근거가 된다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.