Nâng CaoRabbitMQ iconRabbitMQ

Outbox pattern là gì và tại sao cần dùng?

Outbox pattern đảm bảo message không bao giờ bị mất khi publish lên RabbitMQ đồng thời với update database.

  • Thay vì update DB rồi publish (có thể mất message nếu publish fail), bạn ghi cả business data VÀ message vào DB trong cùng một transaction, sau đó một background job đọc outbox table và publish lên RabbitMQ.
  • Đảm bảo: DB commit thành công thì message sẽ được publish; DB commit fail thì không có gì xảy ra.
  • Sau khi publish thành công và nhận confirm, xóa record khỏi outbox.
  • Thiết yếu cho event-sourced và saga architecture.

Xem toàn bộ RabbitMQ cùng filter theo level & chủ đề con.

Mở danh sách RabbitMQ