Stop funnelling all traffic to one key: split the hot key into N sub-keys (sharded counters), coalesce duplicate reads, serve from a local cache, and batch writes so one row isn't updated on every request. A single "likes" counter on a viral post can take 50k writes/sec — one row becomes a serialization bottleneck as every transaction fights for the same lock.
Fan-out instead of one contended row
50k inc/sec on post:123
│
hash(request) % N (split the key)
┌────────┬────────┬────────┬────────┐
▼ ▼ ▼ ▼ ▼
likes:123:0 :123:1 :123:2 :123:3 :123:4 ← sharded counters
└────────┴───┬────┴────────┴────────┘
▼
SUM on read = total (read fans in)
