# Causality / Ordering / Distributed Time

> Every principle in this category is listed as a record.

Page: Ontology · Principles
Canonical: https://banes-lab.com/ontology#architecture-category-causality-ordering-distributed-time

Listed in [Ontology · Principles](https://banes-lab.com/api/pages/ontology/principles.md), after [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/principles/architecture-category-runtime-discovery-dynamic-binding.md) and before [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.md).

Every principle in this category is listed as a record. Each record carries its kind, its severity, the scopes it applies at and the layer it lives in, then the edge relations that join it to other records, the records that point back at it, the contracts that answer to it and the tensions it takes part in. The descriptors say how it is violated, detected, measured, repaired and enforced. Where the record carries one, an exemplar shows the shape before and after the principle is applied.

Relations diagram

The relations inside this category.

```mermaid
flowchart LR
n_causality["Causality"]
n_causal_consistency["Causal Consistency"]
n_happens_before_relationship["Happens-Before Relationship"]
n_event_ordering["Event Ordering"]
n_causal_dependency["Causal Dependency"]
n_dependency_graph["Dependency Graph"]
n_directed_acyclic_graph["Directed Acyclic Graph (DAG)"]
n_vector_clocks["Vector Clocks"]
n_lamport_clocks["Lamport Clocks"]
n_hybrid_logical_clocks["Hybrid Logical Clocks"]
n_crdts["CRDTs"]
n_total_order_broadcast["Total-Order Broadcast"]
n_cap_theorem["CAP Theorem"]
n_pacelc_theorem["PACELC Theorem"]
n_causality --> n_event_ordering
n_event_ordering --> n_causality
n_causal_dependency --> n_causality
n_vector_clocks --> n_causal_consistency
n_hybrid_logical_clocks --> n_happens_before_relationship
n_hybrid_logical_clocks --> n_causal_consistency
n_hybrid_logical_clocks --> n_event_ordering
n_crdts --> n_causal_consistency
n_total_order_broadcast --> n_event_ordering
n_cap_theorem --> n_causal_consistency
n_pacelc_theorem --> n_cap_theorem
n_pacelc_theorem --> n_cap_theorem
```

### Causality

- Kind: [principle](https://banes-lab.com/records/kind/principle.md)
- Category: [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Scope: event, workflow, distributed state
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

Definition
A design rule that every effect records the event that caused it, so its order can be reasoned about.

Requires
[Causation Tracking](https://banes-lab.com/records/lexicon/causation-tracking.md)

Reinforces
[Traceability](https://banes-lab.com/records/architecture/traceability.md), [Event Ordering](https://banes-lab.com/records/architecture/event-ordering.md)

Enables
[Correct Workflow Reasoning](https://banes-lab.com/records/lexicon/correct-workflow-reasoning.md)

In tension with
[Parallelism](https://banes-lab.com/records/architecture/parallelism.md)

Conflicts with
[Unordered Side Effects](https://banes-lab.com/records/lexicon/unordered-side-effects.md)

Referenced by
[Event Ordering](https://banes-lab.com/records/architecture/event-ordering.md), [Causal Dependency](https://banes-lab.com/records/architecture/causal-dependency.md), [Causation ID](https://banes-lab.com/records/architecture/causation-id.md), [Distributed Tracing](https://banes-lab.com/records/architecture/distributed-tracing.md)

Contracts
[Causality Core](https://banes-lab.com/records/algorithms/causality-core.md)

Tensions
[Causality / Parallelism](https://banes-lab.com/records/tension/causality-parallelism.md)

Violated by
processing effects without known cause/order

Detected by
missing causation/correlation metadata

Measured by
causal trace completeness

Refactored by
Add Causation ID, Add Ordering Rules

Enforced by
event schema and workflow tests

Before

```typescript
events.push({ type: "BarCreated", at: Date.now() });
events.push({ type: "FooCreated", at: Date.now() });
```

After

```typescript
const fooCreated = append({ type: "FooCreated" });
append({ type: "BarCreated", causedBy: fooCreated.id });
```

How it is checked

Checked by
event schema and workflow tests

Population
Every event, replica update and dependency edge whose order affects the result

Freshness
A verdict stands until the event schema, the ordering key or the replication protocol changes

Refusal
The ordering or consistency test fails, or the graph check rejects the edge that breaks the order

Observation
Causation metadata on events, ordering-anomaly counts from tests, and the extracted dependency graph

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The ordering key and the replication protocol, which every event and replica update conforms to

Depends on
[Causation Tracking](https://banes-lab.com/records/lexicon/causation-tracking.md), [Traceability](https://banes-lab.com/records/architecture/traceability.md), [Event Ordering](https://banes-lab.com/records/architecture/event-ordering.md), [Correct Workflow Reasoning](https://banes-lab.com/records/lexicon/correct-workflow-reasoning.md)

Shape it refuses
[Unordered Side Effects](https://banes-lab.com/records/lexicon/unordered-side-effects.md)

### Causal Consistency

- Kind: [model](https://banes-lab.com/records/kind/model.md)
- Category: [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Scope: distributed data, events
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

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

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)

In tension with
[Latency/Availability](https://banes-lab.com/records/lexicon/latency-availability.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)

Referenced 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)

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

Violated by
observing effect before cause

Detected by
order anomaly tests

Measured by
causal anomaly rate

Refactored by
Add Causal Metadata, Enforce Read-Your-Writes

Enforced by
consistency tests

Before

```typescript
replica.apply(barCreated);
replica.apply(fooCreated);
```

After

```typescript
replica.applyWhenReady(barCreated, {
requires: [fooCreated.id],
});
replica.apply(fooCreated);
```

How it is checked

Checked by
consistency tests

Population
Every event, replica update and dependency edge whose order affects the result

Freshness
A verdict stands until the event schema, the ordering key or the replication protocol changes

Refusal
The ordering or consistency test fails, or the graph check rejects the edge that breaks the order

Observation
Causation metadata on events, ordering-anomaly counts from tests, and the extracted dependency graph

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The ordering key and the replication protocol, which every event and replica update conforms to

Depends on
[Causal Ordering](https://banes-lab.com/records/lexicon/causal-ordering.md), [Eventual Consistency Safety](https://banes-lab.com/records/lexicon/eventual-consistency-safety.md), [User-Visible Ordering Guarantees](https://banes-lab.com/records/lexicon/user-visible-ordering-guarantees.md)

Shape it refuses
[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)

### Happens-Before Relationship

- Kind: [model](https://banes-lab.com/records/kind/model.md)
- Category: [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Scope: concurrency, distributed events
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

Definition
A conceptual representation of the partial order in which one operation is known to precede another.

Requires
[Ordering Semantics](https://banes-lab.com/records/lexicon/ordering-semantics.md)

Reinforces
[Correctness](https://banes-lab.com/records/architecture/correctness.md), [Causal Reasoning](https://banes-lab.com/records/lexicon/causal-reasoning.md)

Enables
[Race Detection](https://banes-lab.com/records/lexicon/race-detection.md)

In tension with
[Parallel Execution](https://banes-lab.com/records/lexicon/parallel-execution.md)

Conflicts with
[Race Conditions](https://banes-lab.com/records/lexicon/race-conditions.md)

Referenced by
[Hybrid Logical Clocks](https://banes-lab.com/records/architecture/hybrid-logical-clocks.md)

Tensions
[Happens-Before Relationship / Parallel Execution](https://banes-lab.com/records/tension/happens-before-relationship-parallel-execution.md)

Violated by
assuming unordered operations are ordered

Detected by
race detectors, missing synchronization

Measured by
ordering violation count

Refactored by
Add Synchronization, Add Ordering Constraint

Enforced by
concurrency tests

Before

```typescript
const a = { id: "a", at: Date.now() };
const b = { id: "b", at: Date.now() };
```

After

```typescript
const a = { id: "a", ordinal: 1 };
const b = { id: "b", ordinal: 2, after: [a.id] };
assert(happensBefore(a, b));
```

How it is checked

Checked by
concurrency tests

Population
Every event, replica update and dependency edge whose order affects the result

Freshness
A verdict stands until the event schema, the ordering key or the replication protocol changes

Refusal
The ordering or consistency test fails, or the graph check rejects the edge that breaks the order

Observation
Causation metadata on events, ordering-anomaly counts from tests, and the extracted dependency graph

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The ordering key and the replication protocol, which every event and replica update conforms to

Depends on
[Ordering Semantics](https://banes-lab.com/records/lexicon/ordering-semantics.md), [Correctness](https://banes-lab.com/records/architecture/correctness.md), [Causal Reasoning](https://banes-lab.com/records/lexicon/causal-reasoning.md), [Race Detection](https://banes-lab.com/records/lexicon/race-detection.md)

Shape it refuses
[Race Conditions](https://banes-lab.com/records/lexicon/race-conditions.md)

### Event Ordering

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Scope: stream, queue, consumer
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

Definition
A rule or precondition that a stateful consumer processes the events of one key in their sequence order.

Requires
[Ordering Key or Sequence](https://banes-lab.com/records/lexicon/ordering-key-or-sequence.md)

Reinforces
[Causality](https://banes-lab.com/records/architecture/causality.md)

Enables
[Correct Stateful Processing](https://banes-lab.com/records/lexicon/correct-stateful-processing.md)

In tension with
[Throughput](https://banes-lab.com/records/architecture/throughput.md)

Conflicts with
[Unordered Parallel Consumption](https://banes-lab.com/records/lexicon/unordered-parallel-consumption.md)

Referenced by
[Causality](https://banes-lab.com/records/architecture/causality.md), [Hybrid Logical Clocks](https://banes-lab.com/records/architecture/hybrid-logical-clocks.md), [Total-Order Broadcast](https://banes-lab.com/records/architecture/total-order-broadcast.md)

Tensions
[Event Ordering / Throughput](https://banes-lab.com/records/tension/event-ordering-throughput.md)

Distinct from
[Ordering Key or Sequence](https://banes-lab.com/records/lexicon/ordering-key-or-sequence.md): Event ordering binds the consumer to process one key's events in order, while the ordering key is the field on each event that makes the order known.

Violated by
stateful consumers processing out of order

Detected by
missing ordering key/sequence checks

Measured by
out-of-order rate

Refactored by
Add Partition Key, Sequence Number, Reorder Buffer

Enforced by
stream config, consumer tests

Before

```typescript
events.sort((a, b) => a.timestamp - b.timestamp);
```

After

```typescript
events.sort((a, b) => a.streamOrdinal - b.streamOrdinal);
```

How it is checked

Checked by
stream config, consumer tests

Population
Every event, replica update and dependency edge whose order affects the result

Freshness
A verdict stands until the event schema, the ordering key or the replication protocol changes

Refusal
The ordering or consistency test fails, or the graph check rejects the edge that breaks the order

Observation
Causation metadata on events, ordering-anomaly counts from tests, and the extracted dependency graph

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The ordering key and the replication protocol, which every event and replica update conforms to

Depends on
[Ordering Key or Sequence](https://banes-lab.com/records/lexicon/ordering-key-or-sequence.md), [Causality](https://banes-lab.com/records/architecture/causality.md), [Correct Stateful Processing](https://banes-lab.com/records/lexicon/correct-stateful-processing.md)

Shape it refuses
[Unordered Parallel Consumption](https://banes-lab.com/records/lexicon/unordered-parallel-consumption.md)

### Causal Dependency

- Kind: [model](https://banes-lab.com/records/kind/model.md)
- Category: [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- Severity: [recommended](https://banes-lab.com/records/vocabulary/severity-recommended.md)
- Scope: event, workflow, module
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

Definition
A conceptual representation of one step or event that cannot proceed until another has happened.

Requires
[Dependency Declaration](https://banes-lab.com/records/lexicon/dependency-declaration.md)

Reinforces
[Causality](https://banes-lab.com/records/architecture/causality.md), [Traceability](https://banes-lab.com/records/architecture/traceability.md)

Enables
[Impact Analysis](https://banes-lab.com/records/architecture/impact-analysis.md)

In tension with
[Graph Complexity](https://banes-lab.com/records/lexicon/graph-complexity.md)

Conflicts with
[Hidden Dependency](https://banes-lab.com/records/lexicon/hidden-dependency.md)

Tensions
[Causal Dependency / Graph Complexity](https://banes-lab.com/records/tension/causal-dependency-graph-complexity.md)

Violated by
implicit dependency not represented in workflow/event metadata

Detected by
undocumented call/event dependency

Measured by
hidden dependency count

Refactored by
Declare Dependency, Add Causation Link

Enforced by
dependency graph checks

Before

```typescript
processBar(barEvent);
```

After

```typescript
if (!projection.has(barEvent.fooEventId)) defer(barEvent);
else processBar(barEvent);
```

How it is checked

Checked by
dependency graph checks

Population
Every event, replica update and dependency edge whose order affects the result

Freshness
A verdict stands until the event schema, the ordering key or the replication protocol changes

Refusal
The ordering or consistency test fails, or the graph check rejects the edge that breaks the order

Observation
Causation metadata on events, ordering-anomaly counts from tests, and the extracted dependency graph

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The ordering key and the replication protocol, which every event and replica update conforms to

Depends on
[Dependency Declaration](https://banes-lab.com/records/lexicon/dependency-declaration.md), [Causality](https://banes-lab.com/records/architecture/causality.md), [Traceability](https://banes-lab.com/records/architecture/traceability.md), [Impact Analysis](https://banes-lab.com/records/architecture/impact-analysis.md)

Shape it refuses
[Hidden Dependency](https://banes-lab.com/records/lexicon/hidden-dependency.md)

### Dependency Graph

- Kind: [artifact](https://banes-lab.com/records/kind/artifact.md)
- Category: [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- Severity: [mandatory](https://banes-lab.com/records/vocabulary/severity-mandatory.md)
- Scope: codebase, runtime, deployment
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

Definition
Descriptive data about which modules, tasks or services depend on which, extracted as a directed graph.

Requires
[Dependency Extraction](https://banes-lab.com/records/lexicon/dependency-extraction.md)

Reinforces
[Architecture Compliance](https://banes-lab.com/records/lexicon/architecture-compliance.md)

Enables
[Cycle Detection](https://banes-lab.com/records/lexicon/cycle-detection.md), [Impact Analysis](https://banes-lab.com/records/architecture/impact-analysis.md)

In tension with
[Dynamic Loading](https://banes-lab.com/records/lexicon/dynamic-loading.md)

Conflicts with
[Hidden Dependencies](https://banes-lab.com/records/lexicon/hidden-dependencies.md)

Referenced by
[Impact Analysis](https://banes-lab.com/records/architecture/impact-analysis.md)

Tensions
[Dependency Graph / Dynamic Loading](https://banes-lab.com/records/tension/dependency-graph-dynamic-loading.md)

Violated by
undeclared dependencies

Detected by
graph extraction mismatch

Measured by
cycle count, graph density

Refactored by
Break Cycle, Invert Dependency

Enforced by
dependency graph CI checks

Before

```typescript
const tasks = [loadFoo, buildBar, publishBaz];
await Promise.all(tasks.map(task => task()));
```

After

```typescript
const graph = new DependencyGraph();
graph.add("buildBar", { dependsOn: ["loadFoo"] });
graph.add("publishBaz", { dependsOn: ["buildBar"] });
await graph.execute();
```

How it is checked

Checked by
dependency graph CI checks

Population
Every event, replica update and dependency edge whose order affects the result

Freshness
A verdict stands until the event schema, the ordering key or the replication protocol changes

Refusal
The ordering or consistency test fails, or the graph check rejects the edge that breaks the order

Observation
Causation metadata on events, ordering-anomaly counts from tests, and the extracted dependency graph

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The ordering key and the replication protocol, which every event and replica update conforms to

Depends on
[Dependency Extraction](https://banes-lab.com/records/lexicon/dependency-extraction.md), [Architecture Compliance](https://banes-lab.com/records/lexicon/architecture-compliance.md), [Cycle Detection](https://banes-lab.com/records/lexicon/cycle-detection.md), [Impact Analysis](https://banes-lab.com/records/architecture/impact-analysis.md)

Shape it refuses
[Hidden Dependencies](https://banes-lab.com/records/lexicon/hidden-dependencies.md)

### Directed Acyclic Graph (DAG)

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Mandatory for: dependency architecture
- Scope: dependency graph, workflow, build
- Aliases: Directed Dependencies
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

Definition
A rule or precondition that every dependency points one way and the graph they form has no cycle, so its nodes can be put in topological order.

Requires
none

Reinforces
[Layering](https://banes-lab.com/records/lexicon/layering.md), [Build Order](https://banes-lab.com/records/lexicon/build-order.md)

Enables
[Topological Ordering](https://banes-lab.com/records/lexicon/topological-ordering.md)

In tension with
[Bidirectional Collaboration](https://banes-lab.com/records/lexicon/bidirectional-collaboration.md)

Conflicts with
[Circular Dependency](https://banes-lab.com/records/architecture/circular-dependency.md)

Contracts
[Checklist Creation Kernel](https://banes-lab.com/records/algorithms/checklist-creation-kernel.md)

Tensions
[Directed Acyclic Graph (DAG) / Bidirectional Collaboration](https://banes-lab.com/records/tension/bidirectional-collaboration-directed-acyclic-graph-dag.md)

Violated by
dependency cycle

Detected by
[cycle detection](https://banes-lab.com/records/lexicon/cycle-detection.md)

Measured by
cycle count

Refactored by
Invert Dependency, Extract Interface, Split Module

Enforced by
graph checks

Before

```typescript
graph.addEdge("foo", "bar");
graph.addEdge("bar", "foo");
```

After

```typescript
const dag = new Dag();
dag.addEdge("foo", "bar");
if (dag.wouldCreateCycle("bar", "foo")) throw new Error("cycle rejected");
```

How it is checked

Checked by
graph checks

Population
Every event, replica update and dependency edge whose order affects the result

Freshness
A verdict stands until the event schema, the ordering key or the replication protocol changes

Refusal
The ordering or consistency test fails, or the graph check rejects the edge that breaks the order

Observation
Causation metadata on events, ordering-anomaly counts from tests, and the extracted dependency graph

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The ordering key and the replication protocol, which every event and replica update conforms to

Depends on
[Layering](https://banes-lab.com/records/lexicon/layering.md), [Build Order](https://banes-lab.com/records/lexicon/build-order.md), [Topological Ordering](https://banes-lab.com/records/lexicon/topological-ordering.md)

Shape it refuses
[Circular Dependency](https://banes-lab.com/records/architecture/circular-dependency.md)

### Vector Clocks

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Category: [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Scope: distributed events, replication
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

Definition
A mechanism that keeps one counter per node on each update, so two updates can be compared as ordered or concurrent.

Requires
[Node Identity](https://banes-lab.com/records/lexicon/node-identity.md), [Version Vector](https://banes-lab.com/records/lexicon/version-vector.md)

Reinforces
[Causal Consistency](https://banes-lab.com/records/architecture/causal-consistency.md)

Enables
[Concurrent Update Detection](https://banes-lab.com/records/lexicon/concurrent-update-detection.md)

In tension with
[Metadata Size](https://banes-lab.com/records/lexicon/metadata-size.md)

Conflicts with
[Single Global Clock Assumption](https://banes-lab.com/records/lexicon/single-global-clock-assumption.md)

Tensions
[Vector Clocks / Metadata Size](https://banes-lab.com/records/tension/metadata-size-vector-clocks.md)

Violated by
unresolved concurrent writes

Detected by
lost causality in distributed updates

Measured by
conflict detection accuracy

Refactored by
Add Version Vector

Enforced by
replication protocol tests

Before

```typescript
const winner = a.updatedAt > b.updatedAt ? a : b;
```

After

```typescript
const relation = compareVectorClocks(a.clock, b.clock);
if (relation === "concurrent") return mergeFoo(a, b);
return relation === "after" ? a : b;
```

How it is checked

Checked by
replication protocol tests

Population
Every event, replica update and dependency edge whose order affects the result

Freshness
A verdict stands until the event schema, the ordering key or the replication protocol changes

Refusal
The ordering or consistency test fails, or the graph check rejects the edge that breaks the order

Observation
Causation metadata on events, ordering-anomaly counts from tests, and the extracted dependency graph

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The ordering key and the replication protocol, which every event and replica update conforms to

Depends on
[Node Identity](https://banes-lab.com/records/lexicon/node-identity.md), [Version Vector](https://banes-lab.com/records/lexicon/version-vector.md), [Causal Consistency](https://banes-lab.com/records/architecture/causal-consistency.md), [Concurrent Update Detection](https://banes-lab.com/records/lexicon/concurrent-update-detection.md)

Shape it refuses
[Single Global Clock Assumption](https://banes-lab.com/records/lexicon/single-global-clock-assumption.md)

### Lamport Clocks

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Category: [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Scope: distributed events
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

Definition
A mechanism that stamps each event with a logical counter, advanced on every send and receive, to give a partial order.

Requires
[Logical Counter](https://banes-lab.com/records/lexicon/logical-counter.md)

Reinforces
[Happens-Before Reasoning](https://banes-lab.com/records/lexicon/happens-before-reasoning.md)

Enables
[Partial Ordering](https://banes-lab.com/records/lexicon/partial-ordering.md)

In tension with
[No Concurrent Causality Distinction](https://banes-lab.com/records/lexicon/no-concurrent-causality-distinction.md)

Conflicts with
[Wall-Clock Ordering Assumption](https://banes-lab.com/records/lexicon/wall-clock-ordering-assumption.md)

Tensions
[Lamport Clocks / No Concurrent Causality Distinction](https://banes-lab.com/records/tension/lamport-clocks-no-concurrent-causality-distinction.md)

Distinct from
[Logical Counter](https://banes-lab.com/records/lexicon/logical-counter.md): Lamport clocks are the whole stamping scheme, advanced on every send and receive, while the logical counter is the value each process keeps.

Violated by
ordering by unsynchronized wall clocks

Detected by
timestamp ordering anomalies

Measured by
ordering anomaly rate

Refactored by
Add Logical Clock

Enforced by
protocol tests

Before

```typescript
const event = { at: Date.now(), value: foo };
```

After

```typescript
const event = { logicalTime: lamport.tick(), value: foo };
lamport.observe(remoteEvent.logicalTime);
```

How it is checked

Checked by
protocol tests

Population
Every event, replica update and dependency edge whose order affects the result

Freshness
A verdict stands until the event schema, the ordering key or the replication protocol changes

Refusal
The ordering or consistency test fails, or the graph check rejects the edge that breaks the order

Observation
Causation metadata on events, ordering-anomaly counts from tests, and the extracted dependency graph

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The ordering key and the replication protocol, which every event and replica update conforms to

Depends on
[Logical Counter](https://banes-lab.com/records/lexicon/logical-counter.md), [Happens-Before Reasoning](https://banes-lab.com/records/lexicon/happens-before-reasoning.md), [Partial Ordering](https://banes-lab.com/records/lexicon/partial-ordering.md)

Shape it refuses
[Wall-Clock Ordering Assumption](https://banes-lab.com/records/lexicon/wall-clock-ordering-assumption.md)

### Hybrid Logical Clocks

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Category: [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Mandatory for: distributed systems
- Scope: event, distributed state, time
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

Definition
A mechanism that combines physical time with a logical counter, so timestamps follow causal order and stay close to wall-clock time.

Requires
[Happens-Before Relationship](https://banes-lab.com/records/architecture/happens-before-relationship.md)

Reinforces
[Causal Consistency](https://banes-lab.com/records/architecture/causal-consistency.md), [Event Ordering](https://banes-lab.com/records/architecture/event-ordering.md)

Enables
[Wall-Clock-Correlated Causal Order](https://banes-lab.com/records/lexicon/wall-clock-correlated-causal-order.md)

In tension with
[Clock Skew](https://banes-lab.com/records/lexicon/clock-skew.md)

Conflicts with
[Physical-Clock-Only Ordering](https://banes-lab.com/records/lexicon/physical-clock-only-ordering.md)

Tensions
[Hybrid Logical Clocks / Clock Skew](https://banes-lab.com/records/tension/clock-skew-hybrid-logical-clocks.md)

Violated by
ordering events solely by wall-clock timestamps

Detected by
last-writer-wins on physical time

Measured by
out-of-causal-order event rate

Refactored by
Adopt Hybrid Logical Clocks

Enforced by
distributed-systems review

Before

```typescript
const event = { at: Date.now(), value: foo };
```

After

```typescript
const event = { hlc: hlc.now(), value: foo };
hlc.update(remoteEvent.hlc);
```

How it is checked

Checked by
distributed-systems review

Population
Every event, replica update and dependency edge whose order affects the result

Freshness
A verdict stands until the event schema, the ordering key or the replication protocol changes

Refusal
The ordering or consistency test fails, or the graph check rejects the edge that breaks the order

Observation
Causation metadata on events, ordering-anomaly counts from tests, and the extracted dependency graph

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The ordering key and the replication protocol, which every event and replica update conforms to

Depends on
[Happens-Before Relationship](https://banes-lab.com/records/architecture/happens-before-relationship.md), [Causal Consistency](https://banes-lab.com/records/architecture/causal-consistency.md), [Event Ordering](https://banes-lab.com/records/architecture/event-ordering.md), [Wall-Clock-Correlated Causal Order](https://banes-lab.com/records/lexicon/wall-clock-correlated-causal-order.md)

Shape it refuses
[Physical-Clock-Only Ordering](https://banes-lab.com/records/lexicon/physical-clock-only-ordering.md)

### CRDTs

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Category: [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Scope: distributed state, replication, convergence
- Aliases: Conflict-Free Replicated Data Types
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

Definition
A mechanism that stores replicated state in data types whose merge is commutative, so replicas converge without coordination.

Requires
[Commutative Merge](https://banes-lab.com/records/lexicon/commutative-merge.md)

Reinforces
[Eventual Consistency](https://banes-lab.com/records/architecture/eventual-consistency.md), [Causal Consistency](https://banes-lab.com/records/architecture/causal-consistency.md)

Enables
[Conflict-Free Replica Convergence](https://banes-lab.com/records/lexicon/conflict-free-replica-convergence.md)

In tension with
[Metadata Overhead](https://banes-lab.com/records/lexicon/metadata-overhead.md), [Last-Write-Wins Overwrite](https://banes-lab.com/records/lexicon/last-write-wins-overwrite.md)

Conflicts with
none

Tensions
[CRDTs / Metadata Overhead](https://banes-lab.com/records/tension/crdts-metadata-overhead.md), [CRDTs / Last-Write-Wins Overwrite](https://banes-lab.com/records/tension/crdts-last-write-wins-overwrite.md)

Violated by
concurrent replica edits silently overwriting each other

Detected by
lost updates under concurrent replication

Measured by
merge-conflict data-loss rate

Refactored by
Model State as a CRDT

Enforced by
replication design review

Before

```typescript
foo.tags = incoming.updatedAt > foo.updatedAt ? incoming.tags : foo.tags;
```

After

```typescript
foo.tags = orSet.merge(foo.tags, incoming.tags);
```

How it is checked

Checked by
replication design review

Population
Every event, replica update and dependency edge whose order affects the result

Freshness
A verdict stands until the event schema, the ordering key or the replication protocol changes

Refusal
The ordering or consistency test fails, or the graph check rejects the edge that breaks the order

Observation
Causation metadata on events, ordering-anomaly counts from tests, and the extracted dependency graph

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The ordering key and the replication protocol, which every event and replica update conforms to

Depends on
[Commutative Merge](https://banes-lab.com/records/lexicon/commutative-merge.md), [Eventual Consistency](https://banes-lab.com/records/architecture/eventual-consistency.md), [Causal Consistency](https://banes-lab.com/records/architecture/causal-consistency.md), [Conflict-Free Replica Convergence](https://banes-lab.com/records/lexicon/conflict-free-replica-convergence.md)

Shape it refuses
Not answered

### Total-Order Broadcast

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Category: [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Mandatory for: distributed systems
- Scope: event, distributed state, ordering
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

Definition
A mechanism that delivers every message to every node in the same order, agreed by consensus.

Requires
[Consensus](https://banes-lab.com/records/architecture/consensus.md)

Reinforces
[Event Ordering](https://banes-lab.com/records/architecture/event-ordering.md), [Consistency](https://banes-lab.com/records/architecture/consistency.md)

Enables
[Identical Delivery Order Across Nodes](https://banes-lab.com/records/lexicon/identical-delivery-order-across-nodes.md)

In tension with
[Latency](https://banes-lab.com/records/architecture/latency.md)

Conflicts with
[Per-Node Independent Ordering](https://banes-lab.com/records/lexicon/per-node-independent-ordering.md)

Tensions
[Total-Order Broadcast / Latency](https://banes-lab.com/records/tension/latency-total-order-broadcast.md)

Violated by
replicas applying events in divergent orders

Detected by
state divergence across nodes given same events

Measured by
cross-node order divergence rate

Refactored by
Introduce Total-Order Broadcast

Enforced by
distributed-systems review

Before

```typescript
replica.apply(event);
```

After

```typescript
const sequenced = await totalOrder.broadcast(event);
replica.applyInOrder(sequenced.sequence, sequenced.event);
```

How it is checked

Checked by
distributed-systems review

Population
Every event, replica update and dependency edge whose order affects the result

Freshness
A verdict stands until the event schema, the ordering key or the replication protocol changes

Refusal
The ordering or consistency test fails, or the graph check rejects the edge that breaks the order

Observation
Causation metadata on events, ordering-anomaly counts from tests, and the extracted dependency graph

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The ordering key and the replication protocol, which every event and replica update conforms to

Depends on
[Consensus](https://banes-lab.com/records/architecture/consensus.md), [Event Ordering](https://banes-lab.com/records/architecture/event-ordering.md), [Consistency](https://banes-lab.com/records/architecture/consistency.md), [Identical Delivery Order Across Nodes](https://banes-lab.com/records/lexicon/identical-delivery-order-across-nodes.md)

Shape it refuses
[Per-Node Independent Ordering](https://banes-lab.com/records/lexicon/per-node-independent-ordering.md)

### CAP Theorem

- Kind: [model](https://banes-lab.com/records/kind/model.md)
- Category: [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Mandatory for: distributed systems
- Scope: distributed state, consistency, availability
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

Definition
A conceptual representation of the choice a distributed store makes during a network partition, between consistency and availability.

Requires
[Network Partition Possibility](https://banes-lab.com/records/lexicon/network-partition-possibility.md)

Reinforces
[Causal Consistency](https://banes-lab.com/records/architecture/causal-consistency.md), [Eventual Consistency](https://banes-lab.com/records/architecture/eventual-consistency.md)

Enables
[Explicit Consistency/Availability Choice Under Partition](https://banes-lab.com/records/lexicon/explicit-consistency-availability-choice-under-partition.md)

In tension with
[Latency](https://banes-lab.com/records/architecture/latency.md)

Conflicts with
[Assumed Total Consistency And Availability](https://banes-lab.com/records/lexicon/assumed-total-consistency-and-availability.md)

Referenced by
[PACELC Theorem](https://banes-lab.com/records/architecture/pacelc-theorem.md)

Tensions
[CAP Theorem / Latency](https://banes-lab.com/records/tension/cap-theorem-latency.md)

Distinct from
[Causal Consistency](https://banes-lab.com/records/architecture/causal-consistency.md): The CAP theorem states the trade-off a store makes during a partition, while causal consistency is one guarantee a store can offer.

Distinct from
[Eventual Consistency](https://banes-lab.com/records/architecture/eventual-consistency.md): The CAP theorem is the trade-off, while eventual consistency is the guarantee an available store settles for.

Distinct from
[PACELC Theorem](https://banes-lab.com/records/architecture/pacelc-theorem.md): The CAP theorem covers only a partition, while PACELC adds the latency and consistency trade-off of a healthy network.

Violated by
a distributed store assumed to be both strongly consistent and fully available under partition

Detected by
split-brain writes or stalls during network partitions

Measured by
consistency/availability violations during partition events

Refactored by
Choose CP or AP explicitly per data class under partition

Enforced by
distributed-systems review

Before

```typescript
await Promise.all(replicas.map(r => r.write(foo)));
return "always consistent and available";
```

After

```typescript
const policy = partitionPolicyFor(foo.class);
return policy === "CP"
? writeWithQuorum(foo)
: writeAvailableAndReconcile(foo);
```

How it is checked

Checked by
distributed-systems review

Population
Every event, replica update and dependency edge whose order affects the result

Freshness
A verdict stands until the event schema, the ordering key or the replication protocol changes

Refusal
The ordering or consistency test fails, or the graph check rejects the edge that breaks the order

Observation
Causation metadata on events, ordering-anomaly counts from tests, and the extracted dependency graph

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The ordering key and the replication protocol, which every event and replica update conforms to

Depends on
[Network Partition Possibility](https://banes-lab.com/records/lexicon/network-partition-possibility.md), [Causal Consistency](https://banes-lab.com/records/architecture/causal-consistency.md), [Eventual Consistency](https://banes-lab.com/records/architecture/eventual-consistency.md), [Explicit Consistency/Availability Choice Under Partition](https://banes-lab.com/records/lexicon/explicit-consistency-availability-choice-under-partition.md)

Shape it refuses
[Assumed Total Consistency And Availability](https://banes-lab.com/records/lexicon/assumed-total-consistency-and-availability.md)

### PACELC Theorem

- Kind: [model](https://banes-lab.com/records/kind/model.md)
- Category: [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Scope: distributed state, consistency, latency
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

Definition
A conceptual representation that extends the CAP theorem with the trade-off a healthy network still forces, between latency and consistency.

Requires
[CAP Theorem](https://banes-lab.com/records/architecture/cap-theorem.md)

Reinforces
[CAP Theorem](https://banes-lab.com/records/architecture/cap-theorem.md), [Latency](https://banes-lab.com/records/architecture/latency.md)

Enables
[Latency-Consistency Trade-off When Healthy](https://banes-lab.com/records/lexicon/latency-consistency-trade-off-when-healthy.md)

In tension with
[Throughput](https://banes-lab.com/records/architecture/throughput.md)

Conflicts with
[Consistency Assumed Free When Healthy](https://banes-lab.com/records/lexicon/consistency-assumed-free-when-healthy.md)

Tensions
[PACELC Theorem / Throughput](https://banes-lab.com/records/tension/pacelc-theorem-throughput.md)

Violated by
consistency treated as free when the network is healthy, ignoring the latency it costs

Detected by
tail latency driven by synchronous cross-region consistency during normal operation

Measured by
latency-vs-staleness tradeoff per read class

Refactored by
Decide else-branch latency-vs-consistency per read class (PACELC)

Enforced by
distributed-systems review

Before

```typescript
const foo = await readFromAllRegionsStrongly(id);
```

After

```typescript
const foo = tolerateStaleness(id.class)
? await readLocalReplica(id)
: await readStronglyAcrossRegions(id);
```

How it is checked

Checked by
distributed-systems review

Population
Every event, replica update and dependency edge whose order affects the result

Freshness
A verdict stands until the event schema, the ordering key or the replication protocol changes

Refusal
The ordering or consistency test fails, or the graph check rejects the edge that breaks the order

Observation
Causation metadata on events, ordering-anomaly counts from tests, and the extracted dependency graph

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The ordering key and the replication protocol, which every event and replica update conforms to

Depends on
[CAP Theorem](https://banes-lab.com/records/architecture/cap-theorem.md), [CAP Theorem](https://banes-lab.com/records/architecture/cap-theorem.md), [Latency](https://banes-lab.com/records/architecture/latency.md), [Latency-Consistency Trade-off When Healthy](https://banes-lab.com/records/lexicon/latency-consistency-trade-off-when-healthy.md)

Shape it refuses
[Consistency Assumed Free When Healthy](https://banes-lab.com/records/lexicon/consistency-assumed-free-when-healthy.md)

## Links to

- [principle](https://banes-lab.com/records/kind/principle.md)
- [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- [Causality Core](https://banes-lab.com/records/layer/causality-core.md)
- [Causation Tracking](https://banes-lab.com/records/lexicon/causation-tracking.md)
- [Traceability](https://banes-lab.com/records/architecture/traceability.md)
- [Event Ordering](https://banes-lab.com/records/architecture/event-ordering.md)
- [Correct Workflow Reasoning](https://banes-lab.com/records/lexicon/correct-workflow-reasoning.md)
- [Parallelism](https://banes-lab.com/records/architecture/parallelism.md)
- [Unordered Side Effects](https://banes-lab.com/records/lexicon/unordered-side-effects.md)
- [Causal Dependency](https://banes-lab.com/records/architecture/causal-dependency.md)
- [Causation ID](https://banes-lab.com/records/architecture/causation-id.md)
- [Distributed Tracing](https://banes-lab.com/records/architecture/distributed-tracing.md)
- [Causality Core](https://banes-lab.com/records/algorithms/causality-core.md)
- [Causality / Parallelism](https://banes-lab.com/records/tension/causality-parallelism.md)
- [model](https://banes-lab.com/records/kind/model.md)
- [Causal Ordering](https://banes-lab.com/records/lexicon/causal-ordering.md)
- [Eventual Consistency Safety](https://banes-lab.com/records/lexicon/eventual-consistency-safety.md)
- [User-Visible Ordering Guarantees](https://banes-lab.com/records/lexicon/user-visible-ordering-guarantees.md)
- [Latency/Availability](https://banes-lab.com/records/lexicon/latency-availability.md)
- [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)
- [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)
- [Causal Consistency / Latency/Availability](https://banes-lab.com/records/tension/causal-consistency-latency-availability.md)
- [Ordering Semantics](https://banes-lab.com/records/lexicon/ordering-semantics.md)
- [Correctness](https://banes-lab.com/records/architecture/correctness.md)
- [Causal Reasoning](https://banes-lab.com/records/lexicon/causal-reasoning.md)
- [Race Detection](https://banes-lab.com/records/lexicon/race-detection.md)
- [Parallel Execution](https://banes-lab.com/records/lexicon/parallel-execution.md)
- [Race Conditions](https://banes-lab.com/records/lexicon/race-conditions.md)
- [Happens-Before Relationship / Parallel Execution](https://banes-lab.com/records/tension/happens-before-relationship-parallel-execution.md)
- [constraint](https://banes-lab.com/records/kind/constraint.md)
- [Ordering Key or Sequence](https://banes-lab.com/records/lexicon/ordering-key-or-sequence.md)
- [Causality](https://banes-lab.com/records/architecture/causality.md)
- [Correct Stateful Processing](https://banes-lab.com/records/lexicon/correct-stateful-processing.md)
- [Throughput](https://banes-lab.com/records/architecture/throughput.md)
- [Unordered Parallel Consumption](https://banes-lab.com/records/lexicon/unordered-parallel-consumption.md)
- [Total-Order Broadcast](https://banes-lab.com/records/architecture/total-order-broadcast.md)
- [Event Ordering / Throughput](https://banes-lab.com/records/tension/event-ordering-throughput.md)
- [recommended](https://banes-lab.com/records/vocabulary/severity-recommended.md)
- [Dependency Declaration](https://banes-lab.com/records/lexicon/dependency-declaration.md)
- [Impact Analysis](https://banes-lab.com/records/architecture/impact-analysis.md)
- [Graph Complexity](https://banes-lab.com/records/lexicon/graph-complexity.md)
- [Hidden Dependency](https://banes-lab.com/records/lexicon/hidden-dependency.md)
- [Causal Dependency / Graph Complexity](https://banes-lab.com/records/tension/causal-dependency-graph-complexity.md)
- [artifact](https://banes-lab.com/records/kind/artifact.md)
- [mandatory](https://banes-lab.com/records/vocabulary/severity-mandatory.md)
- [Dependency Extraction](https://banes-lab.com/records/lexicon/dependency-extraction.md)
- [Architecture Compliance](https://banes-lab.com/records/lexicon/architecture-compliance.md)
- [Cycle Detection](https://banes-lab.com/records/lexicon/cycle-detection.md)
- [Dynamic Loading](https://banes-lab.com/records/lexicon/dynamic-loading.md)
- [Hidden Dependencies](https://banes-lab.com/records/lexicon/hidden-dependencies.md)
- [Dependency Graph / Dynamic Loading](https://banes-lab.com/records/tension/dependency-graph-dynamic-loading.md)
- [Layering](https://banes-lab.com/records/lexicon/layering.md)
- [Build Order](https://banes-lab.com/records/lexicon/build-order.md)
- [Topological Ordering](https://banes-lab.com/records/lexicon/topological-ordering.md)
- [Bidirectional Collaboration](https://banes-lab.com/records/lexicon/bidirectional-collaboration.md)
- [Circular Dependency](https://banes-lab.com/records/architecture/circular-dependency.md)
- [Checklist Creation Kernel](https://banes-lab.com/records/algorithms/checklist-creation-kernel.md)
- [Directed Acyclic Graph (DAG) / Bidirectional Collaboration](https://banes-lab.com/records/tension/bidirectional-collaboration-directed-acyclic-graph-dag.md)
- [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- [Node Identity](https://banes-lab.com/records/lexicon/node-identity.md)
- [Version Vector](https://banes-lab.com/records/lexicon/version-vector.md)
- [Causal Consistency](https://banes-lab.com/records/architecture/causal-consistency.md)
- [Concurrent Update Detection](https://banes-lab.com/records/lexicon/concurrent-update-detection.md)
- [Metadata Size](https://banes-lab.com/records/lexicon/metadata-size.md)
- [Single Global Clock Assumption](https://banes-lab.com/records/lexicon/single-global-clock-assumption.md)
- [Vector Clocks / Metadata Size](https://banes-lab.com/records/tension/metadata-size-vector-clocks.md)
- [Logical Counter](https://banes-lab.com/records/lexicon/logical-counter.md)
- [Happens-Before Reasoning](https://banes-lab.com/records/lexicon/happens-before-reasoning.md)
- [Partial Ordering](https://banes-lab.com/records/lexicon/partial-ordering.md)
- [No Concurrent Causality Distinction](https://banes-lab.com/records/lexicon/no-concurrent-causality-distinction.md)
- [Wall-Clock Ordering Assumption](https://banes-lab.com/records/lexicon/wall-clock-ordering-assumption.md)
- [Lamport Clocks / No Concurrent Causality Distinction](https://banes-lab.com/records/tension/lamport-clocks-no-concurrent-causality-distinction.md)
- [Happens-Before Relationship](https://banes-lab.com/records/architecture/happens-before-relationship.md)
- [Wall-Clock-Correlated Causal Order](https://banes-lab.com/records/lexicon/wall-clock-correlated-causal-order.md)
- [Clock Skew](https://banes-lab.com/records/lexicon/clock-skew.md)
- [Physical-Clock-Only Ordering](https://banes-lab.com/records/lexicon/physical-clock-only-ordering.md)
- [Hybrid Logical Clocks / Clock Skew](https://banes-lab.com/records/tension/clock-skew-hybrid-logical-clocks.md)
- [Commutative Merge](https://banes-lab.com/records/lexicon/commutative-merge.md)
- [Eventual Consistency](https://banes-lab.com/records/architecture/eventual-consistency.md)
- [Conflict-Free Replica Convergence](https://banes-lab.com/records/lexicon/conflict-free-replica-convergence.md)
- [Metadata Overhead](https://banes-lab.com/records/lexicon/metadata-overhead.md)
- [Last-Write-Wins Overwrite](https://banes-lab.com/records/lexicon/last-write-wins-overwrite.md)
- [CRDTs / Metadata Overhead](https://banes-lab.com/records/tension/crdts-metadata-overhead.md)
- [CRDTs / Last-Write-Wins Overwrite](https://banes-lab.com/records/tension/crdts-last-write-wins-overwrite.md)
- [Consensus](https://banes-lab.com/records/architecture/consensus.md)
- [Consistency](https://banes-lab.com/records/architecture/consistency.md)
- [Identical Delivery Order Across Nodes](https://banes-lab.com/records/lexicon/identical-delivery-order-across-nodes.md)
- [Latency](https://banes-lab.com/records/architecture/latency.md)
- [Per-Node Independent Ordering](https://banes-lab.com/records/lexicon/per-node-independent-ordering.md)
- [Total-Order Broadcast / Latency](https://banes-lab.com/records/tension/latency-total-order-broadcast.md)
- [Network Partition Possibility](https://banes-lab.com/records/lexicon/network-partition-possibility.md)
- [Explicit Consistency/Availability Choice Under Partition](https://banes-lab.com/records/lexicon/explicit-consistency-availability-choice-under-partition.md)
- [Assumed Total Consistency And Availability](https://banes-lab.com/records/lexicon/assumed-total-consistency-and-availability.md)
- [PACELC Theorem](https://banes-lab.com/records/architecture/pacelc-theorem.md)
- [CAP Theorem / Latency](https://banes-lab.com/records/tension/cap-theorem-latency.md)
- [Latency-Consistency Trade-off When Healthy](https://banes-lab.com/records/lexicon/latency-consistency-trade-off-when-healthy.md)
- [Consistency Assumed Free When Healthy](https://banes-lab.com/records/lexicon/consistency-assumed-free-when-healthy.md)
- [PACELC Theorem / Throughput](https://banes-lab.com/records/tension/pacelc-theorem-throughput.md)

## Linked from

- [The layer topology](https://banes-lab.com/ontology/schema/the-layer-topology.md)
- [The membership](https://banes-lab.com/ontology/schema/the-membership.md)
