to orders
- order.created
- order.paid
- order.cancelled
sent 0 · confirmed 0 · returned 0 · nacked 0
One broker with a topic exchange, four queues and a few consumers, all running right here. Take a guided story, or play: add a publisher, crash a consumer, bind a queue with your own pattern, drag the timeline back, or type rabbitmqctl list_queues in the terminal.
Each story sets up a small broker and walks through it one event at a time. Guess what happens, then watch.
Publisher, exchange, queue, consumer, ack: the whole path, slowly.
Two workers on one queue. Round-robin, a slow worker, and why prefetch 1 is fairer.
Unacked messages come back, marked redelivered. With auto-ack they are lost.
Publish/subscribe: a fanout exchange copies each message to all bound queues.
Errors to one queue, everything to another; a key nobody bound is lost.
Keys like quick.orange.rabbit and patterns like *.orange.* or lazy.#
Silently dropped, returned with mandatory, or caught by an alternate exchange.
Rejected messages go to a dead-letter exchange; endless requeues are stopped by a delivery limit.
A queue with a message TTL and a DLX makes a delay: the retry-later pattern.
x-max-length with drop-head pushes out the oldest; reject-publish refuses the newest.
to orders
sent 0 · confirmed 0 · returned 0 · nacked 0
in 0 · routed 0 · unroutable 0
3 bindings
in 0 · routed 0 · unroutable 0
1 bindings
in 0 · acked 0 · redelivered 0 · dead-lettered 0 · dropped 0
in 0 · acked 0 · redelivered 0 · dead-lettered 0 · dropped 0
in 0 · acked 0 · redelivered 0 · dead-lettered 0 · dropped 0
in 0 · acked 0 · redelivered 0 · dead-lettered 0 · dropped 0
on billing
acked 0 · nacked 0 · rejected 0 · lost 0
on billing
acked 0 · nacked 0 · rejected 0 · lost 0
on shipping
acked 0 · nacked 0 · rejected 0 · lost 0
on audit
acked 0 · nacked 0 · rejected 0 · lost 0
No arguments: a plain classic queue.
""Nobody is consuming from it.
No ready messages.
The concepts behind what you see above. They also live under Notes, tagged #rabbitmq.