What is RabbitMQ's publisher confirms?
Answer
Publisher confirms (publisher acknowledgements) ensure that messages from a producer were successfully accepted by the RabbitMQ broker. Without confirms, producers operate in fire-and-forget mode — a network failure or broker issue can silently lose messages. Enable: channel.confirmSelect(). Synchronous confirm: channel.basicPublish(...); channel.waitForConfirmsOrDie(5000) — blocks until the broker confirms or throws if unconfirmed within timeout. Asynchronous confirm: channel.addConfirmListener((sequenceNumber, multiple) -> handleAck, (sequenceNumber, multiple) -> handleNack). The broker sends Ack (message persisted) or Nack (message lost) with a sequence number. Use an in-memory map of pending messages keyed by sequence number — remove on Ack, retry on Nack. Publisher confirms + persistent messages + consumer acknowledgements form RabbitMQ's triple-guarantee for reliable message delivery. Without publisher confirms, message loss can occur between producer send and broker receipt.
Previous
What is Cassandra's consistency level?
Next
What is Cassandra's partition key and why is it important?