
전시 데이터 플랫폼 THOR 1부 - 3.5억 개 상품 정보를 near-time으로
두줄요약
THOR는 Kafka와 MongoDB로 3.5억 건 전시 상품 정보를 near-time으로 갱신합니다. 도큐먼트 사전 조립, 샤딩, DLT·Highway로 조회 성능과 갱신 안정성을 확보했습니다.
문제 상황
- 여러 도메인에 흩어진 상품·가격·배송·리뷰 정보를 전시 화면용으로 빠르게 제공해야 하는 요구
- 공통 테이블과 PL/SQL 프로시저 의존으로 전시 전용 변경·테스트·장애 대응의 제약
구조와 흐름
- CDC 플랫폼 카시타, 타 팀 메시지, 배치, Highway의 네 경로로 변경 수집
- Kafka 컨슈머가 상품번호 기반 메시지를 받아 원천 데이터를 재조회·계산하고 MongoDB 상품 도큐먼트 갱신
- 실패 메시지의 DLT 재처리와 지연·누락 상품의 Highway 전체 재생성 경로
선택 이유
- 상품 카드에 함께 필요한 정보를 상품별 MongoDB 도큐먼트로 사전 조립해 조회 시 조인 제거
- 상품번호 해시 샤딩으로 13개 샤드에 쓰기와 데이터 분산, 상품번호 동등 조회의 단일 샤드 라우팅
- 유연한 도큐먼트 구조로 전시 필드 추가와 이미지 URL 적재를 빠르게 반영
성능/운영 포인트
- 하루 10억 건 이상 메시지와 약 3.5억 건 라이브 상품의 near-time 갱신
- 커버드 쿼리 기반 검색용 인덱스 컬렉션과 secondaryPreferred 읽기 분산
- Kafka lag의 kafka-ui·Prometheus·Grafana 모니터링 및 Slack 알림




