Skip to main content

Durable Function Specification

Recoverable function executions

Durability is a property of a function execution that allows it to be resumed after an interruption.

Durable Executions

A Durable Execution is a 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 (system triggered) or involuntary (environment triggered) termination mid execution. A voluntary 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.