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ộ.