Modules

Sophon 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. Configure a repository for your build system (Maven, Gradle) to obtain the module binaries.

Main modules

The maven groupId of all modules is org.sophonhq.sophon.

Quick start a Sophon Application

The Sophon Spring Boot Starter module is the quickest start in to a Sophon 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

Sophon messaging

sophon-messaging

org.sophonhq.sophon

Sophon modelling

sophon-modelling

org.sophonhq.sophon

Sophon Event Sourcing

sophon-eventsourcing

org.sophonhq.sophon

Sophon Configuration

sophon-configuration

org.sophonhq.sophon

Sophon test

sophon-test

org.sophonhq.sophon

Sophon Spring

sophon-spring

org.sophonhq.sophon

Sophon Spring Boot Starter

sophon-spring-boot-starter

org.sophonhq.sophon

Sophon Disruptor

sophon-disruptor

org.sophonhq.sophon

Sophon Metrics

sophon-metrics

org.sophonhq.sophon

Sophon Micrometer

sophon-micrometer

org.sophonhq.sophon

Sophon Tracing OpenTelemetry

sophon-tracing-opentelemetry

org.sophonhq.sophon

Sophon Migration

sophon-migration

org.sophonhq.sophon

Sophon messaging

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

Sophon modelling

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

Sophon Event Sourcing

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

Sophon test

This module contains test fixtures that you can use to test Sophon 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.

Sophon Configuration

This module contains all the necessary components to configure a Sophon application.

Sophon Spring

This module allows Sophon 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 Sophon Events on a Spring Messaging Channel.

Sophon 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 Sophon components. It is explained in more details here.

Sophon Disruptor

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

Sophon Metrics

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

Sophon 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.

Sophon Tracing OpenTelemetry

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

Sophon Migration

This module contains OpenRewrite recipes that migrate an application from Axon Framework 4 to Sophon. See Migrating from Axon Framework 4 for details.

Extensions

Axon Framework’s extension modules, such as those for AMQP, Kafka, Mongo, JGroups or Spring Cloud, are built against Axon Framework and cannot be used with Sophon.