
백엔드
컬리의 입고 시스템이 외부 인입 데이터를 안전하게 동기화하는 방법
두줄요약
외부 채널 입고 정보를 안전하게 동기화하기 위해 아웃박스 패턴과 재시도 토픽을 적용한 사례를 소개했습니다. Spring Kafka와 Namastack Outbox로 원자성, 재시도, 실패 알림을 정리했습니다.
핵심 내용
- 외부 채널에서 유입되는 입고 예정 정보를 안전하게 동기화하기 위해 아웃박스 패턴과 재시도 토픽을 적용한 사례
- 발행부는 DB 저장과 메시지 발행의 원자성 문제를 아웃박스로 완화하고, 수신부는 Spring Kafka RetryableTopic으로 지연 재시도와 DLT 처리를 구성
- Namastack Outbox for Spring Boot와 Spring Kafka를 활용해 테이블 관리, 폴링, 재시도, 실패 알림 정책을 단순화
적용해볼 점
- 메시지 발행 실패와 트랜잭션 커밋 실패의 원자성 붕괴 가능성 점검
- 지연 후 재처리 가능성이 있는 장애를 위한 재시도 토픽과 DLT 설계 검토
- 소비자 멱등성, 재시도 횟수, 알림 정책, 토픽 분리 전략 사전 정의
