[rabbitmq-discuss] Reliability and Publisher Confirms...

Simon MacMullen simon at rabbitmq.com
Tue Jun 17 17:27:26 BST 2014

On 17/06/2014 3:23PM, Shadi Mari wrote:
> Speaking of persistent queues and reliability, I am aware that in order
> to increase rabbitmq reliability level, publisher confirms need to be
> enabled in order to tell exactly when messages are delivered/persisted.


> However, am not sure of how rabbitmq behaves where there are outstanding
> confirms/acks not yet received by the publisher and the connection
> between the publisher and the broker is broken. I am under the
> assumption that rabbitmq does not redeliver the acks when the connection
> is available again


> and it discards messages with undelivered acks to
> publisher,

No. The messages will not be discarded, the server may well have sent an 
ack to the publisher which is lost when the connection is lost, the 
server does not know what happens to acks after it has sent them. So it 
accepts the message anyway, the confirm is just to let you know.

> In case Yes, does this mean i
> will have to track in memory all outstanding publish requests with no
> confirmations and re-publish them when the connection is available? I am
> afraid this might create a reliability hole.

Your publisher needs to take responsibility for messages until they are 
acknowledged by the server, yes.

Cheers, Simon

Simon MacMullen
RabbitMQ, Pivotal

More information about the rabbitmq-discuss mailing list