DeliveryDispatch — a dispatch system

customer and courier each STREAM · courier actor dispatch

DeliveryDispatch — a dispatch system customer and courier each STREAM · courier actor dispatch customer client · Architecture component customer client CustomerGateway · customer actor · Architecture component CustomerGateway customer actor Dispatch · HTTP intake · dispatch worker · Architecture component Dispatch HTTP intake · dispatch worker Tracking · status recording · Architecture component Tracking status recording CourierActorNode ×2 · courier actor · Architecture component CourierActorNode ×2 courier actor CourierSession · connection endpoint · Architecture component CourierSession connection endpoint courier client · Architecture component courier client HTTP create delivery STREAM status status event notify offer · reassign session bind bound session push STREAM

External boundary = web technology

  • • customer: create delivery over HTTP (Dispatch), receive status over STREAM — customer actor (CustomerGateway) ↔ customer client, bidirectional
  • • courier: STREAM connection with CourierSession (bidirectional)

dispatch · notification

  • • Dispatch worker offers·reassigns to the courier actor (CourierActorNode ×2)
  • • CourierSession binds to the courier actor (dashed); the actor pushes to the bound session
  • • status events flow Dispatch→Tracking→CustomerGateway to notify the customer