Kafka đảm bảo thứ tự message trong phạm vi một partition — các message được ghi và đọc theo đúng thứ tự FIFO.
- Tuy nhiên, không có đảm bảo thứ tự giữa các partition khác nhau.
- Để đảm bảo ordering cho một nhóm message liên quan (ví dụ: tất cả sự kiện của một user), cần gán cùng một
message key— Kafka sẽ hash key và luôn route message có cùng key vào cùng partition. - Ordering có thể bị phá vỡ khi: producer bật
retries > 0vàmax.in.flight.requests.per.connection > 1(message sau có thể arrive trước message trước bị retry) — giải pháp là bậtenable.idempotence=true. - Ngoài ra, rebalancing consumer group không ảnh hưởng đến thứ tự trong partition vì offset được duy trì.