Ride Sharing Service (Uber, Lyft)
Designing Uber is one of the more challenging system design interview questions because it's easy to become overwhelmed by the multitude of components and over-engineer the solution. In this system design, we will focus on the core flows that most interviewers expect to see covered, as well as provide deep dives into the most critical aspects of the system.
This is a basic outline of some of the core tables that could be included in a ride sharing service data model.
For a ride sharing services we will use a classic RESTful API to interact with the data. RESTful APIs are simple, widely used, stateless, and support caching which make it a good candidate for our system.
Our REST API will comprise of three main endpoints: