Một offset là một ID tuần tự, duy nhất cho mỗi sự kiện trong một partition — đánh dấu vị trí của nó. Consumer theo dõi và commit offset để biết chúng đã tiêu thụ những gì, cho phép tiếp tục, replay và xử lý tin cậy.
Offset là gì
OFFSET → vị trí/ID của một sự kiện trong một PARTITION:
→ mỗi partition là một log có thứ tự; sự kiện nhận offset tăng dần (0, 1, 2, ...)
→ một offset xác định duy nhất vị trí của một sự kiện trong partition của nó
→ sự kiện được GIỮ LẠI → log giữ sự kiện (offset vẫn hợp lệ trong khoảng thời gian giữ lại)
Cách consumer dùng offset
→ một consumer đọc sự kiện theo thứ tự và theo dõi offset HIỆN TẠI của nó (đã đọc đến đâu)
→ COMMIT một offset → ghi nhận "tôi đã xử lý đến đây" → khi khởi động lại, tiếp tục từ
offset đã commit (không xử lý lại mọi thứ)
→ consumer có thể SEEK tới bất kỳ offset nào → REPLAY sự kiện cũ, nhảy tới trước, xử lý lại từ một điểm
→ mỗi consumer GROUP theo dõi offset riêng của mình theo từng partition (tiến độ độc lập)
