Timeout reassignment — promotion to Attempt=2

The deadline expires, A's attempt=1 is marked expired and Reassigned is pushed → re-offered to B → Delivered

Timeout reassignment — promotion to Attempt=2 The deadline expires, A's attempt=1 is marked expired and Reassigned is pushed → re-offered to B → Delivered CreateDeliveryReq(delivery-reassign) OfferDeliveryMsg(attempt=1) deadline expires → DeliveryStatusChangedReq(Reassigned) DeliveryStatusChangedRes DeliveryStatusUpdatedMsg DeliveryStatusNotify DeliveryStatusNotify(Reassigned) OfferDeliveryMsg(attempt=2) OfferDeliveryNotify OfferDeliveryNotify CourierDecisionMsg(accepted=true) CourierDecisionMsg OfferDeliveryResultMsg(attempt=2) DeliveryStatusChangedReq(Accepted) DeliveryStatusChangedRes DeliveryStatusChangedReq(Delivered) DeliveryStatusChangedRes DeliveryStatusUpdatedMsg(Delivered) DeliveryStatusNotify DeliveryStatusNotify(Delivered) Customer Client · Sequence participant Customer Client Dispatch · Sequence participant Dispatch Tracking · Sequence participant Tracking CourierActor A · Sequence participant CourierActor A CourierActor B · Sequence participant CourierActor B Courier Client B · Sequence participant Courier Client B CourierSession · Sequence participant CourierSession CustomerActor · Sequence participant CustomerActor CustomerGateway · Sequence participant CustomerGateway

Deadline expiry and stale decision (source Note and following paragraph)

  • • Source `Note over D`: deadline expires and attempt 1 is marked expired — the Dispatch sweeper marks the current record Expired and selects B as the next candidate. (archify sequence doesn't render notes, so this is preserved in the third message label and this card.)
  • • A decision from A that arrives after attempt 2 starts is recorded as a stale decision and has no status effect. If no candidate remains, Dispatch records Failed and sends the terminal status.

Reassignment path

  • • Tracking sends the status push to the CustomerActor, which pushes to the bound CustomerGateway session (same as §7.1 and the actual sample code sendToActor — the source mermaid omitted CustomerActor; corrected against the code).
  • • Reassignment order check: confirm the order Assigned, Reassigned, Accepted, Delivered and that the courier is B after Accepted.