There are two big difference between JaVers and Envers:

  1. Envers is the Hibernate plugin. It has good integration with Hibernate but you can use it only with traditional SQL databases. If you choosed NoSQL database or SQL but with other persistence framework like JOOQ — Envers is not an option.

    On the contrary, JaVers can be used with any kind of database and any kind of persistence framework. For now, JaVers comes with repository implementations for MongoDB and popular SQL databases. Other databases (like Cassandra, Elastic) might be added in the future.

  2. Envers’ audit data model is a copy of application’s data model. As the doc says: For each audited entity, an audit table is created. By default, the audit table name is created by adding a _AUD suffix to the original name. It can be advantage, you have audit data close to your live data. Envers’ tables look familiar. It’s easy to query them with SQL.

    JaVers uses its own Snapshot model for audit data. Snapshots are decoupled from live data, JaVers saves them to the single table (jv_snapshots) as JSON documents with unified structure. Advantages? You can choose where to store audit data. By default JaVers uses the same database as application does, but you can point another database. For example, SQL for application and MongoDB for JaVers or centralized JaVers database shared for all applications in your company).

Read this blogpost with full JaVers vs Envers comparison: https://javers.org/blog/2017/12/javers-vs-envers-comparision.html

Answer from Bartek Walacik on Stack Overflow
Top answer
1 of 2
22

There are two big difference between JaVers and Envers:

  1. Envers is the Hibernate plugin. It has good integration with Hibernate but you can use it only with traditional SQL databases. If you choosed NoSQL database or SQL but with other persistence framework like JOOQ — Envers is not an option.

    On the contrary, JaVers can be used with any kind of database and any kind of persistence framework. For now, JaVers comes with repository implementations for MongoDB and popular SQL databases. Other databases (like Cassandra, Elastic) might be added in the future.

  2. Envers’ audit data model is a copy of application’s data model. As the doc says: For each audited entity, an audit table is created. By default, the audit table name is created by adding a _AUD suffix to the original name. It can be advantage, you have audit data close to your live data. Envers’ tables look familiar. It’s easy to query them with SQL.

    JaVers uses its own Snapshot model for audit data. Snapshots are decoupled from live data, JaVers saves them to the single table (jv_snapshots) as JSON documents with unified structure. Advantages? You can choose where to store audit data. By default JaVers uses the same database as application does, but you can point another database. For example, SQL for application and MongoDB for JaVers or centralized JaVers database shared for all applications in your company).

Read this blogpost with full JaVers vs Envers comparison: https://javers.org/blog/2017/12/javers-vs-envers-comparision.html

2 of 2
-3

Enver is like git for a database.

I do not know Javers but a complete Envers databinding has this advantages:

  1. A table is created in the database called REVINFO having a timestamp and a PK.
  2. To every entity that is audited, one shadow-copy is created. Theese shadow-copies have every field nullable and the PK is not a PK. Theese shadow-copies have a new field, the reference to the table REVINFO.

This gives Enver the possibility to record changes that has been made in the past in this shadow-copies. You can move that shadow-tables into an different database.

🌐
GitHub
github.com › javers › javers-vs-envers
GitHub - javers/javers-vs-envers
This is a toy project created for this article javers.org/blog/2017/12/javers-vs-envers-comparision
Starred by 2 users
Forked by 3 users
Languages: Groovy 100.0% | Groovy 100.0%
🌐
Javers
javers.org › blog › 2017 › 12 › javers-vs-envers-comparison.html
JaVers vs Envers Comparison — JaVers Blog
December 29, 2017 - If you chose NoSQL database or SQL but with another persistence framework (for example JOOQ) — Envers is not an option. On the contrary, JaVers can be used with any kind of database and any kind of persistence framework.
🌐
Reddit
reddit.com › r/java › javers vs envers comparision by @javers_org
r/java on Reddit: Javers Vs Envers Comparision by @javers_org
September 8, 2022 - javers.org Open · Archived post. New comments cannot be posted and votes cannot be cast. Share · Top 1% Rank by size · Reddit · reReddit: Top posts of December 30, 2017 · Reddit · reReddit: Top posts of December 2017 ·
🌐
Reddit
reddit.com › r/programming › javers vs envers
r/programming on Reddit: Javers vs Envers
December 31, 2017 - Javers Vs Envers Comparision by @javers_org · r/java • ·
🌐
Blogger
massiveprogramming.blogspot.com › 2018 › 10 › javers-vs-envers-comparision-javers-blog.html
All About Programming: Javers Vs Envers Comparision — JaVers Blog
In the Java world, there are two tools for data auditing: Envers and JaVers. Envers is here for a long time and it's considered mainstream. JaVers offers the fresh approach and technology independence.
Find elsewhere
🌐
GitHub
github.com › javers › javers.github.io › blob › master › _posts › 2017-12-29-javers-vs-envers-comparision.md
javers.github.io/_posts/2017-12-29-javers-vs-envers-comparision.md at master · javers/javers.github.io
December 29, 2017 - If you chose NoSQL database or SQL but with another persistence framework (for example JOOQ) — Envers is not an option. On the contrary, JaVers can be used with any kind of database and any kind of persistence framework.
Author: javers
🌐
Reddit
reddit.com › r/programming › object auditing and diff framework for java
r/programming on Reddit: Object auditing and diff framework for Java
July 1, 2017 - Service B does another business logic and passes object to Repository. Repository also transforms given data and stores it in db. With JaVers you can create snapshot on every layer: Service A, Service B and Repository.
🌐
Ippon
blog.ippon.tech › audit-your-data-with-javers
Audit your data with JaVers - Ippon Blog
January 29, 2024 - Envers is a core Hibernate module. It provides an easy auditing solution when using Hibernate or JPA. Envers is not an option if you are using a NoSQL database. JaVers is a lightweight Java library for auditing changes in your data.
🌐
GitHub
github.com › javers › javers-vs-envers › tree › master
javers-vs-envers/ at master · javers/javers-vs-envers
This is a toy project created for this article javers.org/blog/2017/12/javers-vs-envers-comparision
Author: javers
🌐
GitHub
github.com › javers › javers-vs-envers › actions
Actions · javers/javers-vs-envers
Contribute to javers/javers-vs-envers development by creating an account on GitHub.
Author: javers
🌐
Javers
javers.org › blog
JaVers Blog — JaVers Blog
July 5, 2017 - The Future of JaVers is Pro Audit Explorer UI, Professional Support, Multi-Tenancy, Data Retention & GDPR Compliance Join the waitlist and lock in a 40% lifetime discount. Join the Waitlist → ... In the Java world, there are two tools for data auditing: Envers and JaVers.
🌐
Javers
javers.org › documentation › getting-started
Getting started — JaVers Documentation
It provides a detailed technical breakdown of the object-oriented approach used by JaVers versus the table-oriented model of Envers, highlighting the benefits of technology independence.
🌐
Full Stack User
fullstackuser.com › qs › 595659 › javers-what-are-advantages-of-using-javers-instead-of-envers
[Solved] Spring javers what are advantages of using javers instead of envers? - Full Stack User
envers is the hibernate plugin. ... jooq — envers is not an option. on the contrary, javers can be used with any kind of database and any kind of persistence framework....