Skip to main content

The Learning Continues

Adapted from: Alex Xu, System Design Interview – An Insider's Guide (2020), Chapter 16 — reorganized and annotated for this course.

Good system design comes from years of accumulated knowledge. The fastest shortcut is to study real architectures: how actual companies solved actual scaling problems. As you read, look for two things:

  • Shared principles. The same ideas keep recurring: caching, replication, sharding, queues, denormalization, and fanout.
  • The underlying technologies. For each tool a write-up mentions, ask what problem it solves and why it was chosen over the alternatives.

The original source materials sometimes used short links (goo.gl). Below, each one has been replaced with its resolved destination, and each reading is tagged with the lesson in this course that it extends.


How to Read an Architecture Write-Up​

Apply the same four-step framework you'd use in an interview, in reverse:

  1. Scope: what problem and scale were they solving (users, QPS, data size)?
  2. High-level design: what are the main components and data flows?
  3. Deep dive: which one or two components were the hard part, and what trade-off did they choose?
  4. Wrap-up: what broke later, and what would they change? Real write-ups are most valuable on this point.

Keep a running list of "problem → technique" pairs. For example: hot keys → consistent hashing plus replication of hot data. Celebrity fanout → hybrid push/pull. Stale caches → lease-based invalidation. That list is your toolbox in interviews.


Real-World Systems​

Facebook​

ReadingExtends
Facebook Timeline: Brought To You By The Power Of DenormalizationNews feed, sharding and denormalization
Scale at FacebookScale from zero to millions
Building Timeline: Scaling up to hold your life storyNews feed
Erlang at Facebook (Facebook Chat)Chat system
Facebook ChatChat system
Finding a needle in Haystack: Facebook's photo storageGoogle Drive (blob storage), YouTube
Serving Facebook Multifeed: Efficiency, performance gains through redesignNews feed
Scaling Memcache at FacebookCache tier and consistency
TAO: Facebook's Distributed Data Store for the Social GraphNews feed (social graph cache)

Amazon​

ReadingExtends
Amazon ArchitectureScale from zero to millions
Dynamo: Amazon's Highly Available Key-value StoreKey-value store, consistent hashing

Netflix​

ReadingExtends
A 360 Degree View Of The Entire Netflix StackYouTube
It's All A/Bout Testing: The Netflix Experimentation PlatformMetrics and analytics (Lesson 1)
Netflix Recommendations: Beyond the 5 stars (Part 1)Ranking (beyond the reverse-chronological news feed)
Netflix Recommendations: Beyond the 5 stars (Part 2)Ranking

Google and YouTube​

ReadingExtends
Google ArchitectureWeb crawler
The Google File SystemGoogle Drive
Differential Synchronization (Google Docs)Google Drive (sync conflicts)
YouTube ArchitectureYouTube
Seattle Conference on Scalability: YouTube ScalabilityYouTube
Bigtable: A Distributed Storage System for Structured DataKey-value store (SSTables, write path)

Twitter​

ReadingExtends
The Architecture Twitter Uses To Deal With 150M Active UsersNews feed (fanout)
Scaling Twitter: Making Twitter 10000 Percent FasterCaching
Announcing SnowflakeUnique ID generator
Timelines at ScaleNews feed (hybrid push/pull)

Others​

ReadingExtends
Instagram Architecture: 14 Million Users, Terabytes Of Photos, 100s Of Instances, Dozens Of TechnologiesScale from zero to millions, unique IDs
How Uber Scales Their Real-Time Market PlatformConsistent hashing, gossip (key-value store)
Scaling PinterestSharding
Pinterest Architecture UpdateScale from zero to millions
A Brief History of Scaling LinkedInScale from zero to millions
Flickr ArchitectureUnique IDs (ticket servers)
How We've Scaled DropboxGoogle Drive
The WhatsApp Architecture Facebook Bought For $19 BillionChat system

Check: map readings to concepts​

Quiz

Which reading goes deeper on…

1 / 4

You want the original source of the vector clocks, sloppy quorums, and hinted handoff from Lesson 6. Which reading?

Pick an answer to see if you are right.


Company Engineering Blogs​

If you're interviewing with a company, read its engineering blog. You'll learn the technologies and systems it actually uses, and you'll be able to ask sharper questions. Reading blogs regularly is also one of the best habits for growing as an engineer in general.

CompanyBlog
Airbnbmedium.com/airbnb-engineering
Amazondeveloper.amazon.com/blogs
Asanablog.asana.com/category/eng
Atlassiandeveloper.atlassian.com/blog
BitTorrentengineering.bittorrent.com
Clouderablog.cloudera.com
Dockerblog.docker.com
Dropboxblogs.dropbox.com/tech
eBayebaytechblog.com
Facebookcode.facebook.com/posts
GitHubgithubengineering.com
Googledevelopers.googleblog.com
Grouponengineering.groupon.com
High Scalabilityhighscalability.com
Instacarttech.instacart.com
Instagramengineering.instagram.com
LinkedInengineering.linkedin.com/blog
Mixpanelmixpanel.com/blog
Netflixmedium.com/netflix-techblog
Nextdoorengblog.nextdoor.com
PayPalpaypal-engineering.com
Pinterestengineering.pinterest.com
Quoraengineering.quora.com
Redditredditblog.com
Salesforcedeveloper.salesforce.com/blogs/engineering
Shopifyengineering.shopify.com
Slackslack.engineering
SoundClouddevelopers.soundcloud.com/blog
Spotifylabs.spotify.com
Stripestripe.com/blog/engineering
System Design Primergithub.com/donnemartin/system-design-primer
Twitterblog.twitter.com/engineering
Thumbtackthumbtack.com/engineering
Ubereng.uber.com
Yahooyahooeng.tumblr.com
Yelpengineeringblog.yelp.com
Zoommedium.com/zoom-developer-blog

Some of these blogs have moved since the list was compiled (Facebook's is now Engineering at Meta, and Twitter's is now X Engineering). If a link is dead, search for the company name plus "engineering blog".


Where to Go Next in This Course​

The rest of the Scalable Systems section goes deeper into the foundations these interview designs rest on:

Previous lesson: Design Google Drive.