How do I design distributed systems in Google: Taxi hailing app like Uber

Abracadabra
15 min readJun 26, 2024

Refer to the first post for the background of this series.

Problem Introduction

Let us design a ride hailing App like Uber from scratch. We will only design the core flow of servicing a ride. This include both the rider and driver’s experience — the user request a ride; our service find a driver; the driver serves it. We will focus on the hard and meaty design problems specific to a ride hailing App.

Functional Requirement

Below is the high level overview of the life of a ride.

  1. The rider send the ride request information to our backend service. The request consists of
  • Rider’s pick up location
  • Rider’s destination

2. The backend service find a driver to serve the ride and send the ride information to the driver.

2.1 The service first find a list of nearby drivers available

2.2 Then send the ride information to all available drivers

2.3 Pick the first confirmed driver

2.4 Send the ride information to the driver

3. The rider and driver both goes to the pick up location. In the meantime, the…

--

--