01Overview
In 1978 Lamport proposed logical clocks: if you cannot rely on a physical clock for absolute order, define “before” from causality between events. In 1982 he, Shostak and Pease posed the Byzantine generals problem and showed how many nodes are needed to reach agreement in the presence of traitors.
The core difficulty of distributed systems is partial failure: you can never tell whether a machine is slow, dead or cut off by the network. CAP, the FLP impossibility result, idempotence and retries, timeouts and backpressure are all answers to that reality. Today microservices, global databases and edge computing put these thirty-year-old theoretical problems in front of every engineer.
02History
- 1978
Logical clocks
Causality and partial order.
- 1982
The Byzantine generals problem
Agreement with faulty nodes.
- 1985
The FLP impossibility result
The limit of consensus in asynchronous systems.
- 2000
The CAP theorem
Consistency, availability, partition tolerance.
03Core concepts
Logical clock
A counter that captures the causal order between events.
Partial failure
Some nodes fail while the rest keeps working.
Consistency model
Linearisable, sequential, eventual — contracts about what a reader may see.
04Hands-on
Do it once — it beats reading it ten times
Run two processes on one machine with an artificial network delay and an injected partition; log what each believes
05Self-check
Say it in your own words first, then open the answer. Whatever you cannot explain is what to review next.
Can you explain "Logical clock"?
A counter that captures the causal order between events.
Can you explain "Partial failure"?
Some nodes fail while the rest keeps working.
Can you explain "Consistency model"?
Linearisable, sequential, eventual — contracts about what a reader may see.
What problem did it solve, and why was there nothing better at the time?
Go back to the history section: how was this done before, and what did it cost?
If you had to build it today, how would you break it down?
Use the hands-on task above: write a plan of at most three steps before you start.
06Key people
Leslie Lamport
1941 –
Logical clocks, Paxos and LaTeX.
Barbara Liskov
1939 –
Abstract data types and the Liskov substitution principle.
07Further reading
- Time, Clocks, and the Ordering of Events in a Distributed System
- Distributed Systems: Concepts and Design