Transactional Outbox
Định nghĩa
Transactional outbox là pattern ghi business change và event record vào cùng database transaction, sau đó một publisher riêng đọc outbox để phát event.
Cách hiểu bằng lời của tôi
Pattern này tránh lỗi dual-write: database update thành công nhưng publish event fail, hoặc ngược lại. Event chưa cần rời database ngay, nhưng phải được ghi cùng transaction với state change để không mất sự thật đã commit.
Cơ chế
BEGIN
-> update business table
-> insert outbox event
-> COMMIT
-> publisher đọc outbox
-> publish tới broker/downstream