Presenting MicroProfile Long Running Actions at Voxxed Days Luxembourg 2019

Photo of Rudy De Busscher by Rudy De Busscher

Voxxed Days Luxembourg were organized for the fourth time in the south of the country in the village Mondorf-les-Bains, near the borders of France and Germany. If you want to visit the region, you can enjoy the nice views and vineyards. The Moselle wine is produced here.


The theme of the conference this year were two events which happened 50 years ago in 1969: the landing on the moon and Woodstock festival. You could find references to both events in many graphics throughout the conference venue.




The conference program covered a wide variety of topics. Ranging from server-side Java, including the latest trends regarding native Java with GraalVM, several Java frameworks, JavaScript and front end development, and cloud topics. The conference also covered big data and AI with a session discussing the social implications of Bias in Machine Learning.


It's an ideal conference if you want to broaden your horizons and get an idea of what is going on outside of your own knowledge area.


MicroProfile Long Running Actions (LRA)

I had the opportunity to present the MicroProfile Long Running Actions (LRA) project here. The LRA project aims to bring you transactions in a MicroService architecture. Due to the CAP theorem, we aren't able to have Consistency, Availability and Partition Availability in a distributed environment. That is the reason why we need to introduce the concept of eventual consistency so that we can keep the other two.


We also can't name them transactions anymore and we need to introduce a few new concepts like a compensatable action. The MicroProfile Long Running Action is based on top of the concepts of SAGAs. It defines that a business process can be comprised of several steps. The action of each step can store already the data to a persistence store, like a database. When the process needs to be cancelled, each individual step can perform his compensating action, like removing the data from the database again.

The MicroProfile LRA implementations will maintain the book-keeping for you. It will start the LRA, keep track of all the business steps which are part of the LRA, they are called participants. And the implementation will also call the methods marked with Complete or Compensate in the case an LRA is closed successfully or due to a cancel request.


The project is not final yet, but the most important concepts are defined and there are two implementations created, including the one for Payara Platform which was used to demo several of the LRA concepts.


You can find more information within the Github Project

and the slides of the presentations can be found on slideshare.