핵심 요약
29CM은 이벤트 기반 아키텍처로 쿠폰 적용 가능 상품 정보를 실시간으로 갱신하고 Elasticsearch에 인덱싱해 쿠폰 적용 가능 상품의 검색·필터링 성능을 개선했습니다.
구현 방법
- 카프카(Kafka) 토픽을 통해 쿠폰-상품 쌍의 갱신 정보를 발행
- 반정규화 테이블에 쿠폰-상품 쌍의 적용 가능 여부를 저장/삭제
- Coupon-Event-Worker가 토픽을 소비해 반정규화 테이블을 갱신
- Debezium으로 반정규화 테이블의 변경을 CDC 토픽으로 자동 발행
- CDC 토픽의 변경을 Coupon-Event-Worker가 소비해 상품별 적용 가능 쿠폰 목록을 싱크 토픽으로 발행
- ES-Indexer가 싱크 토픽을 소비해 각 상품 ID와 적용 가능한 쿠폰 목록을 Elasticsearch에 인덱싱
주요 결과
- 실시간으로 쿠폰 적용 가능 여부가 반정규화 테이블에 즉시 반영
- Elasticsearch 인덱싱으로 상품 검색 시 쿠폰 적용 가능 여부를 빠르게 필터링/정렬 가능
- 포함 매핑, 제외 매핑 등 다양한 쿠폰 매핑 방식을 일관되고 확장 가능하게 처리



