Implementation structure — Client · Shared · Server

Every language implements the same logical components in the same order and with the same responsibilities

Implementation structure — Client · Shared · Server Every language implements the same logical components in the same order and with the same responsibilities Program · Client Program Scenario · customer·courier·§9 assertion · Client Scenario customer·courier·§9 assertion Configuration · role·Mesh·Channel·timeout · Shared Configuration role·Mesh·Channel·timeout JSON Contracts · message·field·enum·optional · Shared JSON Contracts message·field·enum·optional Program · Server / Dispatch — HTTP · dispatch worker Program Application · DispatchWorker·OfferPolicy · Server / Dispatch — HTTP · dispatch worker Application DispatchWorker·OfferPolicy Infrastructure · Http·RouteMesh·Evidence · Server / Dispatch — HTTP · dispatch worker Infrastructure Http·RouteMesh·Evidence Program · Server / CourierSession — STREAM · binding Program Infrastructure · Stream·Binding·ActorClient · Server / CourierSession — STREAM · binding Infrastructure Stream·Binding·ActorClient Program · Server / CourierActorNode — Entry Spot · Courier Actor Program Domain · CourierState·OfferDecision · Server / CourierActorNode — Entry Spot · Courier Actor Domain CourierState·OfferDecision Application · OfferHandler·AttemptGuard · Server / CourierActorNode — Entry Spot · Courier Actor Application OfferHandler·AttemptGuard Infrastructure · EntrySpot·CourierActorAdapter · Server / CourierActorNode — Entry Spot · Courier Actor Infrastructure EntrySpot·CourierActorAdapter Program · Server / Tracking — status · evidence Program Domain · DeliveryStatus·StatusTransition · Server / Tracking — status · evidence Domain DeliveryStatus·StatusTransition Application · StatusWorkflow·EvidenceWriter · Server / Tracking — status · evidence Application StatusWorkflow·EvidenceWriter Infrastructure · TrackingHandler·StatusStore · Server / Tracking — status · evidence Infrastructure TrackingHandler·StatusStore Program · Server / CustomerGateway — STREAM · binding Program Infrastructure · Stream·Binding·ActorClient · Server / CustomerGateway — STREAM · binding Infrastructure Stream·Binding·ActorClient Client Shared Server / Dispatch — HTTP · dispatch worker Server / CourierSession — STREAM · binding Server / CourierActorNode — Entry Spot · Courier Actor Server / Tracking — status · evidence Server / CustomerGateway — STREAM · binding

Tree boundaries

  • • The root DeliveryDispatch has three top-level units: Client · Shared · Server. Server holds Dispatch, CourierSession, CourierActorNode, Tracking, and CustomerGateway.
  • • Color: Client is blue (client app). CourierActorNode is green (the object server that runs the Entry Spot and Courier Actor). Dispatch, CourierSession, Tracking, and CustomerGateway are blue (edge/session/status apps). Shared is gray (locale-neutral shared assets).
  • • Client { Program, Scenario } · Shared { Configuration, JSON Contracts }.

Server submodules

  • • Dispatch: Application { DispatchWorker, OfferPolicy } · Infrastructure { HttpHandlers, RouteMeshClients, DispatchEvidenceAdapter }.
  • • CourierSession: Infrastructure { StreamSession, CourierBindingAdapter, CourierActorClient }.
  • • CourierActorNode: Domain { CourierState, OfferDecision } · Application { OfferHandler, AttemptGuard } · Infrastructure { EntrySpot, CourierActorAdapter }.
  • • Tracking: Domain { DeliveryStatus, StatusTransition } · Application { StatusWorkflow, EvidenceWriter } · Infrastructure { TrackingHandler, StatusStoreAdapter }.
  • • CustomerGateway: Infrastructure { StreamSession, CustomerBindingAdapter, CustomerActorClient }.