Outline: (1) why distribute and the three root problems; (2) fallacies, partial failure, timeouts and idempotency; (3) logical clocks; (4) CAP and PACELC; (5) consensus: FLP, failure models, majorities, Raft; (6) quorums, eventual consistency and CRDTs.
Let the class answer first. These three facts are the root of every topic in this class.
Ask for a store example of each: five 40 ms calls in sequence, a pod rescheduled with a new IP...
Quick check: with 7 nodes, how many can fail? (3.)
Show raft.github.io: stop the leader and watch the election.