Prev Next

Integration / RabbitMQ Interview Questions

Explain the lifecycle of a message in RabbitMQ?

A message passes through several distinct stages between the moment a producer creates it and the moment it is finally removed from the broker.

flowchart LR A[Producer creates message] --> B[Publish to Exchange with routing key] B --> C{Bindings match?} C -->|Yes| D["Message copied into matching queue(s)"] C -->|No| E[Dropped or sent to alternate exchange] D --> F["Stored in queue; persisted to disk if durable+persistent"] F --> G[Delivered to a consumer within its prefetch limit] G --> H{Consumer response} H -->|ack| I[Message deleted from queue] H -->|"nack/reject, requeue=false"| J[Dead-lettered or dropped] H -->|"nack/reject, requeue=true"| F

Two points are worth calling out: a message can be copied into more than one queue if multiple bindings match, and a message can loop back into the "stored in queue" state indefinitely if it keeps being requeued without a TTL or retry limit.

What happens right after a producer publishes a message?
What can happen if a message is repeatedly nacked with requeue=true and no TTL is set?

More Related questions...

What is RabbitMQ? What is a message broker? What is AMQP? What is a queue in RabbitMQ? What is an exchange in RabbitMQ? What are the types of exchanges in RabbitMQ? What is a binding in RabbitMQ? What is a routing key? What is a producer in RabbitMQ? What is a consumer in RabbitMQ? What is the purpose of the RabbitMQ management plugin? What are the types of acknowledgments in RabbitMQ? Define virtual host in RabbitMQ? Describe how RabbitMQ ensures message durability? List the client libraries available for RabbitMQ? How does RabbitMQ differ from Kafka? Why do we use dead-letter exchanges in RabbitMQ? How does RabbitMQ handle message acknowledgment? What is the difference between direct and topic exchange? What happens when a queue has no consumers? How is message persistence achieved in RabbitMQ? Why should you use prefetch count in RabbitMQ? When should you use a fanout exchange? What is the difference between durable and transient queues? How do you implement RPC pattern with RabbitMQ? Why does RabbitMQ use a heartbeat mechanism? What is the difference between RabbitMQ and ActiveMQ? How can you optimize RabbitMQ throughput? When would you choose quorum queues over classic queues? What is the difference between publisher confirms and transactions? Explain the lifecycle of a message in RabbitMQ? Explain the internal working of RabbitMQ clustering? Why doesn't RabbitMQ guarantee message ordering in all cases? How does RabbitMQ handle high availability? Explain the execution flow of a publisher confirm? How do you troubleshoot memory alarms in RabbitMQ? What is the difference between mirrored queues and quorum queues? How does RabbitMQ implement the Raft consensus algorithm in quorum queues? Why is TTL important for queues and messages in RabbitMQ? How do you scale RabbitMQ horizontally? Explain the internal working of the RabbitMQ shovel plugin? What is the difference between federation and shovel in RabbitMQ? How does RabbitMQ handle network partitions in a cluster? Explain the lifecycle of a consumer connection and channel? How do you troubleshoot unacknowledged message buildup in RabbitMQ?
Show more question and Answers...


Comments & Discussions