
아키텍처
매달 수 백만 건의 여행을 책임지는 NOL 주문 이야기
두줄요약
NOL 주문 시스템의 통합 주문 구조와 3단계 처리 흐름을 소개했습니다. 분산 트랜잭션, 이벤트 전파, 보상 처리로 대량 주문의 안정성과 확장성을 확보했습니다.
구조와 흐름
- NOL 주문을 여러 마이크로서비스를 연결하는 오케스트레이션 서비스로 설명
- 주문 준비, 사용자 결제, 주문 완료의 3단계 흐름으로 분산 주문 처리 구조 정리
- 카테고리별 주문 서비스, 결제 서비스, 쿠폰·포인트, 알림톡, Kafka 이벤트 전파의 역할 분담 소개
선택 이유
- 카테고리별 상품 구조를 공통 인터페이스로 추상화해 통합 주문에서 동일한 방식으로 호출
- 결제와 할인 수단을 주문 서비스와 분리해 책임 범위를 명확히 구분
- 대량 주문과 장애 상황에서도 확장성, 일관성, 사용자 경험을 함께 확보하려는 설계
트레이드오프
- 통합 주문이 많은 서비스를 조율해야 해서 구조가 복잡해짐
- 실패 시 보상 처리와 롤백 경로가 늘어나 운영 난이도 상승
- 서비스 간 정보 전파를 이벤트 기반으로 풀어 API 폭증과 부하를 줄이려는 선택
성능/운영 포인트
- Redis 분산 카운터로 수평 확장 환경에서 주문번호 고유성 확보
- 병렬 호출과 순차 보상 조합으로 전체 처리 시간과 안정성 균형
- DLQ처럼 주문 DB와 거래 이력을 활용해 실패 건 재처리 가능하게 설계
