US 12,379,958 B2
Protocol exception handling external to deterministic code
Gueorgui Bonov Chkodrov, Redmond, WA (US); Dan Alexandru Nicolescu, Bellevue, WA (US); Khoi Hong, Seattle, WA (US); Anitta Maria Miller, Bellevue, WA (US); Jose Wilson Morris, Bothell, WA (US); Juan Miguel Paredes, Redmond, WA (US); and Justin Matthew Powell, Seattle, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Jan. 26, 2022, as Appl. No. 17/585,368.
Prior Publication US 2023/0236875 A1, Jul. 27, 2023
Int. Cl. G06F 9/46 (2006.01); G06F 9/48 (2006.01)
CPC G06F 9/4843 (2013.01) [G06F 2209/481 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computing system comprising:
one or more processors; and
one or more computer-readable media having thereon computer-executable instructions that are executable by the one or more processors to cause the computing system to:
prior to execution of deterministic code, identify presence or absence of a prior execution state object associated with the deterministic code;
in response to identifying the presence of the prior execution state object associated with the deterministic code, resume execution of the deterministic code from a resume state that the prior execution state object represents and update the prior execution state object to be a current execution state object;
in response to identifying the absence of the prior execution state object associated with the deterministic code, create the current execution state object, wherein creation of the current execution state object triggers execution of the deterministic code;
update the current execution state object associated with the deterministic code as the execution of the deterministic code proceeds;
detect a protocol exception, wherein the protocol exception is determined to have been caused by the deterministic code communicating using a protocol with an external component, and wherein the protocol exception is one that is included in a group of protocol exceptions comprising: a recoverable protocol exception occurring due to a transient network issue and a non-recoverable protocol exception occurring due to failure to authenticate stemming from attempted use of an invalid credential;
attempt to handle the protocol exception; and
in response to determining that the protocol exception has not been successfully handled, stop the execution of the deterministic code such that the current execution state object includes execution state of the deterministic code up to the stop, and such that the execution state of the deterministic code up to the stop is reusable to later retry execution of the deterministic code,
wherein:
the current execution state object comprises data retrieved from the external component, and
an outcome from the execution of the deterministic code does not depend on an identified number of times or when the deterministic code is executed.