Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/meks77/quarkus-axonframework-extension
Quarkus Extension for the Axon Framework
https://github.com/meks77/quarkus-axonframework-extension
cqrs event-sourcing quarkus
Last synced: 2 months ago
JSON representation
Quarkus Extension for the Axon Framework
- Host: GitHub
- URL: https://github.com/meks77/quarkus-axonframework-extension
- Owner: meks77
- License: apache-2.0
- Created: 2024-09-10T14:07:38.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-10-16T05:21:46.000Z (2 months ago)
- Last Synced: 2024-10-16T18:34:39.147Z (2 months ago)
- Topics: cqrs, event-sourcing, quarkus
- Language: Java
- Homepage:
- Size: 121 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Quarkus Axon framework extension
## Goal
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## Current state
### Injectable Beans
* EventBus
* EventGateway
* CommandBus
* CoammandGateway
* QueryBus
* QueryGateway
* Repository\(e.g. Repository\ if GiftCard is a aggregate)### supported message types
* Events
* Commands
* Queries### auto configuration
#### automatically registered
* aggregates
* event handlers
* command handlers
* query handlers### supported event processors
#### Subscribing processors
* "simple" subscribing event processor
* persistent streams### supported event stores
* axon server
### dev services
* for the axon server
## Future features
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.
## Usage
Currently, it is not published to a maven repo, because it is in a too early stage. As long as it doesn't have a minimum
functionality, it will not be published.Because of that you have to check out the sources and install it to your local maven repository using the following
command:```shell
mvn install
```If you have a container engine installed (e.g. docker or podman), the build will start an axon server and run tests. If
containers are not supported, you must start an axon server and configure the grpc port, if it is not equal to the
default.After the successfull build you follow [Extension Documentation](docs/modules/ROOT/pages/index.adoc). Be aware of the
wrong version in this documentation. Currently the Version is 999-SNAPSHOT.### Provided CDI Beans
The following Axon Framework Type can simply be injected:
* EventGateway
* EventBus
* CommandGateway and
* CommandBus### Aggregates, event handler and command handler
Aggregates, event handler and command handler are detected automatically.
### Event store
As Eventstore the Axon Server is used. The configuration for the connection is described in
the [Extension Documentation](docs/modules/ROOT/pages/index.adoc)### Repositories
Currently the Bean RepositorySupplier can be injected, which provides access to the repositories for aggregates.
### Dev service for the Axon Server
If dev services are enabled and you have a container engine running(e.g. docker or podman), an axon server is
automatically started, when starting the application in dev mode.### Event Processors
#### Default event processors
##### Subscribing Event Processors
The simple subscribing event processor is enabled by default. There is nothing you need to do, to have the subscribing
event processor active.##### Persistent Streams
If you want to use persistent streams by default, configure
```
quarkus.axon.eventhandling.default-mode=persistent-stream
```You can also configure
* the stream name
* the message source name
* the used context
* the initial segments
* the initial position
* the filter and
* the batch for processing the eventsFor more details for the configuration please read
the [configurations documentation](docs/modules/ROOT/pages/index.adoc)