Höre auf, allen Traffic auf einen Key zu leiten: splitte den Hot Key in N Sub-Keys (Sharded Counters), fasse doppelte Reads zusammen, bediene aus einem lokalen Cache und batche Writes, sodass eine Row nicht bei jedem Request aktualisiert wird. Ein einzelner "Likes"-Zähler auf einem viralen Post kann 50k Writes/Sek. bekommen - eine Row wird zum Serialisierungsengpass, weil jede Transaktion um denselben Lock kämpft.
Fan-out statt einer umkämpften 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)
