Modules

Axon Framework consists of several modules packaged and distributed as JAR files. This approach allows developers to pick and choose the functionality they need.

Bootstrap modules

Those are the modules that allow bootstrapping and configuring an Axon-based application. The application should include the preferred option as a dependency.

Configuration Module

This module contains all the necessary components to configure an Axon-based application manually. It doesn’t depend on any third party frameworks.

Spring Boot Starter Module

This module provides Spring Boot auto-configuration for the application. It depends on Spring Framework to automatically configure all Axon Framework components.

Core modules

The core modules provide the essential components and building blocks for any Axon-based application.

Messaging Module

This module provides the elements needed to build proper messaging. That includes message busses and gateways, message lifecycle and scopes, correlation, serialization and deserialization, error handling, retries, etc.

Modeling Module

This module contains the components needed to build proper domain models on the command side. Most notably, it supports modeling essential Command-Handling Component types such as Aggregates and Sagas.

Event Sourcing Module

This module contains the components needed to provide an Event Sourcing implementation of the Command model repository.

A typical Axon-based application almost always depends on all core modules. However, there is usually no need to declare them as dependencies explicitly. The preferred bootstrap module provides them as transitive ones.

Optional modules

Spring Module

This module allows developers to configure Axon Framework components in a Spring Application context. It also provides several implementations specific to Spring Framework, such as an adapter for publishing and retrieving Axon Events on a Spring Messaging Channel.

Axon Server Connector Module

This module provides infrastructure components that connect to Axon Server.

Test Module

This module contains test fixtures that developers can use to test Axon-based components, such as Command Handlers, Aggregates, and Sagas. Typically one doesn’t need this module at runtime and only adds it to the classpath for running tests.

Disruptor Module

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

Metrics Module

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

Micrometer Module

This module provides basic implementations based on Micrometer to collect the monitoring information. It’s a dimensional-first metrics collection facade aiming to allow developers to time, count, and gauge their code with a vendor-neutral API.

Legacy Module

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

Tracing OpenTelemetry Module

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