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.
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.
...