Author: Karsten Silz
Nov 13, 2021   |  updated Mar 16, 2021 5 min read


JavaLand 2022: "How to Show Version Histories in Java Application Front-Ends?"

JavaLand logo

Table Of Contents


JavaLand 2022 is a three-day on-site conference. It will run from March 15 through March 17, 2022. Talks are scheduled for the first two days; I assume that the third day will be a training day.

It’s Germany’s biggest Java conference and had 2.100 visitors in 2019. The German Oracle User Group, the Association of the German Java User Groups, and the German publisher Heise Medien organize this conference.

I spoke at JavaLand 2021 about “How Should Java Developers Build Front-Ends for Web, Mobile & Desktop Today?”.

You can buy a ticket here:


My talk will be on Wednesday, March 16, 2022, at 15:00 local time. The talks don’t have a URL of their own. Instead, they are overlay windows. So please use this link to search for my name and then click on the “magnifier with plus” icon to see the abstract.



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 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 program committee, I work on the Java and front-end tracks. 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 share industry analysis and my project experiences to give you options for your next project. I use 6 criteria for my evaluation. You may use my criteria or pick your own or weigh my criteria differently than I do. But you need to apply your criteria in your own environment. And in the end, you decide!


Here are the slides as PDF. They are 4.3 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!

This is the feedback I got on my talk. Please note that you can view the second page with the arrow button in the bottom left.

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

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 12 of 25 in the Conference Talks series.
« JAX 2022: "Flutter for Java Developers: Web, Mobile & Desktop Front-Ends from 1 Code Base?" (German Talk) | Devoxx UK 2021: "How Should Java Developers Build Front-Ends for Web, Mobile & Desktop Today?" » | 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