# Causal Consistency

> A conceptual representation of a consistency guarantee in which no reader sees an effect before its cause.

Record: `architecture:causal-consistency`
Kind: model
Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)
Severity: contextual
Scope: distributed data, events
Canonical: https://banes-lab.com/ontology#architecture-causal-consistency

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Causality](https://banes-lab.com/records/architecture/causality.md) and before [Happens-Before Relationship](https://banes-lab.com/records/architecture/happens-before-relationship.md).

## Repair

- Refactored by: Add Causal Metadata, Enforce Read-Your-Writes
- Detected by: order anomaly tests
- Violated by: observing effect before cause
- Measured by: causal anomaly rate
- Enforced by: consistency tests

## Requires

- [Causal Ordering](https://banes-lab.com/records/lexicon/causal-ordering.md)

## Reinforces

- [Eventual Consistency Safety](https://banes-lab.com/records/lexicon/eventual-consistency-safety.md)

## Enables

- [User-Visible Ordering Guarantees](https://banes-lab.com/records/lexicon/user-visible-ordering-guarantees.md)

## Conflicts with

- [Arbitrary Reordering](https://banes-lab.com/records/lexicon/arbitrary-reordering.md)
- [Read-Your-Writes Violation](https://banes-lab.com/records/architecture/read-your-writes-violation.md)

## In tension with

- [Latency/Availability](https://banes-lab.com/records/lexicon/latency-availability.md)

## Tensions

- [Causal Consistency / Latency/Availability](https://banes-lab.com/records/tension/causal-consistency-latency-availability.md)

## Severity

- [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)

## Category

- [Causality / Ordering / Distributed Time](https://banes-lab.com/records/architecture-category/causality-ordering-distributed-time.md)

## Reinforced by

- [Vector Clocks](https://banes-lab.com/records/architecture/vector-clocks.md)
- [Hybrid Logical Clocks](https://banes-lab.com/records/architecture/hybrid-logical-clocks.md)
- [CRDTs](https://banes-lab.com/records/architecture/crdts.md)
- [CAP Theorem](https://banes-lab.com/records/architecture/cap-theorem.md)

## Linked from

- [The ceiling moves by cost](https://banes-lab.com/software-architecture/scale/the-ceiling-moves-by-cost.md)
- [Anti-patterns](https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md)
- [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- [Event / Messaging / Asynchronous Architecture](https://banes-lab.com/ontology/principles/architecture-category-event-messaging-asynchronous-architecture.md)
- [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/lexicon/lexicon-category-causality-ordering-distributed-time.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The resolutions](https://banes-lab.com/ontology/schema/the-resolutions.md)
