Uber System Design

How Uber matches riders with nearby drivers in seconds: live location updates, geospatial indexing, a matching service, surge pricing and payments. Useful for system design interview preparation.

Uber System Design — System design poster

How it flows

  1. Rider App → API Gateway (Request ride)
  2. Driver App → API Gateway
  3. API Gateway → Load Balancer
  4. Load Balancer → Location Service
  5. Load Balancer → Trip Service
  6. Location Service → Geo Index (Index drivers)
  7. Location Service → Location Cache
  8. Geo Index → Matching Service
  9. Surge Pricing → Matching Service (Surge rate)
  10. Matching Service → Trip Service
  11. Trip Service → Surge Pricing
  12. Trip Service → Event Queue
  13. Event Queue → Trip Worker
  14. Trip Worker → Payment Service
  15. Trip Worker → Notification Service
  16. Trip Service → Trip DB
  17. Notification Service → Rider App
  18. Payment Service → User & Driver DB
  19. Trip DB → User & Driver DB

Components

Location Service · Geo Index · Matching Service · Trip Service · Surge Pricing · Event Queue · Trip Worker · Trip DB · Location Cache · User & Driver DB · Driver App · API Gateway · Load Balancer · Rider App · Payment Service · Notification Service

← All designs

Try AI Flowchart free →