피드로 돌아가기
제로베이스 WMS 구축기: Kafka 기반 분산 물류 시스템 설계와 Out-of-Order Events 해결
올리브영 테크블로그올리브영 테크블로그
Backend

제로베이스 WMS 구축기: Kafka 기반 분산 물류 시스템 설계와 Out-of-Order Events 해결

올리브영이 외부 WMS 솔루션 대신 자체 개발 GMS를 구축하고 Kafka 기반 분산 아키텍처로 Out-of-Order Events 문제를 Delayed Queue 패턴으로 해결하여 출고 처리 시간을 81% 단축

2025년 7월 23일12advanced

Context

올리브영은 글로벌 물류 사업 확장을 위해 기존 외부 WMS 솔루션에서 벗어나 자체 GMS를 구축해야 했습니다. 특히 CBT 시스템(Virginia 리전), GMS(Seoul 리전), WCS, Global Mall 시스템 등 여러 외부 시스템이 독립적으로 운영되면서 리전 간 네트워크 지연, 특송사 API 응답 지연, 시스템 간 비동기 처리로 인해 출고 프로세스 중 운송장 번호가 늦게 수신되는 Out-of-Order Events가 발생했습니다.

Technical Solution

  • Kafka(MSK) 기반 비동기 Pub/Sub 아키텍처 도입: REST API가 필요한 경우와 레거시 시스템 연동은 REST API로, 그 외 대부분의 시스템 간 데이터 흐름은 Kafka를 활용한 메시징 방식으로 통일하여 확장성과 실시간성 확보
  • Out-of-Order Events 해결을 위한 Delayed Queue 패턴 적용: 운송장 수신 토픽(tracking-number-internal topic), 유효하지 않은 출고 토픽(stockout-invalidated topic), 출고 재처리 토픽(stockout-retry topic) 3개 토픽 신규 생성
  • Kafka Streams 기반 지연 메시징 및 재처리 아키텍처 구축: 운송장 수신이 지연된 경우 출고 확정 토픽 발행을 중단하고 유효하지 않은 출고 토픽으로 메시지 발행, 지연된 운송장 수신 시 Kafka Streams가 감지하여 출고 재처리 토픽으로 자동 재연동
  • 할당 로직 개선: 차수 내 동일 Transaction 유지로 중복 할당 없는 Concurrency-safe 처리 보장 및 Bulk Commit 방식으로 성능 최적화
  • 피킹 지시 병렬 처리: 피킹 동선에 따라 그룹을 분리하고 Parallel Async 방식으로 대량의 피킹 지시 수행
  • DataDog 기반 통합 모니터링: 서버 자원, API, Kafka(MSK) 모니터링 및 입고부터 출고까지 처리량/실패 건수 시각화, Slack 알림 연동으로 실시간 이상 감지

Impact

  • 주문 할당 소요 시간: 280초 → 40초 (85.7% 단축)
  • 피킹리스트 생성 소요 시간: 40초 → 12초 (70% 단축)
  • 피킹라벨 출력 소요 시간: 40초 → 14초 (65% 단축)
  • 할당부터 피킹 지시까지 총 소요 시간 81% 단축
  • 3월 올영세일 대비 6월 올영세일 출고 처리량(CAPA) 50% 확대
  • QA 총 이슈 409건 처리 완료

Key Takeaway

리전 간 네트워크 지연과 시스템 간 비동기 처리가 불가피한 분산 환경에서는 메시지 순서 보장을 위해 단순히 네트워크를 줄이는 것보다 Delayed Queue 패턴과 Kafka Streams를 활용한 자동 재처리 메커니즘을 설계하는 것이 효과적입니다. 동시에 할당·피킹 단계에서 Transaction 격리와 Parallel Async 처리를 통해 동시성 안전성과 처리 성능을 동시에 달성할 수 있습니다.


다중 외부 시스템과 연동되는 물류·주문 처리 시스템에서 Kafka Streams를 활용한 Delayed Queue 패턴을 도입하면, 리전 간 지연이나 서비스 간 처리 순서 어긋남으로 인한 데이터 정합성 문제를 자동 재처리 메커니즘으로 해결할 수 있습니다. 또한 할당 로직에서 Transaction 범위를 차수 단위로 명확히 하고 Bulk Commit으로 처리하면, Concurrency-safe를 보장하면서 동시에 성능을 대폭 향상시킬 수 있습니다.

원문 읽기
제로베이스 WMS 구축기: Kafka 기반 분산 물류 시스템 설계와 Out-of-Order Events 해결 | Devpick