Distributed event bus works as local by default (unless you explicitly add one of the implementations, like redis). Thus, when you develop a module which exposes distributed events, this module will be also usable in a monolithic application. If we are developing a monolithic app, we want these events to be transactional if possible (to provide data consistency without complicating the infrastructure).
In current design, distributed events are triggered out of current UOW. That means if you throws exception in your distributed event handler, it can not rollback the transaction of the event. And also it can not guarantee that event is delivered to the distributed event bus in a microservice scenario. We should work on that.
Distributed event bus works as local by default (unless you explicitly add one of the implementations, like redis). Thus, when you develop a module which exposes distributed events, this module will be also usable in a monolithic application. If we are developing a monolithic app, we want these events to be transactional if possible (to provide data consistency without complicating the infrastructure).
In current design, distributed events are triggered out of current UOW. That means if you throws exception in your distributed event handler, it can not rollback the transaction of the event. And also it can not guarantee that event is delivered to the distributed event bus in a microservice scenario. We should work on that.