US 11,880,419 B2
Systems and methods for implementing soft locking in a stateless microservice environment
Mark Libby, Groton, MA (US); Ronald M. Parker, Boxborough, MA (US); and Haibo Qian, Frisco, TX (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, UT (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Oct. 9, 2020, as Appl. No. 17/066,547.
Claims priority of provisional application 62/912,936, filed on Oct. 9, 2019.
Prior Publication US 2021/0109978 A1, Apr. 15, 2021
Int. Cl. G06F 16/953 (2019.01); G06F 16/2455 (2019.01)
CPC G06F 16/953 (2019.01) [G06F 16/2455 (2019.01)] 20 Claims
OG exemplary drawing
1. A method for performing a transaction implemented by a network function utilizing cloud native architecture based on stateless microservices, the network function being stateful through successive transactions, the stateless microservices being independently deployable, the method comprising:
receiving a first external trigger at the network function to perform a first transaction, the first transaction utilizing state data that includes information from previous transactions to affect processing of the first transaction, wherein the network function assigns a microservice instance to perform the first transaction, and wherein the microservice instance does not include the state data from the previous transactions;
querying an external database for the state data to be used by the microservice instance while performing the first transaction, the external database being external to the microservice instance;
retrieving the state data from the external database;
taking a lock on the state data in the external database such that the state data is unavailable except by the microservice instance;
invoking, by the network function, a durable timer indicating a duration of time in which the state data is locked;
using the state data, performing the first transaction at the microservice instance; and
clearing the lock on the state data in the external database based on performing the transaction and further based on an expiration of the durable timer invoked by the network function.