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

Retention và log compaction trong Kafka: xoá theo tuổi hay giữ bản mới nhất mỗi key

Kafka giữ log nhưng không giữ mãi — cleanup.policy quyết định số phận dữ liệu. Bài này đo thật log compaction trong lab: một topic nhận 8 message cho 3 key, sau compaction chỉ còn value mới nhất mỗi key (user-A từ 4 bản 100/120/200/180 còn đúng 180), và offset được giữ nguyên không đánh số lại. Giải thích retention theo thời gian/dung lượng, vì sao broker quét định kỳ, và khi nào compaction biến topic thành một bảng key-value.

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

Replication và ISR trong Kafka: cách không mất dữ liệu khi broker chết, và vì sao single-node không demo nổi

Độ bền của Kafka đến từ replication — mỗi partition có nhiều bản sao trên nhiều broker, với ISR là tập bản sao đang theo kịp. Bài này đo thật trên lab single-node và dùng chính các giới hạn làm bằng chứng: RF=1 chỉ có một bản sao, thử RF=2 báo lỗi vì chỉ một broker, và một phát hiện trung thực về min.insync.replicas mà single-node không tái hiện nổi. Hiểu RF, ISR, min.insync.replicas và acks=all để cấu hình độ bền đúng trên cluster thật.

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

Outbox pattern: ghi database và gửi Kafka mà không bao giờ lệch nhau, và vì sao dual-write là cái bẫy

Ghi đơn hàng vào database rồi gửi sự kiện lên Kafka nghe đơn giản, nhưng đó là hai thao tác trên hai hệ thống không có transaction chung — crash ở giữa làm chúng lệch nhau. Bài này đo thật trong pg-lab: outbox pattern ghi cả thay đổi nghiệp vụ lẫn sự kiện trong MỘT transaction (rollback thì cả hai biến mất), rồi relay đẩy 3 dòng outbox thành đúng 3 message trong Kafka. Hiểu vì sao dual-write luôn có khe hở mất đồng bộ.

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

Tổng kết sê-ri Kafka: khi nào nên dùng, khi nào đừng, và checklist vận hành đúc kết từ 11 bài đo thật

Mười một bài, hàng chục phép đo thật trên lab — giờ gộp lại thành thứ dùng được. Bài tổng kết này so Kafka với RabbitMQ và hàng đợi trên database để biết khi nào Kafka là đúng công cụ (và khi nào nó chỉ thêm gánh nặng), một cây quyết định có nên dùng Kafka không, và một checklist vận hành production ánh xạ về từng bài: partition, replication, acks, offset, lag, retention, compaction, schema, outbox.