I would like to implement something very specific so I’ll try to be as precise as possible.
I want to have guaranteed delivery when an event is caught by an @EventHandler. Not with an @EventSourcingHandler, I am just targeting an @EventHandler.
Basically using an external bus to publish those events that would be then consumed asynchronously and in a loosely coupled fashion by the @EventHandler(s).
For example if one @CommandHandler is not able to commit its data, I want to make sure the message itself is not consumed and could be replayed later on.
My first idea was to implement my own custom bus extending EmbeddedEventStore because I am also interested in the event sourcing capabilities offered by this implementation.
Is it possible to solely extend the event published to the @EventHandler(s) and not to the @EventSourcingHandler?
Is the publish() method the good way to do it?