Bài viết về: PostgreSQL

Bài viết về: PostgreSQL

Transactional Outbox thực chiến: Phát sự kiện đáng tin cậy sau transaction

Transactional Outbox thực chiến: Phát sự kiện đáng tin cậy sau transaction

Một request tạo đơn hàng thường phải làm hai việc: lưu đơn vào database và phát sự kiện OrderCreated sang message broker. Nếu commit database trước rồi publish thất bại, hệ thống có đơn hàng nhưng kho hoặc email không biết. Nếu publish trước rồi transaction rollback, consumer lại xử lý một đơn không tồn tại. Đây là bài toán dual write.

Đọc tiếp →
Database migration không downtime: Expand, Migrate, Contract từ A đến Z

Database migration không downtime: Expand, Migrate, Contract từ A đến Z

Một câu ALTER TABLE chạy thành công chưa có nghĩa là deployment an toàn. Trong production, phiên bản ứng dụng cũ và mới thường cùng tồn tại trong vài phút hoặc lâu hơn. Một migration khóa bảng, đổi tên cột ngay lập tức hoặc backfill hàng triệu bản ghi trong một transaction có thể làm request chậm, cạn connection pool và khiến rollback trở nên bất khả thi.

Đọc tiếp →