Unit 3 — waterfall offers, parallel batching, locks, and scoring
Dispatch & Ride Matching
Unit 2 handed you a ranked shortlist of nearby drivers. Now comes the decision that actually moves the marketplace: which driver gets this trip, right now? It sounds like "pick the top of the list," but the top driver might decline, two riders might be eyeing the same car, and the nearest driver isn't always the one who makes the whole system flow. Dispatch is where a clean ranking meets a messy, concurrent, real-time world.
This unit builds the assignment layer — offer protocols, timeouts, atomic claims, composite scoring — and you will implement three pieces (dispatch_score, waterfall_dispatch, parallel_dispatch), run python test.py locally, and answer deterministic checkpoints to unlock each step.
