# Causality / Ordering / Distributed Time

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

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

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)
- Severity: contextual
- Scope: event, workflow, distributed state
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

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

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

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

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

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

Referenced by
[Event Ordering](https://banes-lab.com/records/arch/event-ordering.md), [Causal Dependency](https://banes-lab.com/records/arch/causal-dependency.md), [Causation ID](https://banes-lab.com/records/arch/causation-id.md), [Distributed Tracing](https://banes-lab.com/records/arch/distributed-tracing.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 });
```

### Causal Consistency

- Kind: [model](https://banes-lab.com/records/kind/model.md)
- Severity: contextual
- Scope: distributed data, events
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

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

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

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

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

Conflicts with
[Arbitrary Reordering](https://banes-lab.com/records/lex/arbitrary-reordering.md), [Read-Your-Writes Violation](https://banes-lab.com/records/arch/read-your-writes-violation.md)

Referenced by
[Vector Clocks](https://banes-lab.com/records/arch/vector-clocks.md), [Hybrid Logical Clocks](https://banes-lab.com/records/arch/hybrid-logical-clocks.md), [CRDTs](https://banes-lab.com/records/arch/crdts.md), [CAP Theorem](https://banes-lab.com/records/arch/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);
```

### Happens-Before Relationship

- Kind: [model](https://banes-lab.com/records/kind/model.md)
- Severity: contextual
- Scope: concurrency, distributed events
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

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

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

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

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

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

Referenced by
[Hybrid Logical Clocks](https://banes-lab.com/records/arch/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));
```

### Event Ordering

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Severity: contextual
- Scope: stream, queue, consumer
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

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

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

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

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

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

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

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

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);
```

### Causal Dependency

- Kind: [model](https://banes-lab.com/records/kind/model.md)
- Severity: recommended
- Scope: event, workflow, module
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

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

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

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

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

Conflicts with
[Hidden Dependency](https://banes-lab.com/records/lex/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);
```

### Dependency Graph

- Kind: [artifact](https://banes-lab.com/records/kind/artifact.md)
- Severity: mandatory
- Scope: codebase, runtime, deployment
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

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

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

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

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

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

Referenced by
[Impact Analysis](https://banes-lab.com/records/arch/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();
```

### Directed Acyclic Graph (DAG)

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Severity: mandatory for dependency architecture
- Scope: dependency graph, workflow, build
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

Requires
[Directed Dependencies](https://banes-lab.com/records/lex/directed-dependencies.md)

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

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

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

Conflicts with
[Cyclic Dependencies](https://banes-lab.com/records/lex/cyclic-dependencies.md), [Circular Dependency](https://banes-lab.com/records/arch/circular-dependency.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/lex/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");
```

### Vector Clocks

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Severity: contextual
- Scope: distributed events, replication
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

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

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

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

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

Conflicts with
[Single Global Clock Assumption](https://banes-lab.com/records/lex/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;
```

### Lamport Clocks

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Severity: contextual
- Scope: distributed events
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

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

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

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

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

Conflicts with
[Wall-Clock Ordering Assumption](https://banes-lab.com/records/lex/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)

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);
```

### Hybrid Logical Clocks

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Severity: mandatory for distributed systems
- Scope: event, distributed state, time
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

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

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

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

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

Conflicts with
[Physical-Clock-Only Ordering](https://banes-lab.com/records/lex/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);
```

### CRDTs

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Severity: contextual
- Scope: distributed state, replication, convergence
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

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

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

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

In tension with
[Metadata Overhead](https://banes-lab.com/records/lex/metadata-overhead.md), [Last-Write-Wins Overwrite](https://banes-lab.com/records/lex/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);
```

### Total-Order Broadcast

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Severity: mandatory for distributed systems
- Scope: event, distributed state, ordering
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

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

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

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

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

Conflicts with
[Per-Node Independent Ordering](https://banes-lab.com/records/lex/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);
```

### CAP Theorem

- Kind: [model](https://banes-lab.com/records/kind/model.md)
- Severity: mandatory for distributed systems
- Scope: distributed state, consistency, availability
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

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

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

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

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

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

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

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

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);
```

### PACELC Theorem

- Kind: [model](https://banes-lab.com/records/kind/model.md)
- Severity: contextual
- Scope: distributed state, consistency, latency
- Layer: [Causality Core](https://banes-lab.com/records/layer/causality-core.md)

Details

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

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

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

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

Conflicts with
[Consistency Assumed Free When Healthy](https://banes-lab.com/records/lex/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);
```

## Links to

- [principle](https://banes-lab.com/records/kind/principle.md)
- [Causality Core](https://banes-lab.com/records/layer/causality-core.md)
- [Causation Tracking](https://banes-lab.com/records/lex/causation-tracking.md)
- [Traceability](https://banes-lab.com/records/arch/traceability.md)
- [Event Ordering](https://banes-lab.com/records/arch/event-ordering.md)
- [Correct Workflow Reasoning](https://banes-lab.com/records/lex/correct-workflow-reasoning.md)
- [Parallelism](https://banes-lab.com/records/arch/parallelism.md)
- [Unordered Side Effects](https://banes-lab.com/records/lex/unordered-side-effects.md)
- [Causal Dependency](https://banes-lab.com/records/arch/causal-dependency.md)
- [Causation ID](https://banes-lab.com/records/arch/causation-id.md)
- [Distributed Tracing](https://banes-lab.com/records/arch/distributed-tracing.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/lex/causal-ordering.md)
- [Eventual Consistency Safety](https://banes-lab.com/records/lex/eventual-consistency-safety.md)
- [User-Visible Ordering Guarantees](https://banes-lab.com/records/lex/user-visible-ordering-guarantees.md)
- [Latency/Availability](https://banes-lab.com/records/lex/latency-availability.md)
- [Arbitrary Reordering](https://banes-lab.com/records/lex/arbitrary-reordering.md)
- [Read-Your-Writes Violation](https://banes-lab.com/records/arch/read-your-writes-violation.md)
- [Vector Clocks](https://banes-lab.com/records/arch/vector-clocks.md)
- [Hybrid Logical Clocks](https://banes-lab.com/records/arch/hybrid-logical-clocks.md)
- [CRDTs](https://banes-lab.com/records/arch/crdts.md)
- [CAP Theorem](https://banes-lab.com/records/arch/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/lex/ordering-semantics.md)
- [Correctness](https://banes-lab.com/records/arch/correctness.md)
- [Causal Reasoning](https://banes-lab.com/records/lex/causal-reasoning.md)
- [Race Detection](https://banes-lab.com/records/lex/race-detection.md)
- [Parallel Execution](https://banes-lab.com/records/lex/parallel-execution.md)
- [Race Conditions](https://banes-lab.com/records/lex/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/lex/ordering-key-or-sequence.md)
- [Causality](https://banes-lab.com/records/arch/causality.md)
- [Correct Stateful Processing](https://banes-lab.com/records/lex/correct-stateful-processing.md)
- [Throughput](https://banes-lab.com/records/arch/throughput.md)
- [Unordered Parallel Consumption](https://banes-lab.com/records/lex/unordered-parallel-consumption.md)
- [Total-Order Broadcast](https://banes-lab.com/records/arch/total-order-broadcast.md)
- [Event Ordering / Throughput](https://banes-lab.com/records/tension/event-ordering-throughput.md)
- [Dependency Declaration](https://banes-lab.com/records/lex/dependency-declaration.md)
- [Impact Analysis](https://banes-lab.com/records/arch/impact-analysis.md)
- [Graph Complexity](https://banes-lab.com/records/lex/graph-complexity.md)
- [Hidden Dependency](https://banes-lab.com/records/lex/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)
- [Dependency Extraction](https://banes-lab.com/records/lex/dependency-extraction.md)
- [Architecture Compliance](https://banes-lab.com/records/lex/architecture-compliance.md)
- [Cycle Detection](https://banes-lab.com/records/lex/cycle-detection.md)
- [Dynamic Loading](https://banes-lab.com/records/lex/dynamic-loading.md)
- [Hidden Dependencies](https://banes-lab.com/records/lex/hidden-dependencies.md)
- [Dependency Graph / Dynamic Loading](https://banes-lab.com/records/tension/dependency-graph-dynamic-loading.md)
- [Directed Dependencies](https://banes-lab.com/records/lex/directed-dependencies.md)
- [Layering](https://banes-lab.com/records/lex/layering.md)
- [Build Order](https://banes-lab.com/records/lex/build-order.md)
- [Topological Ordering](https://banes-lab.com/records/lex/topological-ordering.md)
- [Bidirectional Collaboration](https://banes-lab.com/records/lex/bidirectional-collaboration.md)
- [Cyclic Dependencies](https://banes-lab.com/records/lex/cyclic-dependencies.md)
- [Circular Dependency](https://banes-lab.com/records/arch/circular-dependency.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/lex/node-identity.md)
- [Version Vector](https://banes-lab.com/records/lex/version-vector.md)
- [Causal Consistency](https://banes-lab.com/records/arch/causal-consistency.md)
- [Concurrent Update Detection](https://banes-lab.com/records/lex/concurrent-update-detection.md)
- [Metadata Size](https://banes-lab.com/records/lex/metadata-size.md)
- [Single Global Clock Assumption](https://banes-lab.com/records/lex/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/lex/logical-counter.md)
- [Happens-Before Reasoning](https://banes-lab.com/records/lex/happens-before-reasoning.md)
- [Partial Ordering](https://banes-lab.com/records/lex/partial-ordering.md)
- [No Concurrent Causality Distinction](https://banes-lab.com/records/lex/no-concurrent-causality-distinction.md)
- [Wall-Clock Ordering Assumption](https://banes-lab.com/records/lex/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/arch/happens-before-relationship.md)
- [Wall-Clock-Correlated Causal Order](https://banes-lab.com/records/lex/wall-clock-correlated-causal-order.md)
- [Clock Skew](https://banes-lab.com/records/lex/clock-skew.md)
- [Physical-Clock-Only Ordering](https://banes-lab.com/records/lex/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/lex/commutative-merge.md)
- [Eventual Consistency](https://banes-lab.com/records/arch/eventual-consistency.md)
- [Conflict-Free Replica Convergence](https://banes-lab.com/records/lex/conflict-free-replica-convergence.md)
- [Metadata Overhead](https://banes-lab.com/records/lex/metadata-overhead.md)
- [Last-Write-Wins Overwrite](https://banes-lab.com/records/lex/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/arch/consensus.md)
- [Consistency](https://banes-lab.com/records/arch/consistency.md)
- [Identical Delivery Order Across Nodes](https://banes-lab.com/records/lex/identical-delivery-order-across-nodes.md)
- [Latency](https://banes-lab.com/records/arch/latency.md)
- [Per-Node Independent Ordering](https://banes-lab.com/records/lex/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/lex/network-partition-possibility.md)
- [Explicit Consistency/Availability Choice Under Partition](https://banes-lab.com/records/lex/explicit-consistency-availability-choice-under-partition.md)
- [Assumed Total Consistency And Availability](https://banes-lab.com/records/lex/assumed-total-consistency-and-availability.md)
- [PACELC Theorem](https://banes-lab.com/records/arch/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/lex/latency-consistency-trade-off-when-healthy.md)
- [Consistency Assumed Free When Healthy](https://banes-lab.com/records/lex/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)
