Uber System Design (Real-Time Matching at Scale)

Design a ride-sharing platform like Uber that matches riders with drivers in real-time.

Constraints

Functional

Request ride (pickup/dropoff), match with nearby drivers, real-time location tracking, fare (distance/time/surge), payment after ride, rider–driver ratings

Non-functional

Match in < 5s, 99.99% uptime (safety), location updates every few seconds, millions of concurrent users

Scale

100M users, 10M DAU; ~20M rides/day, peak ~500/s; ~250K location updates/s at peak

Stages ahead

1Requirement Analysis
2API Design
3High-Level Design
4HLD Extensions
5Trade-offs