Alice posts 'What time is dinner?' on a shared forum. Bob reads her post and replies '6pm.' Under causal consistency, which of the following is guaranteed for any user Carol reading the forum?
ACarol sees both posts but may see Bob's reply before Alice's question
BCarol sees all posts in the exact wall-clock order they were written
CCarol always sees Alice's question before Bob's reply, because Bob's reply is causally dependent on Alice's question
DCarol may not see either post until both have propagated to all replicas
Bob's post causally depends on Alice's — he read her question before writing his reply. Under causal consistency, all processes must observe causally related operations in causal order. So Carol must see Alice's question before Bob's reply. Option A describes eventual consistency, where even causally related events can appear out of order. Option B is too strong — causal consistency does not enforce wall-clock ordering for causally unrelated events, only causal ordering.
Question 2 Multiple Choice
Dan and Eve independently post unrelated status updates on a geo-replicated social network at roughly the same time. Under causal consistency, what is guaranteed?
AAll users see Dan's post before Eve's, because geo-replicated systems serialize all updates
BAll users eventually see both posts, but different users may see them in different orders
CDan's post is always delivered before Eve's because the system respects chronological order
DNeither post is visible to anyone until both have been replicated to all data centers
Dan and Eve's posts are concurrent — neither causally depends on the other. Causal consistency only enforces ordering for causally related operations; concurrent operations can be observed in any order by different nodes. Some users may see Dan's first; others may see Eve's first. This is permitted and is part of what allows causal consistency to avoid the coordination costs of strong consistency.
Question 3 True / False
Under causal consistency, if operation A causally precedes operation B, every process in the system must observe A before B.
TTrue
FFalse
Answer: True
True. This is the defining property of causal consistency: causal ordering is preserved everywhere. If A happened-before B (using Lamport's relation — B could have been influenced by A), no process is permitted to observe B without having first observed A. The system tracks dependencies using mechanisms like vector clocks and delays delivering an update until all causally prior updates have been applied.
Question 4 True / False
Causal consistency guarantees that most nodes observe most operations in the same total order.
TTrue
FFalse
Answer: False
False. Causal consistency only guarantees that causally related operations appear in causal order. Concurrent operations (no causal relationship) can be observed in different orders by different nodes. A total order over all operations is the property of strong (linearizable) consistency, which requires global coordination. Causal consistency deliberately relaxes this requirement for concurrent events, which is what makes it achievable without global synchronization.
Question 5 Short Answer
Why can causal consistency be implemented in a geo-replicated system without global synchronization, while strong consistency cannot?
Think about your answer, then reveal below.
Model answer: Causal consistency only requires that a node delay delivering an update until all causally prior updates have been applied — it does not require coordination with all other replicas before accepting a write. Replicas track causal dependencies locally (via vector clocks or dependency metadata) and apply updates in dependency order. Strong consistency, by contrast, requires every read to reflect the globally latest write, necessitating cross-replica coordination (quorum reads/writes or consensus) that adds latency proportional to inter-datacenter round-trip times.
This is why causal consistency is attractive for geo-replicated systems: the coordination cost scales with the depth of causal chains, not with the number of concurrent operations. Systems like COPS implement causal consistency across data centers while maintaining low latency for the common case where operations are causally independent.