AxonFramework-Full — module dependency graph

Who depends on whom, bottom to top

The Gradle reactor structurally mirrors the Maven one (see settings.gradle.kts) — dependencies only flow upward on this page. A module is safe to convert once every layer below it is done, which is exactly the order the migration pipeline follows.

Converted
In progress
Still Maven-only

Build-logic (not a reactor module — an included build every module applies)

axonframework.java-conventions
axonframework.published-conventions
axonframework.internal-conventions
▲ applied by every module below ▲

Layer 0 — leaf modules (nothing else in the reactor depends on them being absent)

test-logging
test
common — 61/144 files

Layer 1 — core domain

conversion
messaging
eventsourcing
modelling
migration
update

Layer 2 — extensions sub-reactor (its own nested module set)

extensions:kotlin
extensions:metrics
extensions:reactor
extensions:spring

Layer 3 — aggregation & verification (depends on everything below existing)

integrationtests
docs/_samples
build/coverage-report

Layer 4 — publication (last, once every coordinate below is final)

axon-framework-bom
build/parent (axon-parent, POM-only)
root axon (POM-only)

test-logging is the one deliberate exception to "depends on the layer below": every module's shared conventions add it as a test dependency, so it's excluded from depending on itself rather than moved to a different layer — see the build-logic conventions page.