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

Consistent hashing: cách Amazon Dynamo chia dữ liệu, dựng THẬT trên Redis Cluster

Chia khoá cho N node bằng hash%N nghe hợp lý — cho tới khi thêm một node và gần như MỌI khoá phải chuyển chỗ. Dynamo (2007) giải bằng consistent hashing. Bài này dựng THẬT một Redis Cluster 3 node (16384 hash slot), nạp 20.000 khoá, thêm node thứ 4 và đo trực tiếp: chỉ 24,9% khoá phải dời (~1/N) thay vì ~75% của modulo.

Công cụ 22/09/2026 6 phút

Git là một cơ sở dữ liệu nội dung địa chỉ hoá: blob, tree, commit

Đa số người dùng Git như một hộp đen với add/commit/push. Nhưng bên dưới, Git chỉ là một key-value store đơn giản: khoá là SHA của nội dung, giá trị là object. Bài này mổ xẻ ba loại object (blob, tree, commit) bằng lệnh git thật — tự tính ra khoá SHA của Git và chứng minh nó băm nội dung, không phải tên file.

Công cụ 22/09/2026 6 phút

Ba vùng của Git: working directory, index (staging) và repository

Ai cũng gõ git add rồi git commit, nhưng ít người biết index (staging) thực chất là gì. Bài này mổ xẻ ba vùng của Git bằng lệnh thật: index là một file nhị phân lưu SHA blob + mode + path, git add ghi blob mới và cập nhật index, và hai lệnh diff soi hai khe khác nhau — hiểu điều này giúp bạn đọc đúng git status và dùng đúng git reset.

Công cụ 22/09/2026 5 phút

Ref, HEAD và branch trong Git: một nhánh chỉ là một con trỏ 41 byte

Nhiều người tưởng tạo branch là sao chép cả dự án, nên ngại tạo nhánh. Thực ra một branch chỉ là một file 41 byte chứa SHA của commit. Bài này chứng minh bằng lệnh thật: HEAD trỏ tới ref, ref trỏ tới commit, tạo branch = ghi 41 byte, chuyển branch = đổi con trỏ HEAD — và vì sao Git khuyến khích bạn tạo nhánh thoải mái.

Lập trình 22/09/2026 7 phút

Outbox pattern: vì sao ghi database rồi publish message là cái bẫy mất dữ liệu

Service ghi đơn hàng vào database rồi publish message sang Kafka — hai bước riêng. Nếu crash giữa hai bước, database có đơn mà message biến mất. Bài này chạy thật: dual-write để lệch 40/100 đơn; outbox pattern ghi business row và outbox row trong cùng một transaction PostgreSQL, relay đọc và publish — khớp 100%, và relay chạy lại vẫn an toàn. Chìa khoá là tính nguyên tử của database.