Skip to content

feat: retry & delay messages production-ready setup#16

Merged
Sebastian-Iwanczyszyn merged 9 commits intomainfrom
feat/retry
Feb 13, 2026
Merged

feat: retry & delay messages production-ready setup#16
Sebastian-Iwanczyszyn merged 9 commits intomainfrom
feat/retry

Conversation

@Sebastian-Iwanczyszyn
Copy link
Copy Markdown
Contributor

This PR introduces a production-ready retry and delay mechanism for message processing based on:

  • TTL + Dead Letter Exchange (DLX) pattern
  • Topic exchange support
  • Configurable retry handling
  • Safe acknowledgment strategy
  • Optional retry limit handling

No RabbitMQ plugins required.


Architecture Overview

Flow

Producer
   ↓
main.exchange (topic)
   ↓
main.queue
   ↓ (consumer error)
retry.exchange (topic)
   ↓
retry.queue (TTL)
   ↓ (after TTL)
main.exchange
   ↓
main.queue (re-delivered)

🔧 What Was Added

1️⃣ Retry Infrastructure

  • retry.exchange (topic/direct/fanout)

  • retry.queue with:

    • x-message-ttl
    • x-dead-letter-exchange → main exchange
    • no x-dead-letter-routing-key (preserves original routing key)

@Sebastian-Iwanczyszyn Sebastian-Iwanczyszyn merged commit 40e2da5 into main Feb 13, 2026
2 checks passed
@github-actions
Copy link
Copy Markdown

🎉 This PR is included in version 3.4.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant