AxonFramework / extension-kotlin

Axon Framework extension for Kotlin integration to ease development in Kotlin.
https://axoniq.io/
Apache License 2.0
43 stars 9 forks source link
axon-framework kotlin

Axon Framework - Kotlin Extension

Maven Central Build Status SonarCloud Status Open Source Helpers

Note: This extension is still in an experimental stage.

Axon Framework is a framework for building evolutionary, event-driven microservice systems, based on the principles of Domain Driven Design, Command-Query Responsibility Segregation (CQRS) and Event Sourcing.

As such it provides you the necessary building blocks to follow these principles. Building blocks like Aggregate factories and Repositories, Command, Event and Query Buses and an Event Store. The framework provides sensible defaults for all of these components out of the box.

This set up helps you create a well-structured application without having to bother with the infrastructure. The main focus can thus become your business functionality.

This repository provides an extension to the Axon Framework: Kotlin. It provides functionality to leverage Kotlin features to be used with Axon Framework.

For more information on anything Axon, please visit our website, http://axoniq.io.

Getting started

Dependencies

For the Kotlin extension itself you can get the version from the axon-bom or use the following coordinates:

Maven

<dependency>
    <groupId>org.axonframework.extensions.kotlin</groupId>
    <artifactId>axon-kotlin</artifactId>
    <version>4.6.0</version>
</dependency>

Gradle

implementation("org.axonframework.extensions.kotlin:axon-kotlin:4.6.0")

For the Kotlin testing extension itself please use the following coordinates:

Maven

<dependency>
    <groupId>org.axonframework.extensions.kotlin</groupId>
    <artifactId>axon-kotlin-test</artifactId>
    <version>4.6.0</version>
</dependency>

Gradle

implementation("org.axonframework.extensions.kotlin:axon-kotlin-test:4.6.0")

Receiving help

Are you having trouble using the extension? We'd like to help you out the best we can! There are a couple of things to consider when you're traversing anything Axon:

Feature requests and issue reporting

We use GitHub's issue tracking system for new feature request, extension enhancements and bugs. Prior to filing an issue, please verify that it's not already reported by someone else.

When filing bugs:

When filing features:

Building the extension

If you want to build the extension locally, you need to check it out from GiHub and run the following command:

./mvnw clean install

Producing JavaDocs and Sources archive

Please execute the following command line if you are interested in producing KDoc and Source archives:

./mvnw clean install -Pjavadoc-and-sources