Hi folks,
I'm using RabbitMQ with golang.
My problem is this: I would like to define a fabric (combination of exchanges and queues) that has the following properties:
1. can be used to deliver messages from one producer to multiple consumers
2. Consumers can connect at any point in time - even after the producer has disconnected from the queue
3. Each consumer, after being connected, should receive all the messages published by the producer, independently of other consumers, and in the publishing order
4. extra: At a later point in time, be able to remove the stored messages
What I tried so far:
One producer multiple consumers - using fanout exchange connected to queues. Each consumer when connected declares another queue that is bound to the same exchange. of the producer. This gives the one-to-many property 1, but not properties 2 and 3. Even if the messages are published as persistent, new consumers do not seem to receive messages that have been published before they connected.
I'd appreciate your help.
Regards,
-- Erez Hadad