This PR introduces support for publish confirmations as described here.
The publish confirmation mechanism is exposed via two new channel-level methods.
The confirmPublishedMessages method enables it for a particular channel (further invocations of the method are treated as no-ops).
The publishNotifier method allows applications to subscribe to a stream for publish notifications. Each notification contains the original message and message properties as well as a flag which indicates whether the broker handled (e.g. persisted to stable storage) or lost the message.
Note that receiving an ACK for a message does not guarantee that it has been processed by one or more consumers. For example, when publishing to a queue with no consumers, the broker (tested with rabbitmq 3.9.7) will still ACK the message.
The PR also includes an example (in example/confirm) of using this new feature.
This PR introduces support for publish confirmations as described here.
The publish confirmation mechanism is exposed via two new channel-level methods.
confirmPublishedMessages
method enables it for a particular channel (further invocations of the method are treated as no-ops).publishNotifier
method allows applications to subscribe to a stream for publish notifications. Each notification contains the original message and message properties as well as a flag which indicates whether the broker handled (e.g. persisted to stable storage) or lost the message.Note that receiving an ACK for a message does not guarantee that it has been processed by one or more consumers. For example, when publishing to a queue with no consumers, the broker (tested with rabbitmq 3.9.7) will still ACK the message.
The PR also includes an example (in example/confirm) of using this new feature.
Fixes #60