system-design

Foundational Papers

Behind every concept in this repo is a paper where someone first worked it out. You don’t need to read papers to pass interviews — but reading a few of the classics gives you a depth and confidence nothing else does, and demystifies the systems you’ve been studying. This chapter is a curated, approachable path into the seminal papers, with what each one gave the world.

Time to read: ~11 minutes; the papers themselves are a deeper journey


Do you need to read papers?

🚨 No — not for interviews. This repo and practice are enough. But reading a handful of these:

How to read a paper approachably: don’t grind every equation. Read the abstract, intro, and the design/ architecture sections; skim proofs. Use Adrian Colyer’s The Morning Paper summaries and lecture notes (MIT 6.824 covers many of these) to ease in. 🚨 Read the paper for the idea, not every detail.


The essential papers, by theme

Distributed data stores

Consensus & coordination

Streaming & logs

Theory & consistency

Data structures & scale


A suggested path (if you want to start)

flowchart LR
    A["The Log" essay<br/>accessible] --> B[Raft<br/>understandable consensus]
    B --> C[Dynamo<br/>the interview classic]
    C --> D[Lamport clocks<br/>short & profound]
    D --> E[Pick by interest:<br/>Spanner, Bigtable,<br/>Dataflow, GFS...]

🚨 Start with the two most approachable and interview-relevant: Jay Kreps’s “The Log” essay and the Raft paper. Then Dynamo (the most interview-cited). After those, follow your interest. Use MIT 6.824 and The Morning Paper as guides so you’re never reading alone.


🛠️ Try it

1. Read “The Log” essay this week. It’s accessible, essay-style (not a formal paper), and it will change how you think about data systems — then reread the message queue case study with fresh eyes.

2. Read the Raft paper with the visualization. Pair the paper with the interactive Raft visualization (raft.github.io) and MIT 6.824’s lecture — consensus finally clicks when you watch it happen.

3. Read Dynamo and map it to the case study. Read the Dynamo paper, then line each mechanism (consistent hashing, quorums, hinted handoff, vector clocks) up against the KV store case study. You’ll understand both far better.


Further reading