1.2 Components of MicroTx Distributed Transactions

MicroTx Distributed Transactions contains two components: the transaction coordinator and the MicroTx Distributed Transactions library.

MicroTx Distributed Transactions, a containerized microservice, runs along with your application microservices. The following figure shows how the components of MicroTx Distributed Transactions interact with your application microservices.

Components of MicroTx Distributed Transactions

Transaction Coordinator Server

The transaction coordinator manages transactions amongst the participant services.

MicroTx Distributed Transactions supports internal memory, Oracle Database, and etcd as a data store for persistence of transaction state.

MicroTx Distributed Transactions library

Application microservices provide the business logic and demarcate transaction boundaries. These services participate in a distributed transaction. They use MicroTx Distributed Transactions APIs to manage their distributed transactions.

Application developers use different parts of the MicroTx Distributed Transactions client library depending on the following factors:
  • The development framework of the microservice, such as Helidon or Node.js.
  • The selected transaction protocol, such as XA, Saga, or TCC.
  • Whether the application initiates a transaction or participates in the transaction.
    • Transaction initiator service - These applications start and end a transaction. In the preceding figure, Microservice 1 is the transaction initiator service and it sends a request to MicroTx Distributed Transactions to begin the transaction.
    • Transaction participant service - These applications only join the transaction. They do not initiate the transaction. In the preceding figure, Microservice 2 and Microservice 3 are the transaction participant services that are involved in the transaction.