Search⌘ K
AI Features

System Design: Uber

Define the core functionality and user roles within a large-scale ride-hailing service like Uber. Identify and articulate the key functional and non-functional requirements via an assessment.

We'll cover the following...

What is Uber?

Uber is a ride-hailing application that connects riders with drivers. Riders register to book vehicles for travel, while drivers register to fulfill these requests. The app facilitates real-time communication and coordination between parties via their smartphones.

A user requests a ride
1 / 5
A user requests a ride

The illustration below displays the growth of active Uber users from 2017 to 2020 (Source: Statista):

Monthly number of Uber's active users worldwide from 2017 to 2020(by quarter)

AI Powered
Saved
3 Attempts Remaining
Reset
Identify the functional and nonfunctional requirements for Uber.
Let’s evaluate your understanding of the functional and nonfunctional requirements for Uber. Identify three functional and three nonfunctional requirements for Uber in the widget below. Provide the need for each requirement in a single line.

How will we design Uber?

Designing a system like Uber involves answering critical questions about how drivers connect with riders and how the platform scales. This chapter provides a comprehensive design solution.

We divide the design process into six sections:

  1. Requirements: Define functional and non-functional requirements, including estimates for storage, bandwidth, and compute resources.

  2. High-level design: Outline the system architecture and API design.

  3. Detailed design: Explore the internal workings of specific components and their interactions.

  4. Payment service and fraud detection: Analyze payment workflows and fraud prevention mechanisms.

  5. Evaluation: Assess how the proposed design satisfies the non-functional requirements.

  6. Quiz: Test your knowledge of the design concepts.

Let’s start by defining the requirements in the next lesson.