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

Trong recovery matrix, Ignore = ack/commit bỏ qua, không retry, không DLQ (hoặc drop sau phân loại). Nghe như tội — đôi khi là quyết định sản phẩm đúng.

Sai lầm hai phía: (1) never ignore → poison kẹt mãi; (2) ignore cho lẹ → missing thầm.

Ignore hợp lý

  • Best-effort: push marketing, analytics sample, log phụ — mất vài event trong SLA.
  • Duplicate đã dedup: bản sau ack bỏ (đã effect).
  • Poison đã triage: data không sửa được, business chấp nhận drop + metric (hiếm; document).
  • Schema unknown + policy drop: version không hỗ trợ, có alert tỷ lệ — không im lặng 100%.

Ignore nguy hiểm (mặc định cấm)

  • Read / projection phải đủ: ignore = missing view. Matrix: NO trên read trừ metric chấp nhận mất.
  • Write money path: bỏ action = mất charge/refund / bước workflow.
  • Shared log: bạn ignore không có nghĩa app khác không cần — và bạn không được resend thay ignore lung tung.
  • Ignore để “xanh lag”: che nợ correctness.

Ignore vs DLQ vs Unblock

Ignore     — biến mất với group này; rẻ; dễ quên audit
DLQ        — cất + alert; unblock + còn cơ hội redrive
           (xem poison-dlq, dlq-triage, unblock)
Release    — giữ message, có thể block lane

Unblock có thể bằng DLQ hoặc ignore. DLQ = “nhả hàng nhưng còn địa chỉ”. Ignore = “nhả và thôi” — chỉ khi product ký.

Hai case product

  • OK: event “banner_impression” sample 10% — mất vài bản = OK, có metric drop.
  • Không OK: event “payment_captured” ignore vì schema lạ — biến thành missing tiền; phải DLQ + triage.

Làm đúng nếu ignore

  1. Metric + alert drop rate / reason code.
  2. Document SLA (“best-effort, có thể mất”).
  3. Không gộp permanent bug vào ignore để khỏi sửa code.
  4. Review định kỳ: ignore có tăng bất thường không?

Một câu để nhớ

Ignore là decision sản phẩm, không phải catch rỗng.
Unblock được — correctness phải được nói to.