Configure SimpleEventHandlerInvoker instead of MultiEventHandlerInvoker for Sagas


I’m working on an Event Sourced application that is configured to handle all events synchronously, and to roll back the unit of work when uncaught exceptions happen. Until Axon 3.2 we could use this hacky snippet of configuration code:

@EventListener(ContextRefreshedEvent.class) public void onReady(ContextRefreshedEvent event) { final ApplicationContext applicationContext = event.getApplicationContext(); final String[] beanNamesForType = applicationContext.getBeanNamesForType(SagaConfiguration.class); Stream.of(beanNamesForType) .forEach(name -> { LOG.debug("Configuring {} saga configuration", name); final SagaConfiguration<?> configuration = (SagaConfiguration<?>) applicationContext .getBean(name); configuration.getSagaManager().setSuppressExceptions(false); }); }

I tried bumping to 3.3 but I could not figure out a way to keep this behavior. The problem is that Sagas end up using MultiEventHandlerInvoker, which eats the exceptions. I would like to use SimpleEventHandlerInvoker for everything instead, but I could not figure out a way to configure Axon to so so? Is this possible in 3.3?

Kind Regards,


Hi Jens,

We noticed that behavior also and reported a bug. As you can see it is resolved and scheduled for 3.3.3 release. We hope to release it soon, so stay tuned.

Hope this helps!


Hi Milan,

That’s great news! I’m looking forward to 3.3.3 then.