Kiến trúc hệ thống 22/09/2026 8 phút

Cloudflare giới hạn tần suất ở biên: dựng sliding window counter THẬT trên Redis

Rate limit ở biên phải chạy cho hàng triệu danh tính mà vừa chính xác vừa cực rẻ RAM. Fixed window cho lọt gấp đôi ở ranh giới; log chính xác ngốn RAM. Bài này dựng sliding window counter kiểu Cloudflare chạy THẬT trên Redis bằng script Lua nguyên tử — đo trực tiếp: fixed cho lọt 200, sliding chặn ở 102; và MEMORY USAGE thật 96 byte vs hơn 1 MB.

Kiến trúc hệ thống 22/09/2026 6 phút

Stripe idempotency key: vì sao retry thanh toán không tính tiền bạn hai lần

Mạng chập chờn khiến client retry — và với thanh toán, retry ngây thơ nghĩa là tính tiền hai lần. Stripe giải bằng Idempotency-Key: lưu kết quả lần đầu, request trùng key trả lại kết quả cũ mà không thực thi lại. Bài này dựng THẬT trên Redis bằng Lua atomic và đo: có idempotency trừ tiền 1 lần, không có thì 5 lần.

Kiến trúc hệ thống 22/09/2026 5 phút

Instagram sinh ID phân tán: 64 bit gói cả thời gian, shard và thứ tự

Ở quy mô sharded, cần ID duy nhất mà không có điểm sinh trung tâm (nút thắt). Instagram gói vào 64 bit: 41 bit timestamp + 13 bit shard + 10 bit sequence, sinh ngay trong Postgres bằng PL/pgSQL. Bài này dựng THẬT đúng scheme đó: ID tăng theo thời gian, 50.000 ID không trùng, và trích được shard từ chính con số ID.

Kiến trúc hệ thống 22/09/2026 5 phút

Google Bigtable dùng bloom filter: cấu trúc tí hon cứu vô số lượt tra đĩa

Đọc một khoá không tồn tại trong LSM-store phải tra nhiều SSTable trên đĩa — rất phí. Bigtable đặt một bloom filter trong RAM cho mỗi SSTable để trả lời rẻ tiền 'khoá này chắc chắn không có'. Bài này dựng THẬT bằng RedisBloom: 1 triệu khoá, dương giả 0,5%, không bao giờ âm giả, và nhỏ hơn SET ~41 lần.

Kiến trúc hệ thống 22/09/2026 5 phút

Tìm kiếm toàn văn như Elasticsearch: inverted index đánh bại LIKE ~1000 lần

LIKE '%từ%' phải quét từng bản ghi — O(n), không index được. Elasticsearch (và Lucene) dùng inverted index: ánh xạ từ tới danh sách tài liệu chứa nó. Bài này dựng THẬT trong PostgreSQL bằng tsvector + GIN và đo EXPLAIN ANALYZE: cùng kết quả nhưng inverted index nhanh hơn ~1092 lần trên 500.000 tài liệu.

Kiến trúc hệ thống 22/09/2026 5 phút

Stack Overflow cân bằng tải với HAProxy: chia tải và tự loại máy chủ chết

Một máy chủ không chịu nổi tải, và máy chủ thì có lúc chết. HAProxy chia request ra nhiều backend và dùng health check tự loại backend hỏng mà không rớt request. Bài này dựng THẬT HAProxy + 3 backend: round-robin chia 4/4/4, giết một backend thì tự dồn 6/6 không lỗi 5xx, bật lại thì tự quay vào pool.