Define the APIs expected from the system. This is your chance to analyze and define the read and write paths so that you can come up with the high-level design...
{
latitude:
longitude:
}
[
Bengaluru,
Benton,
.
.
]
{
latitude:,
longitude:
}
{
temperature:
{
max:
min:
current:
},
weather:
cloudy / rainy
..
..
}
}
b. Forecast - To provide weather forecast for the next n days
/api/weatherForecast/{n} ( To get the weather forecast for the next n days )
[
{
max:
min:
weather: cloudy/ rainy / sunny , etc.,
},
{
max:
min:
weather: cloudy/ rainy / sunny , etc.,
}
]
Describe the overall system architecture. Identify the main components needed to solve the problem end-to-end. Use the diagramming tool to create a block diagram.
Mobile app
Browser app
3rd party providers
Injestion workers
Kafka pipeline
Weather Data DB
Redis cache
Current Weather service
Weather notification service
Location service
Weather forecast service
Deep dive into 2-3 key components. Explain how they work, how they scale, discuss tradeoffs, capacity, and any relevant algorithms or data structures.
Weather Data DB :
Kafka pipeline