How would you design a system to handle high-volume data ingestion and caching to reduce database load?