a software engineering series
Distributed computing,
Distributed computing,
from first principles.
Thirteen episodes, one running example: a URL shortener evolved step by step from a single process into a fully distributed system.
Episodes
Each episode is 15–25 minutes, with a written problem, a coding exercise and a quiz.
- 01 What Is a Distributed System? single machine vs. distributed, and the hidden network hops
- 02 Partial Failure and the Fallacies of Distributed Computing the 8 fallacies, partial failure soon
- 03 CAP Theorem and Why You Can't Have It All C, A, P tradeoffs, PACELC soon
- 04 There Is No "Now" - Clocks in Distributed Systems clock drift, NTP soon
- 05 Logical Clocks - Lamport Timestamps and Vector Clocks happens-before, causality soon
- 06 State Replication and Consistency Models strong / eventual / causal consistency soon
- 07 The Consensus Problem agreement, validity, termination, FLP impossibility soon
- 08 Raft Part 1 - Leader Election terms, elections, heartbeats soon
- 09 Raft Part 2 - Log Replication and Commit log replication, commit index, safety soon
- 10 Replication Strategies in Practice primary-backup, quorum, leaderless soon
- 11 Distributed Databases - How Theory Becomes Practice sharding, real-system case study soon
- 12 Message Queues and Event-Driven Systems delivery guarantees, idempotency soon
- 13 Capstone - Design a Distributed System From Scratch synthesis design exercise soon
The running example
The whole season uses one example instead of a new system each episode: a URL shortener. It starts as a dictionary in one process, and by the capstone it's sharded and replicated across multiple data centers. Each concept, clocks, consensus, quorums is introduced at the point where the shortener needs it to keep working.
yes, we spend 13 episodes on a link shortener. by the end it's a
distributed system and you'll know exactly why.
More about the series