rabbitmq-consumer-reliability

Standardize RabbitMQ consumers with retry, DLQ routing, and channel-status updates.

Updated Nov 2, 2025
One-click install
npx skills add https://github.com/YuriGarciaRibeiro/API-notifications --skill rabbitmq-consumer-reliability
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: rabbitmq-consumer-reliability
Source: https://github.com/YuriGarciaRibeiro/API-notifications/tree/main/.codex/skills/rabbitmq-consumer-reliability
Command: npx skills add https://github.com/YuriGarciaRibeiro/API-notifications --skill rabbitmq-consumer-reliability

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires rg, and includes scripts (resource) and references (resource) components.

What problem does it solve?

Keeps RabbitMQ consumers resilient by standardizing retry, DLQ routing, and channel-status updates within the notification system.

Core Features & Use Cases

  • Consistent lifecycle for RabbitMQ-based workers across Email/Sms/Push channels.
  • Implement retry strategies, dead-letter routing, and observability to diagnose failures.
  • Use case: when a consumer encounters transient errors, messages are retried, then moved to DLQ and statuses updated.

Quick Start

Create a RabbitMQ consumer that inherits from RabbitMqConsumerBase<TMessage>, defines its QueueName, and wires in retry and DLQ handling via MessageProcessingMiddleware.

Frequently Asked Questions about rabbitmq-consumer-reliability

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I standardize RabbitMQ consumers with retry and DLQ routing?

To standardize RabbitMQ consumers with retry and DLQ routing, you inherit from a base consumer class, define the queue name, and wire in a processing middleware to handle safe acks and dead-letter routing. This ensures deterministic message processing across Email, SMS, and Push channels.

What is dead-letter routing in RabbitMQ and when do I need it?

Dead-letter routing in RabbitMQ moves messages that encounter transient errors to a Dead Letter Queue after exhausting retries. You need it when requiring consistent error handling and observability to diagnose failures in notification workers.

Can I use this RabbitMQ retry approach for existing Email, SMS, and Push workers?

Yes, you can apply this RabbitMQ retry approach to both new and existing Email, SMS, and Push workers. It standardizes the consumer lifecycle, ensuring reliable message processing and channel-status updates across all notification channels.

What's the best way to handle transient errors in RabbitMQ consumers?

The best way to handle transient errors in RabbitMQ consumers is delegating processing to middleware that implements retry strategies. Messages are retried upon failure, then moved to a DLQ with repository channel statuses updated accordingly.

Why does my RabbitMQ consumer fail to update channel statuses after processing?

RabbitMQ consumers may fail to update channel statuses if they lack standardized lifecycle handling and safe acks. Delegating processing to middleware and routing failed messages to a DLQ ensures deterministic processing and consistent status repository updates.

Does RabbitMQ consumer reliability require declaring DLQ and DLX exchanges?

Yes, ensuring RabbitMQ consumer reliability requires declaring DLQ and DLX exchanges. This standardized approach satisfies the requirements for safe acks, dead-letter routing, and observability across notification workers.