Design Uber

Design a ride-hailing service that matches riders with nearby drivers and tracks trips in real time.

Ride hailing · Hard

Functional requirements

  • Riders request a ride
  • Match with a nearby available driver
  • Live driver location during the trip
  • Fare calculation and payment

Scale & non-functional requirements

  • Drivers send location every 4 seconds
  • Match within 10 seconds
  • Millions of concurrent drivers worldwide

Hints

  • How do you index locations for fast nearby search (geohash, quadtree)?
  • Where do frequent location updates go?
  • How do you avoid two riders getting the same driver?

More system design questions

Try AI Flowchart free →