Uber
Use cases
Real time cab booking service like Uber, Lyft, Bolt.
Real time hotel / restaurant search like Yelp.
Target shoppers nearing a certain store for a marketing promotion.
Hyper-local delivery system — dispatch delivery agents for restaurant order like Uber Eats.
Functional requirements
Given a location by a client or user, our service should figure out certain number of nearby locations.
NN: Given a location, find the nearest k points
Range query: Retrieve all points within a specific spatial range.
Update location
Non-functional requirements
High performance
The location should be accurate so that the delay in update should response ≤ 200 milliseconds.
We need to support 50000 read queries per second & 10000 write queries per second.
Scalable
Our service is used world wide.
As users grow in our system, the system should scale linearly without adding much burden.
Real world
References
Appendix
A great percentage of the below post comes from this blog https://kousiknath.medium.com/system-design-design-a-geo-spatial-index-for-real-time-location-search-10968fe62b9c
Past chart
TODO
Uber architecture and system design: https://medium.com/nerd-for-tech/uber-architecture-and-system-design-e8ac26690dfc
Last updated