「29CM」 트랜잭셔널 아웃박스 패턴의 실제 구현 사례
비즈니스 로직 중간에 에러가 나면 이벤트가 유실되는 문제를 29CM가 아웃박스 테이블과 TransactionalEventListener의 BEFORE_COMMIT/AFTER_COMMIT 분리로 푼 방식을 따라가며 정리한 탐구 기록.
태그
4편 · 아카이브에서 필터로 보기
비즈니스 로직 중간에 에러가 나면 이벤트가 유실되는 문제를 29CM가 아웃박스 테이블과 TransactionalEventListener의 BEFORE_COMMIT/AFTER_COMMIT 분리로 푼 방식을 따라가며 정리한 탐구 기록.
설계한 주문 생성 API를 implement 레이어에 구현체를 두고 모든 흐름이 비즈니스 레이어로 향하도록 구현한 과정. 정합성을 맞추는 방법은 장기 트랜잭션과 개별 트랜잭션 조합 두 갈래를 놓고 저울질하는 데서 멈춘다.
교보문고·예스24 같은 주문 서버를 맡아 코드를 짜기 전에, 회원·주문·상품·장바구니·결제·배송 여섯 도메인의 관계와 주문 프로세스의 트랜잭션·자동복구·성능 지점을 먼저 그려본 기록.
여섯 도메인이 얽힌 주문을 멀티모듈 안에서 어떻게 나눌지, 내부 통신과 외부 결제 연동을 어디서 끊을지 정하고 분산 트랜잭션과 재처리 전략까지 시퀀스 다이어그램으로 확정한 설계 기록.