Skip to content

Dead letter queue for failed message#191

Open
gloskull wants to merge 3 commits into
Utility-Protocol:mainfrom
gloskull:Dead-Letter-Queue-for-Failed-Message
Open

Dead letter queue for failed message#191
gloskull wants to merge 3 commits into
Utility-Protocol:mainfrom
gloskull:Dead-Letter-Queue-for-Failed-Message

Conversation

@gloskull

Copy link
Copy Markdown
Contributor

Designed and implemented a system-wide, high-performance, relational Dead Letter Queue (DLQ) for failed message/transaction processing (specifically on-chain Soroban token minting events) under the strict SLA requirements (<100ms P99, 99.99% availability, zero message loss).

Includes:

Relational PG DLQ store with robust index design to ensure P99 < 5ms for writes/reads.
Complete separation of concerns by dead-lettering after committing transaction rollback.
Administrative REST API for auditing and manual/automated re-processing of failed payloads.
Custom Prometheus metrics with background status poller.
Comprehensive integration test suite (100% pass rate).
Detailed DLQ_ARCHITECTURE.md documentation.
Closes #129

google-labs-jules Bot and others added 3 commits July 17, 2026 15:49
- Created dead_letter_queue table schema in src/settlement/schema.sql
- Implemented core DLQ storage repository in src/settlement/dlq.rs
- Integrated automatic dead-lettering on failure in src/settlement/finalizer.rs
- Registered DLQ Admin REST APIs in src/api/router.rs and handlers in src/api/handlers.rs (list, get, retry, delete)
- Added Prometheus metrics (utility_dlq_messages_count, utility_dlq_retries_total) and a background poller task
- Wrote thorough integration tests in tests/dlq_tests.rs
- Documented design in DLQ_ARCHITECTURE.md

Co-authored-by: gloskull <189399494+gloskull@users.noreply.github.com>
…40902158088249888

Dead Letter Queue for Failed Message Processing
Comment thread src/api/metrics.rs
set_dlq_messages_count(&q_name, &status, count as f64);
}
}
Err(e) => {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dead Letter Queue for Failed Message Processing

2 participants