Achieving atomicity in a chain of microservices
AssigneeInternational Business Machines Corporation
InventorsShashidhar Bomma, Akash V. Gunjal, Neeraj Kumar Kashyap, Sudheesh S. Kairali
Life of this patent
Estimating the term…
Abstract
An approach is provided in which a microservice fabric controller initiates a call flow that includes a set of transactions through a microservices chain that includes a set of microservices. The microservice fabric controller detects a transaction failure at one of the microservices that is positioned in the microservices chain subsequent to at least one successful microservice. In turn, the microservice fabric controller retries the transaction on the failed microservice without disrupting the previously successful microservice.
Claims17
A method implemented by an information handling system that includes a memory and a processor, the method comprising:
- initiating, by a microservice fabric controller, a call flow comprising a plurality of transactions through a microservices chain comprising a plurality of microservices;
- detecting, by the microservice fabric controller, a transaction failure of a selected one of the plurality of transactions at a selected one of the plurality of microservices, wherein the selected microservice is positioned in the microservices chain subsequent to at least one successful microservice;
- determining whether to perform a retry based on a set of historical data that indicates a retry success rate of the selected microservice;
- in response to determining to perform the retry based on the retry success rate, retrying, by the microservice fabric controller, the selected transaction on the selected microservice without disrupting the at least one successful microservice;
- and
- in response to determining not to perform the retry based on the retry success rate, performing an undo transaction on each of the at least one successful microservices in the microservices chain to undo at least one state in each of the at least one successful microservices.
An information handling system comprising:
- one or more processors;
- a memory coupled to at least one of the processors;
- a set of computer program instructions stored in the memory and executed by at least one of the processors in order to perform actions of:
- initiating, by a microservice fabric controller, a call flow comprising a plurality of transactions through a microservices chain comprising a plurality of microservices;
- detecting, by the microservice fabric controller, a transaction failure of a selected one of the plurality of transactions at a selected one of the plurality of microservices, wherein the selected microservice is positioned in the microservices chain subsequent to at least one successful microservice;
- determining whether to perform a retry based on a set of historical data that indicates a retry success rate of the selected microservice;
- in response to determining to perform the retry based on the retry success rate, retrying, by the microservice fabric controller, the selected transaction on the selected microservice without disrupting the at least one successful microservice;
- and
- in response to determining not to perform the retry based on the retry success rate, performing an undo transaction on each of the at least one successful microservices in the microservices chain to undo at least one state in each of the at least one successful microservices.
A computer program product stored in a computer readable storage medium, comprising computer program code that, when executed by an information handling system, causes the information handling system to perform actions comprising:
- initiating, by a microservice fabric controller, a call flow comprising a plurality of transactions through a microservices chain comprising a plurality of microservices;
- detecting, by the microservice fabric controller, a transaction failure of a selected one of the plurality of transactions at a selected one of the plurality of microservices, wherein the selected microservice is positioned in the microservices chain subsequent to at least one successful microservice;
- determining whether to perform a retry based on a set of historical data that indicates a retry success rate of the selected microservice;
- in response to determining to perform the retry based on the retry success rate, retrying, by the microservice fabric controller, the selected transaction on the selected microservice without disrupting the at least one successful microservice;
- and
- in response to determining not to perform the retry based on the retry success rate, performing an undo transaction on each of the at least one successful microservices in the microservices chain to undo at least one state in each of the at least one successful microservices.
Dependencies are inferred from the claim text.