Design of Google Maps
Demystify the high-level System Design of a map application like Google Maps. Define the core services, including route finder, graph processing, and Kafka pub-sub, and analyze their workflow for calculating optimal paths and handling real-time user navigation.
We'll cover the following...
“
- <a href=”#High-level-design" aria-label=“Read more about High-level design” >High-level design
- <a href="#Components" aria-label=“Read more about Components” >Components
- <a href="#Workflow" aria-label=“Read more about Workflow” >Workflow
- <a href="#API-design" aria-label=“Read more about API design” >API design
- <a href="#Show-the-users-current-location-on-the-map" aria-label=“Read more about Show the user\u2019s current location on the map” >Show the user\u2019s current location on the map
- <a href="#Find-the-optimal-route" aria-label=“Read more about Find the optimal route” >Find the optimal route
- <a href="#Get-directions" aria-label=“Read more about Get directions” >Get directions
High-level design
We divide the high-level design into two parts: the required components and the workflow connecting them.
Components
The design utilizes the following components:
Location finder: Identifies the user’s current location (latitude and longitude) to display on the map.
Route finder: Calculates the path between a source and a destination for navigation.
Navigator: Tracks the user’s journey in real-time. If the user deviates from the optimal path, this service sends updated directions and notifications.
GPS/Wi-Fi/Cellular technology: Technologies used to determine the user’s physical position.
Distributed search: Maintains an index ...