Preview Bản nháp chờ review — title, nội dung, link có thể sửa trước khi bỏ nhãn.

Lag = production (log/offset) đi trước consumer. Trên read side user thấy stale — “vừa bấm xong F5 vẫn cũ”.

Ops page “lag cao”. Product hỏi “dashboard real-time chứ?”. Cùng một số, hai ngôn ngữ. Bài này nối chúng.

Lag đo gì

messages / time  behind head
hoặc age of oldest unprocessed event
(quan trọng với SLA: “trễ tối đa X phút”)

Lag = 0 không đảm bảo wrong/missing — chỉ nói “đã consume tới đầu”; handler vẫn có thể map sai.

Đọc lag như bác sĩ

Lag↑ + CPU consumer ~100%  →  thiếu capacity / handler chậm
                              →  scale worker hoặc tối ưu code

Lag↑ + CPU rảnh / retry↑   →  poison, block, chờ dependency
                              →  unblock, DLQ, breaker — không scale mù

Lag ổn định > 0            →  stale budget? document với product

Lag↓ sau deploy rồi↑ lại   →  regress hoặc traffic
  • Scale khi đúng ô 1 — competing / optimize.
  • Ô 2: unblock, DLQ, không thêm pod “cho chắc”.

Product: budget stale

Song song order budgettimeout budget: stale budget — “user thấy data trễ tối đa bao lâu?”. Lag alert nên bám con số đó, không bám cảm tính on-call.

Lag và recovery

  • Redrive DLQ ồ ạt → lag spike có chủ đích; bound redrive.
  • Seek/reset offset → có thể stale hoặc replay storm; idempotent handler.

Một câu để nhớ

Lag là độ trễ sự thật của view — metric sản phẩm đội lốt ops.
Đọc cùng CPU/retry: biết scale hay unblock.