Book: The Complete Guide to Go Programming Also by me: Thinking in Go (2-book series) — Complete Guide to Go Programming + Hexagonal Architecture in Go My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools Me: xgabriel.com | GitHub A team I talked to had a feature-flag cache. A small map of flag-name to bool, refreshed from a config service every 30 seconds. Every HTTP handler in their service read from it on the way in. The first version used sync.RWMutex because that is what every Go intro reaches for when you say "read-heavy". Under load testing the read path looked fine. Under real traffic (tens of thousands of req/s across dozens of cores) the p99 climbed. A flame graph put runtime.semacquire and sync.(*RWMutex).RLock on the hot path. The mutex was not contended in the way people usually mean. It was paying cache-line traffic on every reader because every RLock writes the reader-count field.…