Closed nmn closed 9 years ago
Happy to update the docs to be clearer - even happier to merge a pull request with improved docs.
Thanks for the clear answer. Please let me know about question 3 as well. When using ack: true and persistent queues, is it possible to later set up a new listener on the queue that can read all past events?
Thanks.
Number 3 is not possible by default, simply due to the nature of rabbitmq.
Rabbit will forward or store and forward (based on your persistence settings) messages via exchanges and queues. Once it has forwarded those messages to any/all bound consumers, it's done with them. If using ack:true, the messages will be in a sent state and removed from the queue completely when you ack() or reject().
If you want the ability to replay messages, you would need an application-specific storage mechanism on the sender, which you could trigger to resend events via a message sent to that service from another.
If you want something like that at the infrastructure level, instead of the application level, check out kafka.
You may also be able to implement a custom exchange type in RabbitMQ, thus getting the ease of use of rabbit with some other features usually only found on other broker technologies.
https://github.com/videlalvaro/rabbitmq-recent-history-exchange
Thanks a ton!
Would like to know the answers/documentation for the following questions:
If Yes:
Thanks.