Skip to main content

Uber

What is Uber​

img_428.png img_429.png

img_430.png

Details

The nonfunctional requirements are:

  • Availability: The system must be highly available since even brief downtime can disrupt service.
  • Scalability: It should scale efficiently to accommodate growing numbers of users and rides.
  • Reliability: The service must be reliable, providing fast and error-free updates and transactions.
  • Consistency: Users in the same area must have a consistent view of the system’s information.
  • Fraud Detection: The system should be capable of detecting fraudulent activities, especially related to payments. These requirements ensure that Uber operates efficiently, reliably, and to the satisfaction of both riders and drivers.

img_431.png

Requirements of Uber’s Design​

img_432.png img_433.png img_434.png img_435.png

img_436.png img_437.png img_438.png

High-level Design of Uber​

img_439.png img_440.png img_441.png img_442.png img_443.png img_444.png img_445.png img_446.png

img_447.png img_448.png img_449.png img_450.png img_451.png

Detailed Design of Uber​

img_452.png

img_453.png img_454.png img_455.png img_456.png img_457.png

Details

The reason for using both MySQL and Cassandra databases in Uber’s design is due to the nature of the data and its management requirements. MySQL is utilized for storing highly relational data, ensuring consistency across multiple tables which is crucial for the data related to each trip. However, as the volume of data grows, MySQL may face scalability and performance issues. To address this, Cassandra is used for storing the driver’s last known location and the trip information after the trip has been completed, leveraging its scalability and performance benefits for handling massive amounts of data.

img_458.png img_459.png img_460.png

Payment Service and Fraud Detection in Uber Design​

img_461.png img_462.png img_463.png img_464.png img_465.png img_466.png

Evaluation of Uber’s Design​

img_467.png img_468.png

img_469.png img_470.png img_471.png