컬리의 입고 시스템이 외부 인입 데이터를 안전하게 동기화하는 방법
아웃박스 패턴재시도 토픽카프카데이터 동기화입고 시스템3PL
AI 요약
Beta컬리의 SCM 프로덕트 팀은 3PL 사업 확장에 따라 외부 채널에서 발생하는 입고 예정 정보를 안전하고 정확하게 동기화하는 방법에 대한 고민을 공유합니다. 기존에는 1P 모델 중심으로 내부 발주 데이터에 의해 입고 정보가 생성되었지만, 3PL 사업 확대로 인해 외부 파트너사로부터 다양한 규격의 입고 예정 정보가 수신되게 되었습니다.
이를 해결하기 위해 아웃박스 패턴과 재시도 토픽을 도입했습니다. 기본 시스템 구성은 외부 채널이 제공하는 API를 통해 데이터를 수신하거나, 컬리가 주기적으로 조회하는 방식입니다.
수신된 데이터는 인터페이스 DB에 적재 후 카프카 메시지를 발행하고, 카프카 리스너에서 최종 입고 예정 정보로 변환하는 과정을 거칩니다. 특히, 인터페이스 DB 적재와 카프카 메시지 발행은 하나의 트랜잭션으로 묶어 데이터 정합성을 확보했습니다.
본 글에서는 이러한 시스템 구성과 예상되는 실패 지점, 그리고 이를 해결하기 위한 아웃박스 패턴과 재시도 토픽에 대해 자세히 설명합니다.
이 글이 궁금하신가요?
원문 블로그에서 전체 내용을 확인해 보세요
원문 읽으러 가기
