Skip to content
Javers docs0.2

Javers BOM

Latest stable Based on Javers release 0.2.1

bluetape4k-javers-bom aligns the five published library artifacts from this repository. Most applications should import one bluetape4k-dependencies ecosystem version instead; use this narrower BOM only when the application deliberately manages compatibility with the rest of bluetape4k.

This diagram is loaded directly from the immutable 0.2.1 release commit and shows the BOM structure documented here. Select the preview to open the SVG at the same release commit.

bluetape4k-javers 0.2.1 BOM structure

dependencies {
implementation(platform("io.github.bluetape4k.javers:bluetape4k-javers-bom:0.2.1"))
implementation("io.github.bluetape4k.javers:javers-core")
implementation("io.github.bluetape4k.javers:javers-exposed")
}

Choose the BOM when a standalone build consumes two or more Javers modules and cannot import io.github.bluetape4k:bluetape4k-dependencies. The platform contains dependency constraints, not runtime code. Its release build derives constraints from every subproject except the BOM itself; the exact rule is pinned in bom/build.gradle.kts.

The published modules aligned by the BOM are javers-core, javers-ddd, javers-exposed, javers-persistence-redis, and javers-persistence-kafka. The release source also generates a constraint for examples/javers-exposed-ddd, but that example is not published to Maven; use it as runnable source, not as a dependency coordinate. The BOM does not select a persistence adapter or add optional Lettuce, Redisson, Spring Kafka, or NATS runtime dependencies.

The repository BOM also does not coordinate other bluetape4k repositories. If the service combines Projects, Exposed, Javers, Redis, and Kafka integrations, prefer the ecosystem platform shown in getting started.

A platform import can prevent accidental module-version drift, but it cannot prove that a manually selected Exposed, Kafka, Redis, or bluetape4k version is compatible. Dependency locking and build scans should confirm the resolved graph. Upgrade the BOM as one change, run every selected module’s integration tests, and inspect optional-client resolution before deployment.

Terminal window
./gradlew :bluetape4k-javers-bom:dependencies
./gradlew :javers-core:test :javers-exposed:test

Add the Redis or Kafka module test only when that adapter is part of the application. The testing guide describes the storage-specific checks.

  • It is not a replacement for bluetape4k-dependencies.
  • It does not add libraries to a configuration by itself.
  • It does not make Exposed, Redis, and Kafka interchangeable.
  • It does not provide schema migration, topic creation, or Redis policy.

Continue with the repository map before choosing modules.