I have Service A that publishes an event to RabbitMQ. I have two instances of Service B that will use the event to write to its database. I have two instances of Service C that will send the event data back to a client via websockets.
Only one instance of Service B should handle the event so data isn't written to the database twice.
All instances of Service C should receive the event as any one of them could have the websocket connection that needs to get the data.
How do I have some services handle events round-robin and some instances handle events as broadcast, do I need to publish the same event to two different exchange types?