Unit content
Causal consistency
A replicated system is causally consistent when it preserves the order of causally related operations.
If operation $B$ was produced after observing operation $A$, then any replica that makes $B$ visible must not present it as though $A$ had never happened.
Concurrent operations have no causal order, so different replicas may temporarily observe them in different orders.
This is weaker than linearizability because it does not impose one real-time order on every concurrent operation. It is stronger than eventual convergence alone because cause-and-effect relationships are preserved while replicas exchange updates.
Logical clocks or other causal metadata can help a system track these dependencies.
Causal consistency is useful when users should never observe an effect without the state on which that effect depended, even though independent updates may remain temporarily divergent.