একটি hot post-এ প্রতি event-এ কখনও UPDATE posts SET views = views + 1 করবেন না — সেই একটি row একটি lock bottleneck হয়ে যায়। Redis-এ increment করুন, প্রতি কয়েক সেকেন্ডে DB-তে batch-flush করুন, এবং Redis থেকে count পড়ুন। DB durable total সংরক্ষণ করে, live traffic নয়।
আর্কিটেকচার
Client tap ─▶ API ─▶ Redis INCR views:{post} (live, source of truth for reads)
│ └── dedup: SADD seen:{post} {user/ip}
▼
every ~5s / N ops
Flusher ─▶ UPDATE posts SET views = views + delta (durable)
▲
read path: GET Redis (fallback DB on miss)
