Ba mức đảm bảo giao message:
- At-most-once: giao tối đa một lần, có thể mất message (không retry). Đơn giản, nhanh; hợp dữ liệu ít quan trọng (metric, log).
- At-least-once: không mất nhưng có thể trùng (retry khi không chắc đã ack). Phổ biến nhất → consumer phải idempotent để xử lý trùng an toàn.
- Exactly-once: mỗi message ảnh hưởng đúng một lần. Lý tưởng nhưng rất khó/tốn; thực tế thường đạt được bằng at-least-once + dedupe idempotent ở consumer.
Dead-letter queue (DLQ): hàng đợi phụ chứa message xử lý thất bại nhiều lần (lỗi độc/poison message). Thay vì retry vô hạn làm nghẽn queue chính, message hỏng được chuyển sang DLQ để điều tra và xử lý riêng, không chặn phần còn lại.