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
Product: budget stale
Song song order budget và timeout 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.