
Kurly에서 주문을 모니터링 하는 법
두줄요약
레거시 주문 검색의 성능·정합성 문제를 Kafka와 Elasticsearch 기반 모니터링으로 이전했습니다.\n비동기 전송의 flush, ack, 멱등성 설정으로 데이터 유실과 중복 문제를 보완했습니다.
문제 상황
- 복잡한 조인·서브쿼리·집계 기반 레거시 주문 검색의 느린 응답과 타임아웃
- 주문량 증가 시 검색 실패 및 데이터 정합성 문제로 반복되는 운영 제보
구조와 흐름
- 주문 도메인 이벤트 발생 시 PHP 애플리케이션이 Kafka Producer로 주문 정보 전송
- Kafka 적재 데이터를 Elasticsearch로 전달하고 Kibana 대시보드에서 실시간·누적 주문 통계 조회
선택 이유
- 인스턴스별 파일 로깅의 디스크·권한·배포 오류에 따른 유실 가능성 해소
- 기존 사내 Kafka·ELK 플랫폼 활용과 메시지 전달 보장 구조
주의할 점
- 비동기 produce 후 프로세스 종료 전 flush 호출 필요
- ack 설정과 로그 ID 지정으로 전송 확인, 누락·중복에 따른 정합성 보완
