정상 흐름 — 배차·수락·상태 push

CreateDeliveryReq 접수 → Attempt=1 제안 → 수락 → Assigned·Accepted·PickedUp·Delivered 순서 push

정상 흐름 — 배차·수락·상태 push CreateDeliveryReq 접수 → Attempt=1 제안 → 수락 → Assigned·Accepted·PickedUp·Delivered 순서 push SubscribeDeliveryReq SubscribeDeliveryRes BindCourierSessionReq BindCourierSessionRes CreateDeliveryReq CreateDeliveryRes OfferDeliveryMsg (attempt=1) OfferDeliveryNotify OfferDeliveryNotify CourierDecisionMsg(accepted=true) CourierDecisionMsg OfferDeliveryResultMsg DeliveryStatusChangedReq(Assigned) DeliveryStatusChangedRes DeliveryStatusChangedReq(Accepted) DeliveryStatusChangedRes DeliveryStatusChangedReq(PickedUp) DeliveryStatusChangedRes DeliveryStatusChangedReq(Delivered) DeliveryStatusChangedRes DeliveryStatusUpdatedMsg DeliveryStatusNotify DeliveryStatusNotify(Delivered) Customer Client · Sequence participant Customer Client CustomerGateway · Sequence participant CustomerGateway Courier Client · Sequence participant Courier Client CourierSession · Sequence participant CourierSession Dispatch · Sequence participant Dispatch CourierActor · Sequence participant CourierActor Tracking · Sequence participant Tracking CustomerActor · Sequence participant CustomerActor

순서와 검증

  • • DeliveryStatusNotify가 Assigned, Accepted, PickedUp, Delivered 순서로 도착하고 각 payload의 DeliveryId가 subscription과 같은지 확인한다.
  • • 상태 event 기록과 push가 순서대로 완료되는 것은 Application의 sample 정책이며, Framework의 일반적인 channel 전역 순서를 의미하지 않는다.
  • • 배송원 응답을 기다리는 동안 Dispatch handler는 실행 줄을 점유하지 않는다.