[rabbitmq-discuss] Clustering Internals

Matthew Sackman matthew at rabbitmq.com
Thu Mar 24 23:53:25 GMT 2011

On Thu, Mar 24, 2011 at 05:16:50PM -0600, Jason J. W. Williams wrote:
> The side-effect for publishing being that the channel on the server side can
> still be in the process of routing the message while the client has already
> moved on to the next publish command.  So if the server node dies, without
> transactions or publisher confirms the client has no idea that the message
> has gone poof before it got routed. Would that be a correct description?

Yes. And this is fundamentally why you can't have exactly-once delivery:
either you have fire and forget, in which case msgs can be lost in
transit to the broker, or you use transactions or confirms, at which
point the tx.commit_ok or the confirm back to the client can be lost
thus making the client retransmit messages to a non-failed broker where
those msgs actually were received and processed by the broker, it's just
the client never received the notification that that had occurred.


More information about the rabbitmq-discuss mailing list