This document describes designing a real-time heat map service using Apache Storm. It involves collecting check-in data from various locations, geocoding the addresses, building heat maps for time intervals, and persisting the results. The key components are a check-ins spout to generate sample data, geocode lookup bolt to geocode addresses, heat map builder bolt to accumulate locations into intervals and emit maps, and persistor bolt to store results. Stream groupings and parallelism across workers allow the topology to horizontally scale for high throughput processing of location data.