Oracle is pleased to announce the availability of Oracle Transaction Manager for Microservices Free. This new product provides distributed transaction coordinator services for a variety of transaction protocols. Using this product, microservices developers can easily ensure the consistency of data across their microservices, even in the presence of failures. The coordinator itself is a microservice and readily deployed into a service mesh framework such as Istio/Envoy with Kubernetes.
As application architecture moves from monoliths, through SOA, to today’s microservices, issues crop up that monoliths and some SOA based applications don’t need to worry about. One area in particular is around data consistency. In a monolithic application, typically all data is stored in a single database. Consistency across tables is managed by local transactions to ensure the data remains consistent, i.e., an update to two tables either both succeed or neither of them succeed. Moving to microservices where each microservice maintains its own database, local transactions are no longer sufficient to provide consistency. This is where distributed transactions become a requirement.
To help ensure data consistency across microservices, a distributed transaction is often used. Distributed transactions try to move a system from one consistent state to another consistent state. They are often utilized to handle the various failure scenarios that can occur in distributed systems, ideally without burdening the application developer with too much work. One of the earliest distributed transaction protocols is the XA two phase commit protocol defined by The Open Group. Using XA, applications can ensure that the updates to multiple data sources can be done while still adhering to the ACID guarantees of a transaction.
The initial release of the product is being offered for free and intended to allow developers to start leveraging distributed transactions in their microservice based applications. Support is provided for XA based distributed transactions, Sagas in the form of Eclipse MicroProfile Long Running Actions, and the Try-Confirm/Cancel transaction protocol. Microservice developers are free to choose the distributed transaction protocol best suited for their application based upon their application’s consistency requirements.
This initial free release provides support for microservices developed in:
with more languages and platforms to come.
Transaction Manager for Microservices consists of a microservice based transaction coordinator that can be deployed into a containerized environment such as Kubernetes or Docker Swarm. Provided as well is a set of language specific client libraries that provide APIs and CDI annotations to access the transaction coordinator’s services. These libraries also include request and response filters to automatically propagate transaction context between microservices and enlist called microservices in the transaction.
Using the supplied client libraries, applications can easily be extended to support their consistency requirements with a minimal amount of effort. In many cases with a few lines of code modified or added to an existing microservice it will be able to initiate or participate in a Transaction Manager for Microservices managed transaction. The included samples cover different use cases such as financial transactions requiring strong consistency, to making travel reservations with looser consistency requirements. Provided helm charts for Kubernetes, minikube, and Docker Swarm make deploying Transaction Manager for Microservices a simple task taking just minutes.
This initial release of Transaction Manager for Microservices Free is being made available to developers so they can learn how to use distributed transactions in their microservices. This free release has some limitations which may make it not suitable for some production use cases. An enterprise edition of the product is expected to be released shortly. To get started with this free release, visit https://www.oracle.com/database/transaction-manager-for-microservices/
I'm currently the Chief Architect for a family of transaction processing products at Oracle including Oracle Tuxedo product family, Oracle Blockchain Platform, and the new Oracle Transaction Manager for Microservices. My main areas of focus are on security, privacy, confidentiality, performance, and scalability. My job is to provide the technical strategy for these products to ensure they meet customer requirements.
Prior to being acquired by Oracle, I was Chief Architect for BEA Tuxedo at BEA Systems, Inc. While at BEA Systems, I was responsible for defining the technical strategy and direction for the Tuxedo product family. I developed the Tuxedo Control for WebLogic Workshop that greatly simplified the usage of Tuxedo services from Workshop based applications. I also received two patents for methods allowing design patterns in a UML modeling tool to control the generation of software artifacts.
During my more than 40 years of software architecture and development experience, I have worked on a wide range of software systems and technology. At Science Applications International I worked on microcoded plasma display systems and command, control, and communication systems for naval applications. As a senior software consultant at Digital Equipment Corporation, I was the New York Area Regional Tools Consultant and also helped develop a multi-language multi-threaded distributed object oriented runtime environment with concurrent garbage collection.