Uber
What is Uber


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.

Requirements of Uber’s Design


High-level Design of Uber


Detailed Design of Uber


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.

Payment Service and Fraud Detection in Uber Design

Evaluation of Uber’s Design

