🐰 RabbitMQ Core Concepts

Interactive animated diagrams to understand message queuing

📤
Producer
user.created New user registration
order.placed Customer order submitted
payment.processed Payment completed
🔄
Direct Exchange
Routes by exact routing key match
📋
User Queue
Binding: user.created
0
📋
Order Queue
Binding: order.*
0
📋
Payment Queue
Binding: payment.processed
0
📥
User Service
📥
Order Service
📥
Payment Service

🔄 Exchange Types

Direct Exchange

Routes messages to queues based on exact routing key matches. Perfect for unicast routing where you want to send a message to specific queues.

  • Message routing key must exactly match queue binding key
  • Used for point-to-point communication
  • Default exchange is a direct exchange

💬 Message Examples

user.created

Triggered when a new user registers

Payload: user ID, email, timestamp
order.placed

Sent when customer places an order

Payload: order ID, customer, items
payment.processed

Confirms successful payment

Payload: payment ID, amount, status
user.updated

User profile information changed

Payload: user ID, changed fields
order.shipped

Order dispatched to customer

Payload: tracking number, carrier
inventory.updated

Stock levels changed

Payload: product ID, quantity

📋 Core Components

Producer: Application that sends messages
Exchange: Routes messages to queues based on rules
Queue: Buffer that stores messages
Consumer: Application that receives messages
Binding: Link between exchange and queue with routing rules
Routing Key: Message attribute used for routing decisions

Animation Status