74
AI 요약
이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.
Kafka Streams 기반 EDA로 품절 시스템 현대화
이 게시물은 올리브영 온라인몰의 품절 여부(Sold Out Status) 조회/관리 프로세스를 Kafka Streams 기반 Event-Driven Architecture(EDA)로 개선한 사례를 설명합니다.기존(AS-IS) 구조의 문제
- 품절 여부 조회를 위해 Oracle 함수를 직접 호출하며 복잡한 쿼리 수행으로 응답 속도와 효율이 저하됨
- 별도 캐시 없이 트래픽이 DB로 집중되어 올영세일 등 대규모 트래픽 시 DB 부하 및 서비스 품질 저하가 발생함
개선(TO-BE) 아키텍처와 처리 흐름
- OGG(Oracle GoldenGate) CDC로 재고 변경을 감지해 Kafka Topic으로 즉시 발행하고, AWS MSK와 Kafka Streams로 실시간 처리 후 OpenSearch에 품절 정보를 저장함
- 직매입/위수탁/예약·한정 등 상품 유형별로 재고 이벤트 처리 주체를 구분하고, 특히 위수탁 및 예약·한정 상품은 Kafka Streams로 상태 전환(소진/판매재개)을 감지해 SoldOut 토픽으로 발행함
Kafka Streams 선택 이유 및 주의점
선택 이유
- Streams DSL로 map/filter 등 연산을 간결하게 구현하고 Consumer/Producer를 단일 애플리케이션으로 통합해 구조를 단순화함
- 낮은 지연의 실시간 처리와 Exactly-once 처리 보장, 로컬 상태 저장소(RocksDB) 기반 복구를 장점으로 제시함
주의점
- 외부 API/DB I/O 등 네트워크 통신이 필요한 고비용 작업은 지연을 유발하므로 지양해야 함
- 토픽 조인은 동일 클러스터, 동일 키, 동일 파티션 수의 코파티셔닝 조건이 필요하며 본 품절 시스템에는 조인을 활용하지 못했음을 언급함
개선 결과
- 올영세일 기간 모니터링 기준 Oracle 함수 호출량이 약 86% 감소(2.34G → 237M)하여 트래픽 상황에서 더 안정적인 서비스 제공이 가능해졌다고 보고함


