Do you even need to? Sharded maps vs xsync and otter

Last time I hand-rolled a 256-way sharded map and crowned it the best concurrent cache in Go’s standard library. The top question back: what about the popular libraries? So I added xsync and otter to the same pinned benchmark. The answer surprised me — for reads, the library wins.

June 28, 2026 · 4 min · 821 words · Misha Strebkov

Shard your locks: benchmarking 6 Go cache designs

I built the same in-memory cache six ways with the Go standard library and benchmarked them across read/write mixes and core counts. Lock striping wins by up to 8×, sync.RWMutex turns out to be a trap, and one design gets slower the more cores you add.

June 20, 2026 · 7 min · 1464 words · Misha Strebkov