Learning series · 6 episodes · Senior / Staff / Principal
Consistency, Causality and Convergence
Six connected engineering decisions: wall-clock ordering, lamport logical clocks, version vectors, causal visibility, offline CRDT counters, invariant confluence.
Start series →Follow the decisions in order
- Part 1 of 6
Senior
Why can't distributed services rely on wall-clock timestamps to order events?Clock skew, NTP and jumps.
- Part 2 of 6
Staff
How do Lamport clocks establish event order without synchronized clocks?Logical time and why Lamport clocks cannot detect concurrency.
- Part 3 of 6
Staff
How would you use version vectors to detect concurrent writes?Comparing vectors, siblings and vector growth.
- Part 4 of 6
Principal
How would you design a causally consistent database across regions?Causal dependency tracking (COPS-style) and its metadata cost.
- Part 5 of 6
Staff
How would you design a distributed counter that merges after an offline period?G-Counters, PN-Counters, OR-Sets and their invariants.
- Part 6 of 6
Staff
Which distributed-system invariants require coordination?Classifying invariants and using escrow or ownership where needed.