An Event Aggregator acts as a single source of events for many objects. It registers for all the events of the many objects allowing clients to register with just the aggregator.
Benefits. Producers and consumers are decoupled. No point-to-point integrations. It's easy to add new consumers to the system
Here is the overall solution
How to Organize Events Flow in a Microservices Architecture
Numerous enterprise solutions based on the microservices architecture have an issue with generalizing event flow from different sources. A lot of solutions also have various providers, for example:
- Azure Service Bus
- Apache Kafka
- RabbitMQ
Here we need a component with the ability to join event publishers and event subscribers
Another example that follows this principle is Azure Event Grid
With the Event-Grid, you can join cloud resources that produce events (publishers) and resources that handle the events (subscribers).