I am building a microservice-architecture and I am looking for a good way to stream events.
Currently I have a service that publishes an event that three other services need to react to in a certain way, however the reaction to this event shall happen only once.
At the moment I am using RabbitMQ and my service publishes three messages in seperate queues, and each subscribing service listens to one queue. So, only one service instance can actually take the message and react to it.
However, I do not like this approach, because if I want to add a new subscriber I have to add a new queue for the publishing service.
I am basically looking for some kind of middleware on an event stream, that lets multiple services listen to one event, but makes sure that only one instance of each service actually reacts to the event.
I haven't found anything yet, so I would appreciate suggestions.