주문 - Genie-Uss/genieus GitHub Wiki

  • 주문 서비스의 안정성과 복원력을 높인 동기/비동기 통신 최적화
    • 주문 생성 과정에서 즉시 결과가 필요한 재고 예약, 쿠폰 사용은 Feign + Resilience4j(서킷브레이커+리트라이) 기반의 동기 호출로 처리
    • 외부 장애 발생 시 Fallback을 통해 장애를 감지하고, 무의미한 재시도를 방지하여 성능 최적화
    • 주문 서비스가 외부 장애 전파 없이 정상 동작할 수 있도록 회복 탄력성(Resilience) 확보
    • 재고/쿠폰 예약은 동기, 복구는 Kafka 기반 비동기로 구분하여 트래픽 부하를 최소화
  • Redis 기반 주문 만료 관리로 대규모 트래픽 대응 및 성능 최적화
    • 주문 생성 시 Redis Sorted Set에 주문 ID와 만료 예정 시간을 저장 (Delay Queue 방식)
    • 스케줄러가 Redis를 선별 폴링하여 만료된 주문만 조회 후, DB를 Batch Update 방식으로 일괄 처리
    • DB 직접 조회를 최소화하고, Redis 중심으로 주문 만료를 관리하여 DB 부하를 대폭 감소
    • Spring Batch나 Jenkins가 아닌 Redis+스케줄러 구조를 사용해 정확한 실시간성과 고성능 처리를 동시에 달성