Đừng ghi mỗi phiếu thẳng vào một dòng database — hãy buffer (đệm) write, shard counter, và chấp nhận tally (kiểm phiếu) eventual. 5 triệu phiếu trong 10 phút là ~8.300 phiếu/giây trung bình, với đỉnh cao hơn nhiều (một khoảnh khắc truyền hình trực tiếp có thể gấp 10 lần). Mẹo là biến một update vào một dòng nóng thành nhiều increment độc lập, song song.
Client ─▶ Edge/API ─▶ Kafka (vote events) ─▶ Consumers ─┬─▶ Dedup store (SET one-vote)
(durable buffer) └─▶ Sharded counters (INCR N shards)
│
Redis/Aggregator ◀── periodic sum of shards ──────────────────────┘
│
└─▶ Read replica / CDN cache ─▶ Live tally to clients
