The solution you are proposing seems like a good one, as it provides extensibility and the possibility to change the behavior by simply adding a module to the application.
As the EventAggregator is meant for inter-module communication, another possible solution could be creating a “Communication Service” that is in charge of your application’s communication.
At first, this would only wrap the
EventAggregator’s functionality, but eventually you can change the underlying implementation of the service to use an
Enterprise Service Bus or any other form of communication. Since the interface of the service should not change, you don’t need to make any modifications to the application.
Take into account that the underlying implementation of the service should be able to discern between an event that should be made available publicly and one that is only mean for use as
EA default functionality to avoid over consuming the Service Bus.
You should take the approach you find most suiting for your application/familiy of applications.
Please let me know if this helps.