NOL 주문 시스템, 안정성과 확장성을 모두 잡다!

by DD
8개월 전
조회수 15

통합 장바구니 시스템을 통해 여러 카테고리의 상품을 한 번에 주문 가능하도록 구현

Redis 분산 카운터를 활용하여 고유한 주문번호를 생성하고, Kafka를 통해 주문 정보를 전파

Saga 패턴 기반의 분산 트랜잭션 관리로 데이터 일관성 및 장애 복구 보장

통합 주문 아키텍처의 핵심: 분산 시스템

NOL 주문 시스템은 마이크로서비스 아키텍처를 기반으로 구축되어 각 서비스가 독립적으로 운영된다. 구체적으로 통합 장바구니를 통해 여러 카테고리 상품을 묶어 주문 가능하게 설계되었다. 따라서 주문 준비, 결제, 주문 완료의 3단계 프로세스를 거쳐 안정적인 주문 처리를 지원한다.

분산 트랜잭션 관리: Saga 패턴

NOL은 Saga 패턴을 활용하여 분산 트랜잭션 문제를 해결한다. 상태 기록 → 순차 실행 → 선택적 보상 패턴을 통해 데이터 일관성을 유지한다. 반면, 서비스 전면 장애 시에는 롤백 과정의 오류를 방지하기 위해 DLQ를 활용하여 재처리를 시도한다.

주문 시스템의 확장성 확보: 이벤트 기반 아키텍처

주문 정보 전파를 위해 Kafka 클러스터를 활용하여 이벤트 기반 아키텍처를 구축했다. 구체적으로, 각 서비스는 필요한 정보를 구독하여 사용하고, 주문 완료 시 이벤트를 발행한다. 따라서 서비스 간 결합도 감소확장성 확보를 동시에 달성했다.

매달 수 백만 건의 여행을 책임지는 NOL 주문 이야기

댓글 0

첫 번째 댓글을 남겨보세요!