Modules

Axon Framework consists of a number of modules that provide specific capabilities. Depending on the exact needs of your project, you will need to include one or more of these modules.

There are currently two ways of obtaining the module binaries: either download the binaries from our website or preferably configure a repository for your build system (Maven, Gradle).

To not be bothered with version compatibility issues between framework and the extensions, it is recommended to use the BOM.

Axon modules are available on Maven Central.

Main modules

Axon 'Main Modules' are the modules that have been thoroughly tested and are robust enough to use in demanding production environments. The maven groupId of all these modules is org.axonframework. Visit Maven Central Repository to copy coordinates for the version you need.

Quick start an Axon Application

The Axon Spring Boot Starter module is the quickest start in to an Axon project as it will retrieve all the required modules/dependencies transitively. Alternatively, you can manually select individual modules for a customized configuration.

Module Artifact Id Group Id Maven Central

Axon messaging

axon-messaging

org.axonframework

available

Axon modelling

axon-modelling

org.axonframework

available

Axon Event Sourcing

axon-eventsourcing

org.axonframework

available

Axon Configuration

axon-configuration

org.axonframework

available

Axon test

axon-test

org.axonframework

available

Axon Server Connector

axon-server-connector

org.axonframework

available

Axon Spring

axon-spring

org.axonframework

available

Axon Spring Boot Starter

axon-spring-boot-starter

org.axonframework

available

Axon Disruptor

axon-disruptor

org.axonframework

available

Axon Metrics

axon-metrics

org.axonframework

available

Axon Micrometer

axon-micrometer

org.axonframework

available

Axon legacy

axon-legacy

org.axonframework

available

Axon Tracing OpenTelemetry

axon-tracing-opentelemetry

org.axonframework

available

Axon messaging

This module contains all necessary components and building blocks to support command, event and query messaging.

Axon modelling

This module contains the necessary components to create domain models, like Aggregates and Sagas.

Axon Event Sourcing

This module contains all necessary infrastructure components to support Event Sourcing, Command and Query Models.

Axon test

This module contains test fixtures that you can use to test Axon based components, such as your Command Handlers, Aggregates and Sagas. You typically do not need this module at runtime and will only need to be added to the classpath for running tests.

Axon Configuration

This module contains all the necessary components to configure an Axon application.

Axon Server Connector

This module provides infrastructure components that connect to Axon Server.

Axon Spring

This module allows Axon Framework components to be configured in the Spring Application context. It also provides a number of building block implementations specific to Spring Framework, such as an adapter for publishing and retrieving Axon Events on a Spring Messaging Channel.

Axon Spring Boot Starter

This module provides Spring Boot auto-configuration for your project. It is by far the easiest option to get started as it automatically configures all Axon components. It is explained in more details here.

Axon Disruptor

This module contains a specific CommandBus and Command Handling solution based on the Disruptor paradigm.

Axon Metrics

This module provides basic implementations based on Coda Hale to collect the monitoring information.

Axon Micrometer

This module provides basic implementations based on Micrometer to collect the monitoring information. Micrometer is a dimensional-first metrics collection facade whose aim is to allow you to time, count, and gauge your code with a vendor neutral API.

Axon legacy

This module contains components that enable migration of older Axon projects to use the latest Axon version.

Axon Tracing OpenTelemetry

This module contains the components needed to enable tracing with OpenTelemetry.

Extension modules

Besides main modules, there are several extension modules which complement Axon Framework. They address distribution concerns of Axon Framework towards non-Axon Server solutions. The maven groupId of these extensions starts with org.axonframework.extensions.*. Visit Maven Central Repository to copy coordinates for the version you need.

Module Artifact Id Group Id Maven Central GitHub

Axon AMQP

axon-amqp

org.axonframework.extensions.amqp

available

available

Axon AMQP Spring Boot Starter

axon-amqp-spring-boot-starter

org.axonframework.extensions.amqp

available

available

Axon CDI

axon-cdi

org.axonframework.extensions.cdi

available

available

Axon JGroups

axon-jgroups

org.axonframework.extensions.jgroups

available

available

Axon JGroups Spring Boot Starter

axon-jgroups-spring-boot-starter

org.axonframework.extensions.jgroups

available

available

Axon JobRunr Pro

axon-jobrunrpro

org.axonframework.extensions.jobrunrpro

available

available

Axon JobRunr Pro Spring Boot Starter

axon-jobrunrpro-spring-boot-starter

org.axonframework.extensions.jobrunrpro

available

available

Axon Kafka

axon-kafka

org.axonframework.extensions.kafka

available

available

Axon Kafka Spring Boot Starter

axon-kafka-spring-boot-starter

org.axonframework.extensions.kafka

available

available

Axon Kotlin

axon-kotlin

org.axonframework.extensions.kotlin

available

available

Axon Kotlin Test

axon-kotlin-test

org.axonframework.extensions.kotlin

available

available

Axon Mongo

axon-mongo

org.axonframework.extensions.mongo

available

available

Axon Mongo Spring Boot Starter

axon-mongo-spring-boot-starter

org.axonframework.extensions.mongo

available

available

Axon Multi Tenancy

axon-multitenancy

org.axonframework.extensions.multitenancy

available

available

Axon Multi Tenancy Spring Boot Starter

axon-multitenancy-spring-boot-starter

org.axonframework.extensions.multitenancy

available

available

Axon Reactor

axon-reactor

org.axonframework.extensions.reactor

available

available

Axon Reactor Spring Boot Starter

axon-reactor-spring-boot-starter

org.axonframework.extensions.reactor

available

available

Axon Spring ahead of time

axon-spring-aot

org.axonframework.extensions.spring-aot

available

available

Axon Spring Cloud

axon-springcloud

org.axonframework.extensions.springcloud

available

available

Axon Spring Cloud Spring Boot Starter

axon-springcloud-spring-boot-starter

org.axonframework.extensions.springcloud

available

available

Axon Tracing

axon-tracing

org.axonframework.extensions.tracing

available

available

Axon Tracing Spring Boot Starter

axon-tracing-spring-boot-starter

org.axonframework.extensions.tracing

available

available

Axon AMQP

This module provides components that allow you leverage an AMQP-based message broker as an Event Message distribution mechanism. This allows for guaranteed-delivery, even when the Event Handler node is temporarily unavailable.

Axon AMQP Spring Boot Starter

This module provides Spring auto-configuration on top of the axon-amqp module.

Axon CDI

This module provides support for Contexts and Dependency Injection (CDI) for the Java EE platform.

Axon JGroups

This module provides integration with JGroups for command distribution. JGroups should be regarded as a reliable messaging toolkit.

Axon JGroups Spring Boot Starter

This module provides Spring auto-configuration on top of the axon-jgroups module

Axon JobRunr Pro

This module provides integration with JobRunr Pro.

Axon JobRunr Pro Spring Boot Starter

This module provides Spring auto-configuration on top of the axon-jobrunrpro module

Axon Kafka

This module provides integration with Kafka for event distribution. As such it plays a similar role as the Axon AMQP extension and thus is not a replacement Event Storage mechanism. Kafka is a distributed message streaming platform.

Axon Kafka Spring Boot Starter

This module provides Spring auto-configuration on top of the axon-kafka module.

Axon Kotlin

This module provides a set of reified operations, among others, to allow a cleaner Kotlin coding experience when using Axon.

Axon Kotlin Test

This module provides a set of reified operations, among others, to allow a cleaner Kotlin coding experience when testing Axon applications.

Axon Mongo

This module provides event and saga store implementations that store event streams and sagas in a MongoDB database. MongoDB is a document based NoSQL database.

Axon Mongo Spring Boot Starter

This module provides Spring auto-configuration on top of the axon-mongo module.

Axon Multi Tenancy

This module provides distinct wrappers for Axon Framework’s infrastructure components to support multi tenancy within a single application. Use of this extension is most easily achieved with Axon Server, through using its multi-context feature, albeit not limited to this.

Axon Multi Tenancy Spring Boot Starter

This module provides Spring auto-configuration on top of the axon-multitenancy module. Note that this assumes an active Axon Server connection be present.

Axon Reactor

This module provides integration with Project Reactor.

Axon Reactor Spring Boot Starter

This module provides Spring auto-configuration on top of the axon-reactor module.

Axon Spring ahead of time

This module provides integration with Spring Ahead of Time. Spring AOT processing is part of creating a native image from a Spring (Boot) application.

Axon Spring Cloud

This module provides integration with Spring Cloud for command distribution. Spring Cloud provides an API for common distributed system patterns.

Axon Spring Cloud Spring Boot Starter

This module provides Spring auto-configuration on top of the axon-springcloud module

Axon Tracing

This module provides support for distributed tracing of Axon applications. The Open Tracing standard is used to provide the tracing capabilities. If you’re looking for Open Telemetry support, please check our documentation for that over here.

Axon Tracing Spring Boot Starter

This module provides Spring auto-configuration on top of the axon-tracing module

Axon Bill of Materials

In addition to the main framework modules and the extensions, Axon also has a Bill of Materials, or BOM. The BOM is provided to ensure the use of compatible framework and extension dependencies inside an Axon application. As such, it is the recommended approach towards defining the overall Axon version used inside of an application.

Module Artifact Id Group Id Maven Central GitHub

Axon Bill of Materials

axon-bom

org.axonframework

available

available

For using the BOM, you would add the axon-bom dependency to your dependency management system:

  • Maven

  • Gradle

<!--...-->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.axonframework</groupId>
            <artifactId>axon-bom</artifactId>
            <version>${version.axon}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

        ...

    </dependencies>
</dependencyManagement>
<!--...-->

For usage with Gradle Version 4.x and below, apply the dependency-management-plugin like so:

buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath "io.spring.gradle:dependency-management-plugin:0.5.1.RELEASE"
  }
}

apply plugin: "io.spring.dependency-management"

After this, import the Axon BOM:

dependencyManagement {
  imports {
    mavenBom 'org.axonframework:axon-bom:<VERSION>'
  }
}

Beginning with Gradle version 5.0, you can also omit the dependency-management plugin and instead use the platform dependency DSL to import maven BOMs:

implementation(platform("org.axonframework:axon-bom:<VERSION>"))

After that is in place, you can add any of the mentioned dependencies from framework and the extensions without specifying versions. Furthermore, you will be guaranteed that the provided versions in the BOM are compatible with one another.