Dead Letter Queue (DLQ)
A destination for messages that cannot be processed automatically. Messages are routed to the DLQ when:
- Sequence mismatch with
MERGE_MANUALstrategy - Processing failures after retry exhaustion
- Payload retrieval failures (external storage unavailable)
- Unrecoverable errors in handlers
DLQ Entry Types
SequenceMismatchDetails
message SequenceMismatchDetails {
uint64 expected_sequence = 1;
uint64 actual_sequence = 2;
MergeStrategy merge_strategy = 3;
}
EventProcessingFailedDetails
message EventProcessingFailedDetails {
string error_message = 1;
uint32 retry_count = 2;
bool is_transient = 3;
}
PayloadRetrievalFailedDetails
For claim-check pattern failures when external payload cannot be retrieved.
Topic Structure
Per-domain DLQ topics: angzarr.dlq.{domain}
Resolution
DLQ messages require manual intervention:
- Inspect the failed message and context
- Fix the underlying issue
- Resubmit or discard the message
- Update monitoring/alerting as needed