Durable Function Specification
Durable Executions
A Durable Execution is an programming abstraction with an interruption agnostic definition resulting in an interruption transparent execution. The defining characteristic of Durable Executions is that they are both interruption agnostic as well as interruption transparent-simply being one or the other is not sufficient.
Interruption
The term interruption refers to a voluntary (ystem triggered) or involuntary (environment triggered) termination in mid execution. A voluntay termination is also refered to as an interrupt, an involuntary termination is also refered to as a failure.
Interruption-agnostic Definition
The term interruption agnostic definition refers to a definition (program, code) that does not acknowledge the possibility of interruptions. In other words, the definition does not contain interruption detection and/or interruption mitigation.
Interruption-transparent Execution
The term interruption tolerant execution refers to an execution that does not externalize (make observable) the presence of interruptions. In other words, an execution that experiences an interruption and subsequently recovers is equivalent to some execution that does not experience an interruption.
Interruption tolerance can be defined formally as:
(⟨p⟩, →(+interruption)) ≃ (⟨p⟩, →(-interruption))
In words. A program p
is interruption tolerant if, starting from an initial configuration ⟨p⟩
, an execution in the presence of interruptions (⟨p⟩, →(+interruption))
is equivalent to some execution in the absence of interruptions (⟨p⟩, →(-interruption))
This document is a work in progress. Please check back later for updates.