Introduction
Systems integration is all about coordinating the interaction between multiple systems in order for them to interact as a larger whole. This interaction forms a distributed system, although people working on integrations tend not to think about what they are building in those terms. Part of the complexity of distributed systems is that they are typically written by different people at different times, using different technologies, doing things in parallel, and yet they need to coordinate on shared tasks. They also need to handle errors in a predictable fashion when that coordination breaks down. All of these factors make work on integrations very challenging, and very interesting.
A Transaction is an implementation concept that allows distributed stateful nodes in a system, such as databases and message brokers, to coordinate changes to their state. Updates to state are either committed when a unit of work has been completed successfully, or rolled back when an error occurs...