Author: Karsten Silz
Dec 7, 2021   |  updated Jun 1, 2022 4 min read


JAX 2022: "How to Show Version Histories in Java Application Front-Ends?" (German talk)

W-JAX logo

Table Of Contents



JAX Hybrid 2022 is a hybrid conference in Mainz, Germany. It ran from May 2 through May 6, 2022.


My talk was on May 3, 2022, from 16:45-17:45.



Anwendungen wie Dropbox und OneDrive speichern alte Versionen von Dateien. Dieser Versionsverlauf zeigt uns dann, wer was wann wie geändert hat. Was wäre, wenn die Front-Ends unserer Java-Anwendungen auch solche Versionsverläufe hätten? Uns sogar zwei Versionen vergleichen lassen würden? Unsere Anwender würden das toll finden, weil sie so wichtige Änderungen selbst finden könnten. Und zufriedene Anwender wenden sich seltener an den Kundendienst!

Wie bekommen wir nun Versionsverläufe in unsere Java-Anwendungen? Wir müssen dafür Versionen im Back-End speichern und im Front-End anzeigen. Dieser Vortrag vergleicht vier Möglichkeiten zum Speichern von Versionen: Do-It-Yourself, die Open-Source-Projekte Hibernate Envers und JaVers, und kommerzielle Produkte wie Datomic oder Crux.

Im zweiten Teil des Vortrags werde ich meine Erfahrungen mit JaVers in einer Spring-Boot-Anwendung diskutieren. Diese Anwendung hat ein Web-Front-End (Angular) und native Apps für iOS und Android (Flutter). Mein Ansatz war die Versionierung der DTO für das Front-End. Dadurch konnte ich die Komplexität der Speicherung und Anzeige der Versionen dramatisch verringern. Abschließend werde ich typische Probleme mit JaVers und deren Lösung hervorheben.


Applications like Dropbox and OneDrive keep a version history for files. That history shows who changed what when how. What if Java application front-ends had such version histories? Even let us compare any two versions? Users would love it because they could find important and otherwise invisible changes themselves. And happy users contact our support less often!

So, how to add version histories to Java applications? We need to store versions in the back-end first and then show them in the front-end. This talk will compare four ways to store versions: Do-It-Yourself, the open-source solutions Hibernate Envers and JaVers, and commercial platforms like Datomic or Crux.

Next, I will discuss my experiences with using JaVers in a Spring Boot application for my SaaS start-up. I dramatically reduced complexity here by versioning the Data Transfer Objects that I had already built the front-end anyway. And my application can show and compare any versions. Finally, I will highlight typical issues with JaVers and how to solve them.

Who Made Me the Expert?!

I’ve been a Java developer for 23 years and still write code nearly every day. I’m a Java news reporter for InfoQ. So I know what’s going on in the Java world. In the QCon London 2022 & QCon Plus Spring 2022 program committees, I helped organize the Java and front-end tracks. So I know what’s going on in the industry.

I’m not selling books or training courses, and I’m not a developer advocate. I do donate US$10/month to the JaVers project which I discuss in this talk. I use 6 criteria for my evaluation. You may use my criteria or pick your own or weigh my criteria differently than I do - you decide!

This month in "How to Build Java Applications Today":
There's no issue this month, as I switched my newsletter from monthly to quarterly. Why? Because I can't spend as much time on this newsletter anymore.

See All Issues & Subscribe


Here are the slides as PDF. They are 10.6 MB:

You can also get the slides in their original Keynote format. “Keynote” is Apple’s presentation application. Why would you do that? My slides have less text than the PDF version, so you can see what I cut. I also animated the slides, so they are more pleasant to watch. Or maybe you want to peek under the hood to see how I achieved specific effects. These slides are 6.8 MB in size.


The link to the video will probably be available here after the talk. It may be behind a paywall.

Rate My Talk

If you’ve seen my talk, then please rate it!

Here’s what people said. Please note that you can view the second page with the arrow button in the bottom left.

Additional Information

Here are the four candidates for creating versions:

Getting Started with JaVers

So you want to add an audit log to your application with JaVers yourself? Wonderful! Please check out my “Getting Started” guide below.

Part 15 of 25 in the Conference Talks series.
« Devoxx UK 2022: "Flutter for Java Developers: Mobile, Web & Desktop with One Codebase?" | JavaLand 2022: "How to Show Version Histories in Java Application Front-Ends?" » | Start: Java Forum Stuttgart 2019: "When Using the Application Generator Jhipster Is Worth It - and When Not"

This month in "How to Build Java Applications Today":
There's no issue this month, as I switched my newsletter from monthly to quarterly. Why? Because I can't spend as much time on this newsletter anymore.

Read my newsletter

comments powered by Disqus