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="#Storage-estimation" aria-label=“Read more about Storage estimation” >Storage 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 ...