Skip to main content

Durable Function Specification

tip

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, defined

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.