RabbitMQ message broker with AMQP protocol. Covers exchanges, queues, bindings, and messaging patterns. Use for reliable message delivery and complex routing scenarios. USE WHEN: user mentions "rabbitmq", "amqp", "exchanges", "routing patterns", "topic exchange", "fanout", asks about "message routing", "work queues", "request/reply", "flexible routing" DO NOT USE FOR: high-throughput streaming - use `kafka` or `pulsar`; cloud-native - use `nats`; AWS-native - use `sqs`; JMS required - use `activemq`; simple pub/sub - use `redis-pubsub`

GitHub
Install command
npx skhub add claude-dev-suite/rabbitmq
Markdown
SKILL.md

RabbitMQ Core Knowledge

Full Reference: See advanced.md for producer patterns (Node.js, Java, Python, Go), consumer patterns, security configuration, and high availability setup.

Deep Knowledge: Use mcp__documentation__fetch_docs with technology: rabbitmq for comprehensive documentation.

Quick Start (Docker)

services:
  rabbitmq:
    image: rabbitmq:3-management
    ports:
      - "5672:5672"   # AMQP
      - "15672:15672" # Management UI
    environment:
      - RABBITMQ_DEFAULT_USER=admin
      - RABBITMQ_DEFAULT_PASS=admin

Core Concepts

ConceptDescription
ExchangeRoutes messages to queues
QueueBuffer that stores messages
BindingRule linking exchange to queue
Routing KeyMessage attribute for routing

Architecture

Producer ──▶ Exchange ──binding──▶ Queue ──▶ Consumer
                │
                ├── direct   (exact routing key match)
                ├── topic    (pattern matching)
                ├── fanout   (broadcast to all)
                └── headers  (header-based routing)

Exchange Types

TypeRoutingUse Case
directExact key matchTask queues, RPC
topicPattern (*.#)Event routing
fanoutBroadcast allNotifications
headersHeader matchComplex routing
# Topic exchange patterns
order.*        → matches order.created, order.updated
order.#        → matches order.created, order.item.added
*.created      → matches order.created, user.created

Queue Configuration

ArgumentDescription
x-message-ttlMessage expiration (ms)
x-max-lengthMax queue size
x-dead-letter-exchangeDLX for rejected messages
x-dead-letter-routing-keyDLQ routing key
x-queue-typeclassic, quorum, stream

When NOT to Use This Skill

  • Event streaming with replay - Kafka provides persistent log
  • Ultra-high throughput (>100k msg/s) - Kafka or Pulsar scale better
  • AWS-native architecture - SQS integrates better
  • Lightweight messaging - NATS has simpler operations
  • JMS compliance required - ActiveMQ provides JMS API

Anti-Patterns

Anti-PatternWhy It's BadSolution
No prefetch limitConsumer overwhelmedSet prefetch to 10-50
Classic queues in HAData loss on node failureUse quorum queues
No DLX configuredPoison messages loop foreverConfigure dead letter exchange
Automatic acksMessage loss on crashUse manual acks
No publisher confirmsSilent message lossEnable confirms for critical messages

Quick Troubleshooting

IssueLikely CauseFix
Messages piling upSlow/dead consumerCheck consumer count and processing
High memory usageToo many unacked messagesReduce prefetch, add consumers
Messages not routedWrong routing keyCheck exchange-queue bindings
Duplicate messagesConsumer crashed before ackImplement idempotent processing
Publisher confirms timeoutBroker overloadedReduce publish rate

Production Checklist

  • TLS/SSL enabled
  • Users with least privilege
  • Virtual hosts for isolation
  • Quorum queues for HA
  • Dead letter exchanges configured
  • Message TTL set
  • Prefetch limits configured
  • Publisher confirms enabled
  • Monitoring dashboards
  • Alerting configured

Reference Documentation

Available topics: basics, exchanges, queues, consumers, clustering, production

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/messaging/rabbitmq

Default branch

main

Latest commit

9496306

Tree SHA

fe4e2f1