1 About MicroTx Distributed Transactions
Oracle Transaction Manager for Microservices - Distributed Transactions (MicroTx Distributed Transactions) enables enterprise users to adopt and increase use of microservices architecture for mission-critical applications by providing capabilities that make it easier to develop, deploy, and maintain data consistency in such applications.
Although microservice architecture provides many benefits, it is difficult to ensure data consistency for requests that span multiple services. Currently, service developers can include compensating transactions in their application code or use Saga for eventual consistency. However, these solutions are error prone and require advanced coding skills. It is also difficult to troubleshoot and manage transactions that span polyglot microservices. The complexity increases further when each microservice uses an individual database to manage their data.
As organizations rush to adopt microservices architecture, they often run into problems associated with data consistency as each microservice typically has its own database. In monolithic applications, local transactions were enough as there were no other sources of data that needed to be consistent with the database. An application would start a local transaction, perform some updates, and then commit the local transaction to ensure the application moved from one consistent state to another. Once the application’s state is spread across multiple sources of data, some factors need to be considered. What happens if updates succeed in one microservice, but it fails in another microservice as part of the same request? One solution is to use a distributed transaction that spans the sources of data used by the microservices involved in a request. Oracle Transaction Manager for Microservices provides a transaction coordination microservice and libraries to maintain consistency in the state of microservices participating in a transaction.
MicroTx Distributed Transactions ensures consistency of transactions across distributed microservices applications. It performs the following actions:
- Manages transactions and provides consistency across polyglot microservices.
- Supports several distributed transaction protocols, such as XA, Saga based on Eclipse MicroProfile Long Running Actions (LRA) and Try-Confirm/Cancel (TCC). Based on your business requirements and the level of consistency that's required, you can select a suitable transaction protocol for your application.
- Addresses critical needs for enterprise customers to provide a highly-available, scalable, and secure solution.
- Integrates with powerful cutting-edge technologies, such as Jaeger, Kiali, Prometheus, and Grafana. It provides you with a variety of options for activities, such as data visualization, data monitoring, transaction tracing, which enables advanced and efficient troubleshooting and data management operations.
- Runs in a Kubernetes cluster or Docker Swarm environments along with other microservices in on-premises, cloud, and hybrid environments.
- Works with popular programming languages and application frameworks, such as Node.js and Java.
- Supports inclusion of Oracle Tuxedo services that are written in C, C++, and COBOL languages.
- Supports inclusion of Oracle Database resident services, written in PL/SQL, in a global XA transaction with other microservices.
Topics
- How MicroTx Distributed Transactions Works
To use MicroTx Distributed Transactions, install MicroTx Distributed Transactions and then integrate the MicroTx Distributed Transactions client libraries with your application code to manage transactions. - Components of MicroTx Distributed Transactions
MicroTx Distributed Transactions contains two components: the transaction coordinator and the MicroTx Distributed Transactions library. - About the Distributed Transaction Protocols
MicroTx Distributed Transactions supports the following distributed transaction protocols: - Limits
The following limits apply only to Transaction Manager for Microservices Free release and not to Transaction Manager for Microservices Enterprise Edition. - About Choosing a Transaction Protocol
Use the information provided to select a transaction protocol for your application based on your business requirements.