# javers/javers

JaVers - object auditing and diff framework for Java

Repository: https://github.com/javers/javers
Canonical: https://ross.abutalabs.com/products/javers
Homepage: http://javers.org
Language: Java
License: Apache-2.0
License Family: permissive
Topics: hacktoberfest
Last push: 2026-08-17T11:37:50+00:00

## Health v2 (maintenance only)
Score: 67/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 98, release rhythm 8, longevity 100
- inputs: {"age_days": 4649, "days_push": 16, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1572, forks 394 (observed 2026-08-28T04:05:05.525258+00:00)

## What it is
JaVers is a lightweight Java library for auditing changes in domain objects, providing an object diff engine and an audit log with commit metadata, author, and timestamps. It persists change history (snapshots) in SQL or NoSQL databases and offers a fluent query language (JQL) to reconstruct historical object states, with seamless Spring Boot and Spring Data integration.

## Use cases
- audit who changed a field and when in a Java application
- compare two versions of a complex object graph
- track changes to Spring Data repositories automatically
- reconstruct historical state of an entity at any point in time
- store data change history in MongoDB or SQL alongside domain data
- query audit trail by author, date, or changed property
- satisfy compliance requirements like GDPR or SOX for data changes

## When to choose
- you need a version-control-like audit trail for Java domain objects
- your stack is Spring Boot with SQL or MongoDB persistence
- you want deep object diffing of entities, value objects, and collections with minimal configuration
- you need historical snapshots and shadow views of your data

## When to avoid
- you need auditing outside the JVM/Java ecosystem
- you only need simple row-level database triggers or database-native audit features
- you require a ready-made audit UI without the commercial JaVers Pro offering
- your data model changes so frequently that persisted JSON snapshots become unmaintainable

## Facets
- artifact type: library
- maturity: stable
- function: serialization, logging, developer-tools
- domain: databases, developer-tools, backend
- platform: jvm
- tags: object-diff, audit-trail, data-versioning, spring-boot, jql, snapshots, ddd, data-engineering, spring

## Member repositories
- javers/javers (main) score 67

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:05.525258+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:58:11.080346+00:00, confidence not recorded.
  - readme: https://github.com/javers/javers (fetched 2026-08-28T04:05:05.525258+00:00, sha b8bb417c7bef)
  - homepage: http://javers.org (fetched 2026-08-29T11:28:18.673743+00:00, sha b6397bda5b81)
  - site_page: https://javers.org/features (fetched 2026-08-29T11:28:18.682936+00:00, sha 760eff8c3f77)
  - site_page: https://javers.org/documentation (fetched 2026-08-29T11:28:18.684934+00:00, sha 731d8122fa1d)
  - site_page: https://javers.org/documentation/getting-started (fetched 2026-08-29T11:28:18.686727+00:00, sha fbfacef3de9b)
  - site_page: https://javers.org/documentation/diff-examples (fetched 2026-08-29T11:28:18.688489+00:00, sha 654e105bf7a8)
  - site_page: https://javers.org/documentation/repository-examples (fetched 2026-08-29T11:28:18.690740+00:00, sha fcab7104ce67)
  - site_page: https://javers.org/documentation/jql-examples (fetched 2026-08-29T11:28:18.692891+00:00, sha ffb8d9d8ce5e)
  - site_page: https://javers.org/documentation/domain-configuration (fetched 2026-08-29T11:28:18.696008+00:00, sha 8eeba8d53bc8)
  - site_page: https://javers.org/documentation/repository-configuration (fetched 2026-08-29T11:28:18.698447+00:00, sha a4b3c1d94278)
- Data as of 2026-08-30T08:39:29.467469+00:00.
