Skip to content
Javers docs0.2

Repository map

Latest stable Based on Javers release 0.2.1

bluetape4k-javers owns JaVers audit and history semantics. It does not replace the application repository that owns current business state. Keeping those responsibilities separate makes recovery questions answerable.

The following architecture is loaded directly from the immutable 0.2.1 release commit. It stays separate from the current README diagram because the Snapshot line has continued to evolve. Select the preview to open the SVG at the same release commit.

bluetape4k-javers 0.2.1 architecture

Release moduleResponsibilityNot its job
javers-corecodecs, JaVers extensions, cache-backed CDO repositoriesdurable business storage
javers-dddJaVers-oriented aggregate save/commit/publish sequenceecosystem-wide DDD contracts
javers-exposedJaVers snapshots and commit metadata in SQLapplication CRUD repositories
javers-persistence-redisLettuce or Redisson snapshot storagea Kafka-style replay log
javers-persistence-kafkapublish encoded snapshots to Kafkasnapshot queries or relational history
examples/javers-exposed-dddexecutable command/audit/event/projection lessona production transaction/outbox design

The application flow normally starts in its own domain repository. AggregateRepository.save() calls the subclass persist, then javers.commit, then eventPublisher.publishAll. The invocation order is fixed, but delivery timing and failure propagation depend on the publisher adapter. The exact order is implemented in AggregateRepository.kt.

For repository fundamentals such as JDBC transaction ownership, use the published bluetape4k-exposed manual. For Redis, Kafka, and Testcontainers foundations, use the bluetape4k-projects manual. This manual covers how those facilities participate in a JaVers audit path.

Release 0.2.1 has no composite CdoSnapshotRepository that automatically writes to Exposed and Redis or couples Kafka with a query repository. Composition is an application responsibility. Read repository composition before adding a second destination.