Skip to content
The Architecture Chronicles

How Systems Learned to Scale

Every system design pattern was invented because something broke in production. This is the story of the failures, the papers, and the engineers who turned disaster into architecture.

From mainframes to microservices, from single databases to planet-scale distributed systems. 60 years of hard-won engineering wisdom, connected to every lab level you'll ever build.

8 chapters
43 breakthroughs
~64 min total read
1965 - 2025
Chapter 01960s - 1995

The Mainframe Age

When one machine had to do everything

The driving question:“How do you build reliable software when you only have one computer?”
7 min read5 milestones
1965MIT, Bell Labs & GE

Before Multics, using a computer meant physically feeding punch cards into a room-sized machine and waiting hours for output. Multics introduced timesharing - splitting one computer's attention across multiple users, each convinced they had the machine to themselves. The project was overly ambitious and Bell Labs eventually quit. But Ken Thompson and Dennis Ritchie took the ideas and built something simpler: Unix. Every server you've ever SSH'd into descends from that decision to leave.

Read the deep dive on our blog

Key Insight: The very first "distributed systems" problem was splitting one machine across multiple users. Multi-tenancy isn't a cloud invention - it's older than the internet itself.

1970Edgar F. Codd (IBM)

Before Codd, every database was a nightmare. Data was stored in hierarchical trees or network graphs, and every application had to know the exact physical layout of the data on disk. If you reorganized the storage, every program broke. Codd proposed something radical: separate the logical structure of data from its physical storage. Define data as relations (tables), and let a query language figure out how to retrieve it. IBM ignored the paper for years. Larry Ellison read it and built Oracle. The rest is a $300 billion industry.

Read the deep dive on our blog

Key Insight: Separating the "what" from the "how" is the most powerful idea in computer science. Every abstraction layer you build in system design - from APIs to caching - follows this exact principle.

1981Jim Gray (Microsoft Research)
1989Tim Berners-Lee (CERN)
1995
Connection to Lab

Levels 1 and 2 are the mainframe era in miniature. You start with a CDN serving static files, then add a load balancer, web servers, and a database. The same architecture that powered the early web - and the same architecture you'll spend the rest of the lab learning to scale beyond.

The Static AppThe 3-Tier Web App
Chapter 11998 - 2006

The Distributed Dream

When Google proved cheap hardware beats expensive hardware

The driving question:“How do you split work across thousands of machines without losing data?”
9 min read6 milestones
1998Larry Page & Sergey Brin

Two Stanford PhD students wanted to index the entire web. They couldn't afford enterprise servers, so they bought cheap PCs from Fry's Electronics and duct-taped them into a rack. Their key insight: if individual machines are unreliable, design the software to handle failure. Don't prevent crashes - expect them. This philosophy became the foundation of modern distributed systems. Google didn't succeed because it had better hardware. It succeeded because it assumed hardware would fail and built software smart enough to survive it.

Read the deep dive on our blog

Key Insight: Design for failure, not against it. This principle shows up in every system design interview. Redundancy, replication, health checks, failover - all descend from Google's original bet that cheap hardware plus smart software wins.

2000Eric Brewer (UC Berkeley)

At the ACM Symposium on Principles of Distributed Computing, Eric Brewer dropped a bomb: in a distributed system, you can only guarantee two out of three properties - Consistency (every read gets the latest write), Availability (every request gets a response), and Partition tolerance (the system works even when network links fail). Since network partitions are inevitable in the real world, you're really choosing between consistency and availability. This conjecture, proven as a theorem by Gilbert and Lynch in 2002, became the most debated result in distributed systems. Every database, every cache, every queue you design makes a CAP trade-off - whether you realize it or not.

Read the deep dive on our blog

Key Insight: CAP isn't about choosing two out of three - it's about what happens during a network partition. Normal operation can have all three. The interview question is: when your network splits, does your system return stale data (AP) or refuse to answer (CP)?

2003Ghemawat, Gobioff & Leung (Google)
2004Dean & Ghemawat (Google)
2006Chang et al. (Google)
2006Mike Burrows (Google)
Connection to Lab

When you build a Key-Value Store in Level 6, you're implementing the ideas from GFS and BigTable. Consistent Hashing in Level 7 solves the same partition assignment problem Google fought with. These aren't academic exercises - they're the exact primitives Google invented to index the web.

Key-Value StoreConsistent HashingUnique ID Generator
Chapter 22004 - 2012

The Amazon Effect

When e-commerce rewrote the rules of databases

The driving question:“What if being available matters more than being consistent?”
8 min read5 milestones
2004Werner Vogels (Amazon CTO)

Werner Vogels published a stark admission: Amazon's monolithic Oracle database was killing them. Every Black Friday, the single database became a bottleneck. They couldn't scale reads and writes independently. Schema migrations required downtime. And the licensing costs were astronomical. Amazon started breaking the monolith into services - each service owning its own data store. This wasn't microservices yet (that term wouldn't exist for years), but it was the first move. The lesson was painful and expensive: tight coupling between services through a shared database creates a system where one team's mistake can take down the entire platform.

Read the deep dive on our blog

Key Insight: Shared databases create hidden coupling. The moment two services read from the same table, they're coupled - even if their code never imports each other. Data ownership is the hardest part of service decomposition.

2007DeCandia et al. (Amazon)

This paper changed databases forever. Amazon needed a key-value store where the shopping cart would ALWAYS work - even during network failures, even during data center outages. Their answer was Dynamo: an "always-writeable" store that sacrificed consistency for availability. The techniques were brilliant and ruthless. Consistent hashing for partition assignment. Vector clocks for conflict detection. Sloppy quorums for availability during failures. Hinted handoff so writes reach their destination eventually. And the killer feature: tunable consistency via read/write quorum sizes (R + W > N for strong consistency, or lower values for better availability). Every NoSQL database born in the next decade - Cassandra, Riak, Voldemort - was essentially "what if we took Dynamo's ideas and..."

Read the deep dive on our blog

Key Insight: The Dynamo paper is the single most important paper for system design interviews. Consistent hashing, quorum reads/writes, vector clocks, gossip protocol, hinted handoff - if you understand Dynamo, you understand half of distributed databases.

2008Avinash Lakshman & Prashant Malik (Facebook)
2009
2012Eric Brewer
Connection to Lab

The URL Shortener's read-heavy caching, the Rate Limiter's distributed state, and the Distributed Cache level all trace directly to Dynamo's ideas. When you configure replication factor and consistency levels, you're making the same trade-offs Amazon made for its shopping cart.

URL ShortenerRate LimiterNotification SystemDistributed Cache
Chapter 32009 - 2017

The Real-Time Revolution

When batch processing wasn't fast enough

The driving question:“Can we process data as it arrives instead of waiting until tomorrow?”
8 min read5 milestones
2010Jay Kreps (LinkedIn)

Jay Kreps was building LinkedIn's data infrastructure when he realized something profound: every data problem at scale is really a log problem. A log is just an ordered, append-only sequence of records. Databases use logs (write-ahead logs). Replication uses logs (binlog). Event sourcing uses logs. If you put a durable, distributed log at the center of your architecture, every system can consume events at its own pace. Slow consumers don't block fast ones. New consumers can replay from the beginning. The log becomes the single source of truth. This idea became the intellectual foundation for Kafka and the entire stream processing movement.

Read the deep dive on our blog

Key Insight: The append-only log is the most underrated data structure in system design. It solves replication, event sourcing, audit trails, and inter-service communication. If an interviewer asks how services stay in sync, the answer usually involves a log.

2011Kreps, Narkhede & Rao (LinkedIn)

LinkedIn needed to stream hundreds of billions of events per day between dozens of internal systems. Traditional message queues (RabbitMQ, ActiveMQ) couldn't keep up - they were designed for point-to-point messaging, not planet-scale event streaming. Kreps built Kafka around one idea: a distributed commit log. Producers append to topic partitions. Consumers read at their own offset. Messages are persisted to disk (sequential writes are fast!) and replicated for durability. Unlike traditional queues, messages aren't deleted after consumption - they're retained by time or size. This meant multiple consumers could independently process the same stream. The result was a messaging system that could handle millions of events per second with end-to-end latency under 10ms. Today, over 80% of Fortune 100 companies run Kafka.

Read the deep dive on our blog

Key Insight: Kafka isn't a message queue - it's a distributed commit log. This distinction matters in interviews. Queues deliver messages once and delete them. Logs retain messages and let consumers rewind. That's why Kafka can power both real-time processing AND batch analytics from the same stream.

2014Nathan Marz
2014
2015TU Berlin
Connection to Lab

The News Feed uses fan-out patterns that Kafka's partitioned topics made possible. The Chat System relies on WebSocket connections and message queues for delivery guarantees. And Level 22 is literally "design Kafka" - you're building the system that launched the streaming revolution.

News Feed SystemChat System (WhatsApp)Distributed Message Queue
Chapter 42010 - 2018

The Microservices Migration

When Netflix bet the company on breaking things apart

The driving question:“How do you split a monolith without creating distributed chaos?”
9 min read7 milestones
2010Netflix Engineering

On August 25, 2008, Netflix's monolithic database went down for three days. Three days. No DVDs shipped. No website. The postmortem was brutal: a single corrupted database table took down the entire company. Netflix decided that this would never happen again. They spent the next seven years migrating from a monolithic Java application and Oracle database in their own data center to hundreds of microservices running on AWS. Every piece of the system was decoupled: the API gateway (Zuul), service discovery (Eureka), circuit breakers (Hystrix), configuration management (Archaius), and more. They open-sourced nearly all of it. The "Netflix OSS" stack became the blueprint for microservices architecture. It cost them millions of engineering hours, but Netflix went from shipping DVDs to streaming to 200 million subscribers - and they never had another three-day outage.

Read the deep dive on our blog

Key Insight: Netflix didn't adopt microservices because it was trendy. They adopted it because a monolith nearly killed the company. The best architecture decisions are always driven by specific failures, not abstract best practices.

2011Adam Wiggins (Heroku)

As cloud platforms emerged, developers kept making the same mistakes: storing state in the application server, hard-coding configuration, treating logs as files instead of streams. Wiggins distilled years of Heroku's operational experience into twelve principles for building cloud-native apps. Store config in environment variables, not code. Treat backing services as attached resources. Keep build, release, and run stages separate. Export services via port binding. Scale out via processes, not threads. These seem obvious now, but in 2011 they were genuinely radical. The Twelve-Factor methodology became the philosophical foundation for Docker, Kubernetes, and the entire cloud-native movement.

Read the deep dive on our blog

Key Insight: Twelve-Factor principles come up constantly in system design discussions. "Where does the config live?" "How do you scale?" "How do you handle logs?" These aren't implementation details - they're architectural decisions that define how your system operates.

2012Netflix Engineering
2013Solomon Hykes (dotCloud)
2014Google (Borg heritage)
2015Netflix (Hystrix)
2017Google, IBM & Lyft
Connection to Lab

Hotel Reservation uses the saga pattern for distributed transactions across microservices. Uber's architecture is a masterclass in microservice communication. DoorDash combines real-time matching with multi-service coordination. These levels don't just use microservices - they teach you why every Netflix pattern exists.

Hotel ReservationRide-Sharing (Uber)Food Delivery (DoorDash)Event-Driven Microservices
Chapter 51996 - 2020

The Data at Scale Wars

When every company became a data company

The driving question:“How do you search, index, and analyze petabytes without waiting overnight?”
8 min read5 milestones
1996Patrick O'Neil et al.

Traditional databases use B-trees for indexing: great for reads, terrible for writes (every write updates the index in-place on disk, causing random I/O). O'Neil proposed an alternative: buffer writes in memory, then flush them to disk in large sequential batches. Merge the on-disk segments periodically in the background. Sequential writes are 100-1000x faster than random writes on spinning disks. The trade-off is reads - you might need to check multiple segments. Bloom filters and block indexes mitigate this. LSM-trees became the engine under nearly every modern write-heavy database: Cassandra, HBase, RocksDB, LevelDB, InfluxDB. When you hear "write-optimized storage engine," it's almost always an LSM-tree underneath.

Read the deep dive on our blog

Key Insight: B-trees optimize for reads; LSM-trees optimize for writes. This choice cascades through your entire architecture. If your interviewer asks about a write-heavy workload (metrics, logs, IoT sensors), LSM-tree storage should be part of your answer.

2010Shay Banon

Shay Banon built Elasticsearch because he wanted to help his wife find recipes. The side project became the world's most popular search engine (after Google). Elasticsearch made Lucene's inverted index accessible via a REST API with automatic sharding, replication, and near-real-time indexing. An inverted index maps words to documents (the reverse of a normal index that maps documents to words). Search for "distributed systems" and the index instantly returns every document containing those terms, ranked by relevance using TF-IDF or BM25. Combined with Logstash (data ingestion) and Kibana (visualization), the "ELK Stack" became the standard for log aggregation, full-text search, and analytics. Every "design a search system" interview question is fundamentally asking you to build a simplified Elasticsearch.

Read the deep dive on our blog

Key Insight: The inverted index is the data structure behind search. Regular indexes map keys to values; inverted indexes map values to keys. Understanding this inversion is the difference between a mediocre and excellent search system design.

2012Corbett et al. (Google)
2014Matei Zaharia (UC Berkeley / Databricks)
2017
Connection to Lab

The Web Search Engine level is an exercise in inverted indexes and ranking. The Monitoring System pushes you into LSM-tree territory with 100M data points per second. Log Aggregation is Elasticsearch at scale. And the Multi-Region Database level is Spanner in miniature - global consistency with the clock problem.

Web Search EngineMonitoring System (Datadog)Log Aggregation (ELK)Multi-Region Database
Chapter 61998 - 2023

The Edge & Global Scale

When latency became the final boss

The driving question:“How do you serve users on every continent in under 50ms?”
7 min read5 milestones
1998Tom Leighton & Danny Lewin (MIT)

The web had a physics problem: the speed of light. A user in Tokyo requesting a page from a server in Boston faces at least 200ms of round-trip latency - just from the signal traveling through fiber. Multiply that by multiple HTTP requests, TCP handshakes, and TLS negotiation, and page loads hit seconds. Leighton and Lewin (both MIT applied math professors) solved this by placing copies of content on servers distributed around the world - edge servers. A user in Tokyo gets served from a node in Tokyo. Akamai became the world's first major CDN. Danny Lewin was tragically killed on American Airlines Flight 11 on September 11, 2001. The company he co-founded now serves 30% of all web traffic. Every time you design a system with a CDN layer, you're building on Lewin's work.

Read the deep dive on our blog

Key Insight: CDNs don't just cache static files anymore. Modern CDNs cache API responses, run edge functions, and even do A/B testing at the edge. When an interviewer says "optimize for latency," CDN is almost always the first layer to add.

2011Marc Shapiro et al. (INRIA)

The hardest problem in multi-region systems: two users edit the same document in different regions simultaneously. Traditional approaches use locks (kills availability) or last-writer-wins (loses data). CRDTs solved this mathematically. They're data structures designed so that concurrent updates from any number of replicas will automatically converge to the same state - without coordination, without conflicts, without data loss. A G-Counter (grow-only counter) tracks increments per replica and sums them. An OR-Set (observed-remove set) tracks additions and removals without conflicts. The math guarantees convergence because the operations are commutative, associative, and idempotent. CRDTs power collaborative editing (Google Docs, Figma), shopping carts, and like counters across regions. They're the theoretical foundation for real-time collaboration at global scale.

Read the deep dive on our blog

Key Insight: CRDTs eliminate the coordination overhead of distributed consensus for certain data types. In interviews about collaborative editing or multi-region counters, CRDTs are the correct answer. They trade memory (every replica tracks its own state) for availability and convergence.

2018Cloudflare Workers, AWS Lambda@Edge
2020
2023
Connection to Lab

Level 42 asks you to design a CDN from scratch - origin shielding, cache invalidation, edge caching policies. Level 66 goes further into edge computing and global traffic management. These levels are where latency optimization meets the real-world physics of the speed of light.

CDN Design (CloudFront)Global CDN & Edge Computing
Chapter 72003 - Present

The Reliability Imperative

When downtime stopped being acceptable

The driving question:“How do you build systems that survive their own failures?”
8 min read5 milestones
2007James Hamilton (Amazon/Microsoft)

James Hamilton wrote what many consider the single best paper on operating large-scale systems. Not about algorithms or data structures - about operations. Expect failures. Automate everything. Design for zero-downtime deployments. Keep things simple enough that on-call engineers at 3 AM can understand them. Test the exact binary you ship to production. Don't build features that can't be monitored. Every rule came from a real outage, a real 3 AM page, a real customer impact. The paper reads like a checklist of hard-won scars from running services at Microsoft and later Amazon scale. It's been cited thousands of times and remains required reading at multiple tech companies.

Read the deep dive on our blog

Key Insight: Operational excellence isn't glamorous, but it's what separates systems that work in demos from systems that work at scale. In interviews, showing that you think about deployment, monitoring, and on-call experience signals you've actually run things in production.

2016Betsy Beyer, Chris Jones et al. (Google)

Google published their internal playbook for keeping the world's largest systems running. Site Reliability Engineering formalized concepts that transformed the industry. Error budgets: if your SLO is 99.9% uptime, you have 43.8 minutes of downtime per month to "spend" on deployments and experiments. SLIs, SLOs, and SLAs: the trinity of reliability measurement. Toil: the operational work that's manual, repetitive, automatable, and scales linearly with service growth - and the mandate to eliminate it. The 50% rule: SREs should spend at most 50% of their time on operational work, the rest on engineering to reduce future toil. These concepts gave teams a shared language for reliability. "What's your error budget?" became a question every engineering leader asks.

Read the deep dive on our blog

Key Insight: Error budgets change how you think about reliability. 100% uptime is impossible and undesirable - you'd never deploy anything. The question isn't "how do we prevent all failures?" but "how much failure can we afford, and where do we spend it?"

2017
2018
2020
Connection to Lab

The Monitoring System level has you ingesting 100M data points per second with alert evaluation. Feature Flags is a lesson in real-time propagation and isolation. Distributed Tracing brings all three observability pillars together. These levels teach you that building a system is only half the job - operating it is the other half.

Monitoring System (Datadog)Feature Flags ServiceDistributed Tracing & Observability

The Full Picture

How every chapter connects to what you build in the lab.

1960s-1995
The monolith era: one server, one database, and prayers for uptime
1998-2006
Google proved cheap hardware + smart software beats expensive hardware
2004-2012
Amazon chose availability over consistency and changed databases forever
2009-2017
Real-time processing replaced overnight batch jobs
2010-2018
Netflix broke everything apart and made it stronger
1996-2020
Search, monitoring, and analytics demanded new storage engines
1998-2023
Edge computing and CDNs won the war against latency
2003-Now
Reliability went from "nice to have" to "non-negotiable"

You know the history. Now architect the future.

Every breakthrough you just read about is a design challenge waiting for you in the HLD Lab. Start building systems that stand on the shoulders of 60 years of distributed systems engineering.

Discussion0

Join the Discussion

Sign in to leave comments, reply to others, or like insights.

Sign In to ScaleDojo

No comments yet. Be the first to start the thread!

Enjoyed this content?

Your support keeps us creating free resources

We put a lot of hours into researching and writing these guides. If it helped you, consider buying us a coffee. Every bit goes toward keeping ScaleDojo's content free and growing.

$

One-time payment via Stripe. ScaleDojo account required.

ScaleDojo Logo
Initializing ScaleDojo