Search⌘ K
AI Features

Requirements of Uber’s Design

Explore the critical functional requirements, like real-time location updates and ride requests, necessary for a ride-sharing platform. Define non-functional constraints, including high availability and consistency, and perform resource estimation for servers, storage, and bandwidth.

We'll cover the following...

  • <a href=”#Requirements" aria-label=“Read more about Requirements” >Requirements
    • <a href="#Functional-requirements" aria-label=“Read more about Functional requirements” >Functional requirements
    • <a href="#Non-functional-requirements" aria-label=“Read more about Non-functional requirements” >Non-functional requirements
  • <a href="#Resource-estimation" aria-label=“Read more about Resource estimation” >Resource estimation
    • <a href="#Storage-estimation" aria-label=“Read more about Storage estimation” >Storage estimation
      • <a href="#Riders-metadata" aria-label=“Read more about Rider\u2019s metadata” >Rider\u2019s metadata
      • <a href="#Drivers-metadata" aria-label=“Read more about Driver\u2019s metadata” >Driver\u2019s metadata
      • <a href="#Driver-location-metadata" aria-label=“Read more about Driver location metadata” >Driver location metadata
      • <a href="#Trip-metadata" aria-label=“Read more about Trip metadata” >Trip metadata
    • <a href="#Bandwidth-estimation" aria-label=“Read more about Bandwidth estimation” >Bandwidth estimation
    • <a href="#Number-of-servers-estimation" aria-label=“Read more about Number of servers estimation” >Number of servers estimation
  • <a href="#Building-blocks-we-will-use" aria-label=“Read more about Building blocks we will use” >Building blocks we will use
"

Requirements

Let’s define the requirements for a ride-hailing system like Uber.

Functional requirements

Key functional requirements include:

  • Update driver location: Automatically track driver coordinates at regular intervals.

  • Find nearby drivers: Display available drivers in the rider's vicinity.

Note: Drivers can be ranked not only by proximity but also by ratings, popularity, or other relevance metrics to optimize matching.

  • Request a ride: Riders request a ride, and the system notifies the nearest driver.

  • Manage payments: Handle payment processing at the start and end of the trip.

  • Show driver estimated time of arrival (ETA): Display the driver's arrival time to the rider.

  • Confirm pickup: Drivers confirm when they have picked up the rider.

  • Show trip updates: Provide real-time status (ETA, location) to both parties during the ride.

  • End the trip: Drivers mark the trip ...