Modules
Spring DDD ships as focused Gradle modules under the group de.dwittkoetter.
Most applications need only one universal starter — spring-ddd-starter-jdbc or spring-ddd-starter-jpa — which bundles all the building-block modules together.
Individual modules are listed here for reference; select them directly only when you need fine-grained control over what is activated.
Add a module as a Gradle dependency using:
implementation("de.dwittkoetter:<artifact>:0.0.1-SNAPSHOT")
Core libraries
| Module | Kind | Purpose |
|---|---|---|
|
library |
Framework meta-annotations and DDD stereotypes ( |
|
library |
Message type annotations ( |
|
library |
JDBC implementations of the partition coordination substrate: ownership and membership stores, per-dialect SQL, and the coordination schema. All three JDBC starters — CQRS JSON, CQRS JPA, and event sourcing — depend on it, so an application with projections and no event store still runs the substrate. |
|
library |
Scalar type conversion: Jackson serialization and Spring type converters for wrapped value objects. |
|
library |
|
Event Sourcing
| Module | Kind | Purpose |
|---|---|---|
|
library |
Event-sourcing core: |
|
library |
JDBC implementations of |
|
library |
Test DSL for event-sourcing scenarios: given/when/then over aggregates without a running store. |
CQRS
| Module | Kind | Purpose |
|---|---|---|
|
library |
Command and query buses, projection engine, and in-memory projection support ( |
|
library |
Durable JDBC bookkeeping: projection metadata, high-water-mark, and read-model metadata tables. |
|
library |
|
|
library |
JPA |
Saga
| Module | Kind | Purpose |
|---|---|---|
|
library |
Process-manager / saga core: |
|
library |
JDBC implementations of |
Bridges
| Module | Kind | Purpose |
|---|---|---|
|
library |
Feeds committed events from the event store into the CQRS projection catch-up pipeline. |
|
library |
Routes domain events from the event store to saga event handlers via the ordered-inbound consumer. |
|
library |
Adapts the CQRS |
Spring Modulith
| Module | Kind | Purpose |
|---|---|---|
|
library |
Spring Modulith integration: persists durable event-publication metadata for after-commit handlers. |
Universal starters
These two starters are the recommended entry point for most applications. See Choosing your starters for guidance on which to pick.
| Module | Kind | Purpose |
|---|---|---|
|
starter |
Universal JDBC bundle — activates event sourcing, |
|
starter |
Universal JPA bundle — activates event sourcing, JPA-entity CQRS projections, sagas, bridges, and |
Framework starters
| Module | Kind | Purpose |
|---|---|---|
|
starter |
Activates the JDBC partition coordination substrate ( |
|
starter |
Activates event-sourcing JDBC infrastructure: event store, snapshot store, and schema initializers. |
|
starter |
Activates the |
|
starter |
Activates the JPA projection store and delivery runtime. |
|
starter |
Bare CQRS bus and in-memory projections — no persistence layer. This is the standalone command/query path for applications that do not use a relational store. It is intentionally omitted from Choosing your starters, which covers persistence-backed paths only. |
|
starter |
Activates saga persistence, the deadline poller, and inbound-checkpoint infrastructure. |
|
starter |
Activates the |
|
starter |
Activates the Spring Modulith event-publication metadata JDBC store for durable after-commit handlers. |
Bridge starters
| Module | Kind | Purpose |
|---|---|---|
|
starter |
Activates the CQRS bridge: routes committed events from the event store into the projection catch-up pipeline. |
|
starter |
Activates the Saga bridge: routes committed events from the event store to saga event handlers. |
|
starter |
Auto-configures the saga-to-CQRS command bridge; activates when a |
Test support
| Module | Kind | Purpose |
|---|---|---|
|
test |
Test starter that re-exports the event-sourcing test DSL as a single |
|
test |
Test support for relational stores: the |
|
test |
Test starter that re-exports |
Actuator starters
| Module | Kind | Purpose |
|---|---|---|
|
actuator starter |
Event-store metrics, health indicator, and per-aggregate management endpoint. |
|
actuator starter |
Projection metrics, health indicator, and projections management endpoint. |
|
actuator starter |
Saga metrics, health indicator, and sagas management endpoint. |
Internal
These modules are internal to the Spring DDD build. Do not declare them as application dependencies.
| Module | Kind | Purpose |
|---|---|---|
|
internal |
Internal end-to-end test harness. Not a user dependency. |
Choosing a starter
For most applications, the entry point is one of the two universal starters. See Choosing your starters for the authoritative how-to, including a decision guide.
The table below shows exactly which modules each universal starter aggregates, as declared in their build.gradle.kts files.
| Included module | spring-ddd-starter-jdbc |
spring-ddd-starter-jpa |
|---|---|---|
|
✓ |
✓ |
|
✓ |
✓ |
|
✓ |
✓ |
|
✓ |
— |
|
— |
✓ |
|
✓ |
✓ |
|
✓ |
✓ |
The JPA bundle pulls the durable JDBC bookkeeping layer (spring-ddd-cqrs-projection-jdbc) transitively through spring-ddd-starter-cqrs-jpa → spring-ddd-cqrs-jpa, which the @JpaProjection store depends on — it does not need the JSON read-model store (spring-ddd-starter-cqrs-jdbc).