Storage
Requests:
The schema for the weather data could be
The schema for location
User data
Historical data can be archived using an object storage, for example AWS S3.
Please refer to the High level diagram
Please refer to the Sequence diagram
Database: looking at the scale, with TB daily, we are looking at a large scale data storage for weather data, while the access pattern is quite simple, a NoSQL solution is best fit, for example Cassandra
Cache: Redis cluster is well suited for the use case
Kafka
The system design for now didn't mention much about global setup, every single component in this system should have multi regional setup, including Load Balancers. Cassandra should be globally setup with regional partitions. Requests should be routed based on geographical edge points.