RabbitMQ Knowledge Base

SkillDocs & knowledge

RabbitMQ knowledge base. Covers Exchange Types, Queue & Routing, Durability, Dead Letter, Confirmations. Intended for devlab-rabbitmq-usage to inherit via extends.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the RabbitMQ Knowledge Base skill

What this skill tells your AI

The instructions your AI receives, as published by seed-forge/harness-ai-kit in skills/public-rabbitmq-expert-base/SKILL.md and read by ahel’s review.

Source: Adapted from mindrally/skills (rabbitmq-development) and RabbitMQ official documentation.

Exchange Types

TypeRoutingUse for
DirectExact routing key matchPoint-to-point, RPC
TopicWildcard pattern (*.info, #)Flexible pub/sub
FanoutIgnore routing key, broadcast to all bound queuesBroadcast notifications
HeadersMatch on message headers (not routing key)Complex routing rules
  • Default exchange (empty name): direct routing by queue name. Convenient but not recommended for production.
  • Always declare exchanges explicitly; don't rely on auto-created exchanges.

Queue & Routing

  • Declare queues with durable=true for persistence across broker restarts.
  • Bind queues to exchanges with routing keys.
  • Use x-message-ttl for message expiration.
  • Use x-max-length to cap queue size (drop or dead-letter oldest).
  • Prefetch count (basic_qos): limit unacknowledged messages per consumer.

Durability & Reliability

  • durable=true on queue + persistent delivery mode on message = survive broker restart.
  • Publisher confirms: confirm_select() → broker acknowledges message receipt.
  • Consumer acknowledgments: basic_ack (success) / basic_nack (failure, requeue or dead-letter).
  • Never use auto_ack=true in production (message loss on consumer crash).

Dead Letter Exchange (DLX)

  • Messages are dead-lettered when: rejected (basic_nack with requeue=false), TTL expired, or queue length exceeded.
  • Configure with x-dead-letter-exchange and x-dead-letter-routing-key on the source queue.
  • Use DLX for retry queues, error handling, and audit trails.
  • Pattern: main queue → DLX → retry queue (with TTL) → main queue.

Connection & Channel

  • One connection per application; multiple channels per connection.
  • Channels are lightweight; connections are expensive (TCP + AMQP handshake).
  • Use connection pooling for multi-threaded applications.
  • Set heartbeat interval (default 60s) to detect dead connections.

Common Patterns

  • Work queue: multiple consumers, round-robin dispatch, prefetch=1 for fair dispatch.
  • Pub/Sub: fanout exchange, each subscriber has own queue.
  • RPC: direct exchange, correlation_id + reply_to for request/response.
  • Delay/Retry: DLX + TTL queue for delayed message processing.

Guardrails

  • Always use publisher confirms and consumer acknowledgments.
  • Never use auto_ack=true in production.
  • Always declare queues and exchanges explicitly.
  • Set prefetch count to prevent consumer overload.
  • Monitor queue depth and consumer lag.

Signals

GitHub stars
22
Forks
2
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
public-rabbitmq-expert-base
Source
github.com/seed-forge/harness-ai-kit