System Design Primer
by donnemartin · donnemartin/system-design-primer
Learn to design large-scale systems; interview prep.
Design a random ID generation system · blog.twitter.com github.com
Design a key-value store like Redis · codecapsule.com allthingsdistributed.com
Design the Facebook chat function · erlang-factory.com facebook.com
Design the Facebook timeline function · facebook.com highscalability.com
Design a graph search function like Facebook's · facebook.com facebook.com facebook.com
Design a system that serves data from multiple data centers
Design a picture sharing system like Instagram · highscalability.com highscalability.com
Design an online multiplayer card game · indieflashblog.com buildnewgames.com
Design a Stock Exchange (like NASDAQ or Binance) · Jane Street Golang Implementation Go Implementation
Design a trending topic system like Twitter's · michael-noll.com snikolov .wordpress.com
Design a search engine like Google · queue.acm.org stackexchange.com ardendertat.com stanford.edu
Design a garbage collection system · stuffwithstuff.com washington.edu
Instagram · 14 million users, terabytes of photos What powers Instagram
Netflix · A 360 Degree View Of The Entire Netflix Stack Netflix: What Happens When You Press Play?
Pinterest · From 0 To 10s of billions of page views a month 18 million visitors, 10x growth, 12 employees
Uber · How Uber scales their real-time market platform Lessons Learned From Scaling Uber To 2000 Engineers, 1000 Services, And 8000 Git Repositories
Twitter · Making Twitter 10000 percent faster Storing 250 million tweets a day using MySQL 150M active users, 300K QPS, a 22 MB/S firehose Timelines at scale Big and small data at Twitter Operations at Twitter: scaling beyond 100 million users How Twitter Handles 3,000 Images Per Second
Facebook · Scaling memcached at Facebook TAO: Facebook’s distributed data store for the social graph Facebook’s photo storage How Facebook Live Streams To 800,000 Simultaneous Viewers
, preventing users from accessing websites such as Twitter without knowing Twitter's IP address(es).
File system · Hadoop File System (HDFS) - Open source implementation of GFS
Data store · Bigtable - Distributed column-oriented database from Google
File system · Google File System (GFS) - Distributed file system
Data store · Spanner - Globally-distributed database from Google
Misc · Chubby - Lock service for loosely-coupled distributed systems from Google
Misc · Dapper - Distributed systems tracing infrastructure
Data processing · MapReduce - Distributed data processing from Google
Data processing · Spark - Distributed data processing from Databricks
Data store · Redis - Distributed memory caching system with persistence and value types
Data store · Cassandra - Distributed column-oriented database from Facebook
Misc · Zookeeper - Centralized infrastructure and services enabling synchronization
(HTML interface for HTTP) - your web service should be fully accessible in a browser.
O
C
M
S
A
C
K
S