Пакет golang.org/x/sync/singleflight: группирует одновременные вызовы с одним ключом в один реальный вызов; все ждущие получают один результат. Устраняет "thundering herd" при кешировании: много запросов одного ключа - один запрос в бэкенд.
var g singleflight.Group
v, err, _ := g.Do("key", func() (interface{}, error) { return fetch(key) })