Persistent event bus?

Does Axonframework provide a persistent event bus that can survive machine reboots or application shutdown/restart?
I red something about AMQP but I can’t find examples, and I can’t understand if it is dependent on Spring or not (I don’t use Spring).

Andrea

Hi Andrea,

currently, the Sping-AMQP connector for the event bus is the only implementation that provides persistence. And it does depend on Spring.

The SimpleEventBus executes everything in the calling thread, making it survive reboots. Do you require only an Asynchronous Event Bus or also a distributed one?

Cheers,

Allard

Sorry, I was thinking about an asynchronous event bus. In this case SimpleEventBus is not an option.
At the moment I don’t have a real requirement, I’m exploring Axonframework.

I’m trying to imagine a situation where I have some not dispatched events in the bus and the application is stopped (maintenance?) or the system crashes.
At the next start the events should be re-dispatched.

I think that “event sourcing” and CQRS show their real power when we introduce asynchronicity, so I’m evaluating solutions to possibly adopt in my work.
I’m not really interested now in distributed buses.

Hi Andrea,

currently, there is no out-of-the-box implementation for an asynchronous but persistent event bus. To create one isn’t too difficult, though. There are some libraries that support persistent queues (such as MapDB).

The asynchronous power of CQRS is not so much in using async processes everywhere, but more in the way components are decoupled. In short: they don’t rely on other components doing their work straight away. But starting off with a SimpleCommandBus and moving to async processing later is typically a good way to go.

Cheers,

Allard

Thanks for the advice.
I like Axonframework because it provide the infrastructure and let the developer focus on the domain.
I’m sure is not too difficult to create an asynchronous persistent bus, but I hope you evaluate the opportunity to add some out-of-the-box implementations: MapDB based, JPA based etc…
Moreover please keep considering Spring as an option and not a requirement.

Thanks,
Andrea