The goal of this extension is to provide a solution which
- simplifies the usage of the axon framework
- provides dev services for the event stores
- provides an integration similar to the spring integration
Please follow the user guide to get started with this extension.
On the main branch, the most recent quarkus version is used. To also support the latest LTS version of quarkus, a release branch for this LTS version is also maintained.
Currently, the LTS version 3.15 is supported in the branch release/quarkus-3.15
- EventBus
- EventGateway
- CommandBus
- CoammandGateway
- QueryBus
- QueryGateway
- Repository<T>(e.g. Repository<GiftCard> if GiftCard is a aggregate)
- Events
- Commands
- Queries
- aggregates
- event handlers
- command handlers
- query handlers
You can provide your own setup for
- setting up the framework at all but use the scanned classes
- custom transaction manager
- custom event processors
- custom event store
- custom metrics
- custom token store
- custom aggregate configuration
- "simple" subscribing event processor
- persistent streams
- tracking event processor
- pooled event processor
- custom setup of event processors
- Axon Server
- JPA Event Store
- JDBC Event Store
- Custom Event Store
- JDBC Token Store
- JPA Token Store
- custom setup for Tokenstore
- command dispatch and handler interceptors
- query dispatch and handler interceptors
- event dispatch and default handler interceptors
- wrapping Exceptions into CommandExecutionException
- wrapping Exceptions into QueryExecutionException
Sagas are automatically registered.
There are different saga stores you can use
- InMemory
- Jdbc
- JPA
- transaction handling
- custom setup of transaction handling
- dev service for the axon server
- live reloading
- snapshots
- inject cdi beans into methods annotated with
- CommandHandler
- EventHandler
- QueryHandler
- Upcasters
Live reloading works with a schedule process, which checks if sources changed. For some reason, when shutting down the axon configuration, it must be wait, that the new configuration works well.
If the wait time is too less, an error can occur that no command handler for your command is available. If that happens, please try to increase the wait time. For details please read the config documenation for more details how to configure.
The extension is just at the beginning. In the project tab are some of the features, which are currently planned.
While implementing, new features will be created and the order of the features can change.
Help for implementing the features is welcome.
Please follow Extension Documentation.