Uber architecture
Janvi Sharma
Python Developer || Git, GitHub, Gitlab || Django || Agile Methodologies ||AWS || JIRA(scrum) ||Docker
1. Monolithic to Service-Oriented Architecture (SOA) Shift
???- for better scale and handle the complexities of its expanding services.
2. Dispatch System (DISCO):
?-responsible for matching riders with available drivers. It optimizes for reduced driving, minimal waiting time, and overall minimum Estimated Time of Arrival (ETA).
3. Geolocation and Maps:
???- Uber relies on the Google S2 library to model maps and location data. This library divides the Earth into cells, allowing efficient data distribution and storage in a distributed system.
4. Supply Service:
???- Cabs act as supply services, tracked by geolocation. The location data is sent to the server through Apache Kafka, allowing real-time updates and efficient tracking of available cabs.refresh in every 4 second
5. Demand Service:
???- receives ride requests through a WebSocket, tracking user GPS locations and preferences. It communicates with the supply service to match riders with suitable drivers.
6. Dispatch System Matchmaking:
领英推荐
???- DISCO uses unique cell IDs to distribute responsibilities among servers. The system filters nearby cabs based on rider requirements, calculates ETAs, and offers rides to drivers.
7. Map Region Definitions:
???-subregions are labeled A, B, AB, and C, covering urban centers, rural areas, a combination of both, and highway corridors, respectively.
9. Map Building and Trace Coverage:
???- it trace coverage to identify missing road segments or incorrect geometry for accurate mapping.
10. ETA Calculation:
????- Estimated Time of Arrival is crucial for ride-matching. Uber calculates ETA based on road systems, using algorithms like Dijkstra's to find the best routes.?
11. Database Infrastructure:
????- Uber uses a mix of databases, including a NoSQL database (Schemaless built on MySQL), and other databases like cxassandra for high availability and low-latency demands.
12. Analytics and Log Analysis:? ? - Uber performs log collection and analysis using tools like Kafka clusters, Elasticsearch, and Kibana.Analytics cover various aspects, including tracking APIs, managing profiles, collecting feedback, fraud detection, and more.
13. Datacenter Failure Handling:
????- To handle data center failures, Uber maintains a backup data center and uses drivers' phones as a source of trip data. State digests are sent to drivers' phones, ensuring data integrity in case of a data center failure.