A topic in the Open Knowledge Graph — a free, open map of 15,290 topics and the order to learn them in.

Causal Consistency

Research Depth 100 in the knowledge graph ☐ I know this ☆ Set as goal
5topics build on this
370prerequisites beneath it
See this on the map →
Consistency Models in Distributed SystemsHappened-Before Relation and Causal Ordering+2 more→→CRDTs: Conflict-Free Replicated Data TypesStrong Eventual Consistency
causal-consistency consistency causality

Core Idea

Causal consistency is stronger than eventual consistency but weaker than strong consistency: it respects causal dependencies (if write A happened-before write B, all processes see A before B), but concurrent writes can be observed in different orders. This model avoids anomalies like receiving replies before questions while maintaining good availability.

Explainer

From your study of consistency models, you know the spectrum ranges from strong consistency (every read sees the latest write, but at the cost of availability and latency) to eventual consistency (all replicas converge eventually, but reads can return stale or out-of-order data). Causal consistency sits in between, enforcing a specific constraint: if two operations are causally related — meaning one could have influenced the other — then every process in the system must observe them in causal order. Operations that are not causally related (concurrent operations) can be observed in any order.

The intuition comes from everyday conversation. If Alice posts a question and Bob posts an answer, anyone reading the forum should see the question before the answer — because the answer was caused by the question. But if Alice and Carol independently post unrelated messages at roughly the same time, it does not matter whether a reader sees Alice's or Carol's message first. Causal consistency captures exactly this: it preserves the ordering that humans intuitively expect while relaxing ordering constraints on truly independent events.

From your prerequisite on causal ordering, you know that happened-before relationships (Lamport's relation) define which events are causally connected. Causal consistency uses this same structure: if write A happened-before write B (because B read the value written by A, or because B followed A at the same process), then all processes must see A before B. The system tracks these dependencies using mechanisms like vector clocks or explicit dependency lists. When a replica receives an update, it checks whether all causally prior updates have already been applied; if not, it delays the update until the dependencies are satisfied.

The practical appeal of causal consistency is that it avoids the most jarring anomalies of eventual consistency without paying the steep coordination cost of strong consistency. Under eventual consistency, you might see a reply to a message before seeing the original message, or see someone's profile picture change before seeing the post that announced the change. Causal consistency eliminates these anomalies. Meanwhile, unlike strong consistency, it does not require global synchronization — replicas can accept writes independently and propagate them asynchronously, as long as causal dependencies are tracked and respected. This makes it a popular choice for geo-replicated systems where latency between data centers makes strong consistency impractical.

Practice Questions 5 questions

Prerequisite Chain

Understanding Zero → The Number Zero → Counting to Five → Counting to 10 → Counting to 20 → Counting a Set of Objects Up to 20 → Cardinality: The Last Number Counted → Matching Numerals to Quantities → Subitizing Small Quantities → Addition Within 10 → Number Bonds to 10 → Addition Within 20 → Doubles and Near Doubles → Doubles Facts Within 10 → Near Doubles Facts Within 20 → Mental Math Strategies for Addition → Mental Math: Adding and Subtracting Tens → Addition Within 100 → Repeated Addition as Multiplication → Multiplication as Equal Groups → Multiplication: Arrays → Basic Multiplication Facts (0s, 1s, 2s, 5s, 10s) → Multiplication Facts Within 100 → Division as Equal Sharing → Division as Grouping (Measurement Division) → Division: Grouping (Repeated Subtraction) Model → Division: Fair Sharing Model → Division as Equal Sharing → Division as Grouping → Basic Division Facts → Division Facts Within 100 → Multiplication and Division Fact Families → Relationship Between Multiplication and Division → Division Facts as Inverse of Multiplication → Remainders and Quotients in Division → Division Word Problems → Multi-Step Word Problems → Solving Multi-Step Word Problems → Multiplication Word Problems → Division Word Problems → Introduction to Long Division → Factors and Multiples → Prime and Composite Numbers → Equivalent Fractions → Relating Fractions and Decimals → Decimal Place Value → Integers and the Number Line → Comparing and Ordering Integers → Absolute Value → Adding Integers → Subtracting Integers → Multiplying Integers → Introduction to Exponents → Order of Operations → Integer Order of Operations → Variable Expressions → The Distributive Property → Variables and Expressions Review → Introduction to Polynomials → Adding and Subtracting Polynomials → Multiplying Polynomials → Factorial → Permutations → Combinations → Counting Principles: Addition and Multiplication Rules → Introduction to Graph Theory → Propositional Logic Foundations → Logical Equivalences → Boolean Algebra → Boolean Type and Truth Values → Comparison Operators and Boolean Tests → Logical Operators and Boolean Algebra → Boolean Algebra and Fundamental Laws → Logic Gates Fundamentals → Implementing Boolean Functions with Gates → Karnaugh Map Simplification → Combinational Circuit Design → Flip-Flops and Latches → Binary Counters: Design and Analysis → Binary Arithmetic → Fixed-Point Number Representation → Two's Complement Representation → Overflow and Underflow Detection → Binary Adders: Half-Adders and Full-Adders → Full Adder and Carry Propagation → Carry Lookahead Adder Design → Half Adder Circuit Design → Multiplication Circuit Design → Sequential Circuit Design → Registers and Register Files → Instruction Set Architecture (ISA) → Kernel Architecture and OS Structure → System Calls and User/Kernel Mode → Processes and the Process Control Block → Logical Clocks and Event Ordering → Vector Clocks and Capturing Causality → Happened-Before Relation and Causal Ordering → Consistency Models in Distributed Systems → Read-After-Write Consistency → Sequential Consistency → Causal Consistency

Longest path: 101 steps · 370 total prerequisite topics

Prerequisites (4)

Leads To (2)