Ride-hailing trip state partitioning

DesignHard50 minUber style

Your task

Design the data layer for a ride-hailing dispatch system operating in 40 cities across 6 regions. A trip's state (request to match to in-progress to complete) updates many times in seconds and must be strongly consistent within a city (no double-dispatching a driver), but global aggregates (surge, analytics) tolerate staleness. Trips never cross cities. With 200k concurrent trips at peak, how do you partition and place data so writes are fast and consistent where it matters?

It covers

  • Write routing
  • Data locality
  • Latency