12/12

졸용·2025년 12월 12일

TIL

목록 보기
134/144

🔹예상 시나리오 기반 배송 보상 트랜잭션

📌 기존의 성공 예상 시나리오:

  • order-server: 주문 생성 (DB insert)
    → Kafka로 OrderAfterCreate 이벤트 발행

  • hub-server: OrderAfterCreate 구독
    → 허브 간 경로 알고리즘 + 예상 소요시간 계산
    → Kafka로 HubRouteAfterCreate 이벤트 발행

  • delivery-server: HubRouteAfterCreate 구독
    HubRouteAfterCreate에 들어있는 order/hub/firm 정보 + 예상 소요시간 기반 HubDelivery/FirmDelivery 생성

📌 실패 시 보상 예상 시나리오:
주문은 생성되어 위의 플로우를 다 돌았는데, 나중에 결제 실패 혹은 유저가 주문 취소해서 orderStatus가 FAILED 또는 CANCELED로 바뀔 때

  • order-server: orderStatus FAILED/CANCELED로 변경
    OrderStatusChanged 이벤트 발행

  • delivery-server: OrderStatusChanged 구독
    → 이미 생성된 HubDelivery/FirmDelivery 취소 처리

< 각 이벤트 역할 >
OrderAfterCreate → 배송 “생성용” 메시지
OrderStatusChangedV1 → 배송 “보상/취소용” 메시지

보상 트랜잭션용 추가 이벤트가 발행되어야 한다.

profile
꾸준한 공부만이 답이다

0개의 댓글