There has been a lot of hype around microservices. They offer many advantages for implementing DevOps best practices and having autonomous multidisciplinary teams work in parallel.
Evolving from a monolith to microservices is not a smooth process... There are many challenges. One of them, and not the least, is data consistency. One of the basic principles is that each service has its own database. When a business transaction invokes several services, we can no longer rely on the good old local ACID transactions. As for distributed ACID/2PC transactions, forget about them, they have long since been consigned to the dustbin of bad practices!
Once this is established, what can be done concretely? How can we address this issue?
In this presentation, we will see how to proceed with two approaches: SAGA and LRA (Long Running Action). A concrete example based on MicroProfile and the Eventuate Tram framework will allow you to understand them and to choose the right option for your next microservices project.