Backend nền tảng
G5 · Message Queue và Event Stream
Message Queue: point-to-point, message bị xóa sau khi tiêu thụ (RabbitMQ, Amazon SQS).
G5 · Middle · cốt lõi
Queue: hộp thư – thư được một người lấy đọc rồi mất. Stream: bảng tin – ai cũng đọc được, đọc lại được, tin còn lưu lâu.
Cốt lõi
- Message Queue: point-to-point, message bị xóa sau khi tiêu thụ (RabbitMQ, Amazon SQS).
- Event Stream: log lưu lâu dài, nhiều consumer, có thể replay (Kafka, Kinesis).
Đánh đổi
Cả hai giúp tách rời (decoupling), buffering. Cần replay/nhiều bên đọc → Stream.
Trong thực tế
SQS làm hàng đợi đơn hàng Amazon; Kafka cho activity log.
Bug thường gặp
Consumer xử lý xong nhưng chết trước khi ack → message được giao lại, email gửi hai lần (consumer cần idempotent).
Tự hỏi lại
Dead Letter Queue là gì? Xử lý message trùng (at-least-once) thế nào?