Glossary · System coordination, integration and orchestration
Causal ordering
Also known as: causal order, happened-before ordering
German: Kausale Ordnung
In distributed systems, causal ordering is a guarantee that if one event can have influenced another, for example because a message was sent after the first event was observed, every participant processes the two events in that order. Events without such a relationship may be seen in different orders.
- System integration
In one sentence
Causal ordering guarantees that events which can influence each other are processed by all participants in the same cause-before-effect order.
Example
An alarm “tank high level” and the later operator acknowledgment are delivered to the historian in that order, even though they come from different systems.
How it applies
- Engineering: Wall-clock timestamps from different devices are rarely precise enough to reconstruct cause and effect. Logical clocks (see Logical clock) or vector clocks capture the happened-before relation independently of clock accuracy.
- Analysis: For root-cause analysis after an incident, the order of alarms, commands and acknowledgments matters more than their absolute times. Know which of your data sources preserve causal order and which only record local time.
- Documentation: Alarm and event documentation should say how events from different systems are timestamped and ordered, so readers of event logs don't draw wrong conclusions from sequences that are only approximately ordered.
Causal ordering vs. total ordering
Total ordering puts all events into one sequence seen identically by everyone. Causal ordering is weaker and cheaper: it fixes only the order of related events.