Universality of Consensus (2017)

Universality of Consensus (2017)

A process is a sequential thread of control and its events model interactions with objects — an invoke event corresponds to the invocation of an operation on an object and a receive event corresponds to the receipt of a response from an object. The difficulty in implementing concurrent objects is that in general, histories are not sequential and operations from different processes can overlap, resulting in a possibility of ill-defined states. Space-time diagram with processes, objects, events and operations.Consensus Objects
A consensus object is a concurrent object with a single operation propose which behaves in accordance with the following sequential specification:
let propose value =
if state = null then
state – value
stateA consensus object must adhere to the following conditions:
Consistency: all processes invoking the consensus object receive the same value.

Source: medium.com