Resolve competing dispatch assignments explicitly
Two dispatchers assign the same van to different pickup jobs. Both dashboards show success until a refresh reveals the losing assignment disappeared.
- Focused work estimate
- 2h 45m + prerequisites
- Priority in the scenario
- High
- Engineering practice
- Optimistic concurrency · Idempotency · Operational UX
Estimated field mix
- Real-time systems40%
- Backend30%
- Frontend30%
Field percentages are editorial estimates of the ticket's engineering focus. They total 100%; they are not measured time, proficiency scores, or ownership evidence.
Review it, then add it to your workspace.
The board opens an editable draft; nothing is saved until you confirm it. Sign-in and workspace permissions apply, and Demo boards remain ephemeral.
Project context
The fictional Cedar delivery depot dispatches vans through a browser map and accessible list. Synthetic telemetry arrives through a gateway with device sequence numbers. This is operational fleet software practice; no real driver tracking, employee scoring, or routing safety guarantee is part of the project.
Setup prerequisites
- Synthetic vehicle telemetry with device sessions and sequence numbers
- Dispatch assignment and authorized region API contracts
Preceding work
Complete these dependencies, or supply their agreed outputs before taking this ticket.
- FLEET-101 · Keep invalid coordinates from appearing as real vans
- FLEET-103 · Fit selected vehicles without zooming out across the entire planet
- FLEET-102 · Show dispatchers how old each vehicle position is
- FLEET-104 · Prevent delayed telemetry from moving a van backwards
- FLEET-105 · Reconnect the map without losing updates between snapshot and stream
Acceptance criteria
- Assignment commands include expected van/job revision and a stable operation key.
- Only the server-confirmed assignment becomes authoritative in map and list.
- A competing change shows the current assignment and preserves the unsubmitted alternative for an explicit decision.
Implementation constraints
- Use conditional updates at the repository boundary; stale location is shown as context, not assumed current availability.
Verification to include
- Assign a free van and verify map/list share the confirmed revision.
- Race two dispatchers and lose one acknowledgement; one assignment wins, retries do not duplicate it, and the conflict is visible.
Deliverables
- Revision-aware dispatch command and concurrent-assignment tests
Rollout and recovery
Enable for one synthetic depot after replay checks; disable assignment writes if confirmed map/list state diverges.
Value of the work
For the engineer: Practice geospatial boundaries, stream ordering, snapshot recovery, and concurrent operational commands.
For the team: Inspect whether a developer keeps dispatch decisions grounded in current authorized data and exposes uncertainty during outages.
Evidence boundaries
Outcome Evidence: Tests, patches, and runbooks are requested deliverables. They become Outcome Evidence only through a qualified Mission and immutable Evidence IDs.
Ownership Evidence: Independent adaptation must be observed under a declared verification policy and cite immutable Evidence IDs. Completing a planning ticket establishes no Ownership Evidence.