Author: Karsten Silz
May 31, 2021   |  updated Nov 12, 2021 5 min read


W-JAX Munich 2021: "How to Show Version Histories in Java Application Front-Ends?"

W-JAX logo

Table Of Contents



W-JAX Munich is a hybrid conference for Java, architecture and software innovation, taking place November 8-12, 2021. Most talks are in German. Here is the full schedule.

My talk was on Tuesday, November 9, 2021, from 17:00-18:00 EST.


I’m excited to give a session at W-JAX Munich: “How to Show Version Histories in Java Application Front-Ends?” (“Wie Datenversionen in Frontends von Java-Anwendungen zeigen?” in German). I’ll compare four ways to store versions and discuss my project experiences with the open-source library JaVers.

I put an application that used JaVers into production in May 2021. I gave earlier versions of this talk (it just discussed JaVers) to the London Java Community.

Abstract (German)

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 Frontends unserer Java-Anwendungen auch solche Versionsverläufe hätten? Uns sogar zwei Versionen vergleichen lassen würden? Unsere Anwender fänden das toll, 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 Backend speichern und im Frontend 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-Frontend ( Angular) und native Apps für iOS und Android ( Flutter). Mein Ansatz war die Versionierung der DTO für das Frontend. 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.

Abstract (English)

Applications like Dropbox and OneDrive keep a version history for files. That history shows who changed what when how. Now, 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 support less often!

So, how to add version histories to Java applications? We need to store versions in the back-end and 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 commerciale platforms like Datomic or Crux.

Next, I will discuss my experiences with JaVers in a Spring Boot application. It has an Angular web front-end and native apps for iOS and Android ( Flutter). I versioned the Data Transfer Objects for the front-end. This dramatatically reduced the complexity of storing and showing the changes. Finally, I will highlight typical issues with JaVers and how to solve them.

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.

Looking For Project in October 2022

And now for some shameless self-promotion: I’m looking to join a project in October 2022, in Milton Keynes, London, or remote. I’ll work as a contractor or fixed-term employee but don’t take permanent positions. Interested? Then check out my resume & work samples!

Check Out My Newsletter

My monthly newsletter contains the “Java Full-Stack Index" where I recommend technologies for five crucial areas of Java applications. My recommendations are based on popularity, industry analysis, and my 22 years of Java experience. For popularity, I analyze Google searches, online training students, questions at Stack Overflow, and job ads from 63 countries. This systematic approach reveals interesting insights and helps me predict what technologies will be popular a year from now.

Read my monthly Java newsletter
What will be in Java 21, IntelliJ will look like Visual Studio Code which doesn't replace IntelliJ, all Java frameworks have major releases, and surge of React & React Native in job ad mentions over.

See All Issues & Subscribe


Here are the slides as PDF. They are 7.7 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 10.9 MB in size.


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

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 8 of 22 in the Conference Talks series.
« IT-Tage 365 2021 June: "Pick Technologies & Tools Faster by Coding with JHipster" | W-JAX Munich 2021: "Pick Technologies & Tools Faster with JHipster" » | 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":
What will be in Java 21, IntelliJ will look like Visual Studio Code which doesn't replace IntelliJ, all Java frameworks have major releases, and surge of React & React Native in job ad mentions over.

Read my newsletter

comments powered by Disqus