Vector clock

A vector clock is a data structure used for determining the partial ordering of events in a distributed system and detecting causality violations.

Just as in Lamport timestamps, inter-process messages contain the state of the sending process's logical clock.

[2] However, the logical clocks in that paper were scalars, not vectors.

[4] The papers canonically cited in reference to vector clocks are Colin Fidge’s and Friedemann Mattern’s 1988 works, [5][6] as they (independently) established the name "vector clock" and the mathematical properties of vector clocks.

[3] Vector clocks allow for the partial causal ordering of events.

Example of a system of vector clocks. Events in the blue region are the causes leading to event B4, whereas those in the red region are the effects of event B4.