Back to roadmap
Module 10 · End-to-End Design DrillsDay 09545 min

Drill: Uber Dispatch

Geo-indexing + matching + pricing — at city scale.

Day 095

Drill: Uber Dispatch

Rider
client
Match
service
Geo index
datastore
Dispatch
service
Driver
client
Signal path
Dispatch pipeline
Rider
client
flow
Match
service
Match
service
flow
Geo index
datastore
Match
service
flow
Dispatch
service
Memory hook

Uber Dispatch: geo-indexing + matching + pricing

Mental model

compose the pieces into a design story

Design lens

Sharding by city or H3 cell helps locality.

Recall anchors
Geo indexMatchingSurge

Why it matters

Rideshare dispatch combines a high-velocity geo index of drivers with a matching service that pairs riders with nearby drivers. Surge pricing balances supply and demand in real time.

Deep dive

Driver locations stream to a sharded geo index (Redis GEO, H3).

Matching service queries 'drivers within radius' and ranks.

Authoritative trip state in a transactional store; location history in a TSDB.

Surge: per-cell demand/supply ratio updates pricing.

Demo / scenario

Rider requests ride downtown.

  1. Lookup nearby drivers via geo index.
  2. Rank by ETA and quality.
  3. Send offer to top driver via push.
  4. Driver accepts → trip created in DB.

Tradeoffs

  • Sharding by city or H3 cell helps locality.
  • Hot cities require extra capacity.
  • Matching algorithms balance latency and quality.

Diagram

Rider
Match
Geo index
Dispatch
Driver
Dispatch pipeline.

Mind map

Check yourself

Loading quiz…

Sources & further reading