I often need a fast read path for small datasets (like a list of active plans or an allowlist) that updates periodically. Instead of locking on every read, I store a pointer to an immutable snapshot in atomic.Pointer. Reads are lock-free and safe; refresh happens in the background and swaps the pointer atomically. The key is immutability: never modify the map in place after publishing it, or you’ll race. I also make refresh honor context.Context and timeouts, and I keep the last good value if refresh fails. In production, this pattern keeps latency stable under load because readers never contend on mutexes. It’s a good fit when data changes slowly and correctness matters more than immediate consistency.