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.