Alex Xu · System Design Interview · An Insider's Guide

System Design Interview Reading Tracker

Every reference from both volumes, chapter by chapter. Tick off what you've read and your progress is saved in this browser. No account needed.

System Design Interview Volume 1 references

Ch 1

Scale From Zero To Millions Of Users

14 references
  1. [1]
  2. [2]
  3. [3]
    Replication
    en.wikipedia.org
  4. [4]
    Multi-master replication
    en.wikipedia.org
  5. [5]
  6. [6]
  7. [7]
  8. [8]
    Single point of failure
    en.wikipedia.org
  9. [9]
  10. [10]
  11. [11]
  12. [12]
  13. [13]
  14. [14]
Ch 2

Back-of-the-envelope Estimation

6 references
  1. [1]
  2. [2]
  3. [3]
  4. [4]
  5. [5]
  6. [6]
Ch 4

Design A Rate Limiter

16 references
  1. [1]
  2. [2]
    Twitter rate limits
    developer.twitter.com
  3. [3]
    Google Docs usage limits
    developers.google.com
  4. [4]
  5. [5]
  6. [6]
  7. [7]
  8. [8]
  9. [9]
  10. [10]
  11. [11]
  12. [12]
  13. [13]
  14. [14]
  15. [15]
  16. [16]
    OSI model
    en.wikipedia.org
Ch 5

Design Consistent Hashing

7 references
  1. [1]
  2. [2]
  3. [3]
  4. [4]
  5. [5]
  6. [6]
  7. [7]
Ch 6

Design A Key-value Store

10 references
  1. [1]
    Amazon DynamoDB
    aws.amazon.com
  2. [2]
    memcached
    memcached.org
  3. [3]
    Redis
    redis.io
  4. [4]
  5. [5]
    Cassandra
    cassandra.apache.org
  6. [6]
  7. [7]
    Merkle tree
    en.wikipedia.org
  8. [8]
    Cassandra architecture
    cassandra.apache.org
  9. [9]
  10. [10]
    Bloom filter
    en.wikipedia.org
Ch 7

Design A Unique ID Generator In Distributed Systems

4 references
  1. [1]
  2. [2]
  3. [3]
    Announcing Snowflake
    blog.twitter.com
  4. [4]
    Network Time Protocol
    en.wikipedia.org
Ch 8

Design A URL Shortener

2 references
  1. [1]
    A RESTful Tutorial
    restapitutorial.com
  2. [2]
    Bloom filter
    en.wikipedia.org
Ch 9

Design A Web Crawler

14 references
  1. [1]
  2. [2]
    EU Web Archive
    data.europa.eu
  3. [3]
    Digimarc
    digimarc.com
  4. [4]
  5. [5]
    Web Crawling (Olston & Najork)
    infolab.stanford.eduPDF
  6. [6]
  7. [7]
    Rabin M.O., et al. Fingerprinting by random polynomials. Center for Research in Computing Techn., Aiken Computation Laboratory, Univ. (1981)
    print citation · no link
  8. [8]
    B. H. Bloom. Space/time trade-offs in hash coding with allowable errors. Communications of the ACM, vol. 13, no. 7, pp. 422–426, 1970
    print citation · no link
  9. [9]
  10. [10]
    L. Page, S. Brin, R. Motwani, T. Winograd. The PageRank citation ranking: Bringing order to the web. Technical Report, Stanford University, 1998
    print citation · no link
  11. [11]
    Burton Bloom. Space/time trade-offs in hash coding with allowable errors. Communications of the ACM, 13(7), pp. 422–426, July 1970
    print citation · no link
  12. [12]
    Google Dynamic Rendering
    developers.google.com
  13. [13]
    T. Urvoy, T. Lavergne, P. Filoche. Tracking web spam with hidden style similarity. 2nd Intl. Workshop on Adversarial Information Retrieval on the Web, 2006
    print citation · no link
  14. [14]
Ch 10

Design A Notification System

7 references
  1. [1]
    Twilio SMS
    twilio.com
  2. [2]
    Nexmo SMS
    nexmo.com
  3. [3]
    SendGrid
    sendgrid.com
  4. [4]
    Mailchimp
    mailchimp.com
  5. [5]
  6. [6]
  7. [7]
    RabbitMQ
    bit.ly
Ch 11

Design A News Feed System

2 references
  1. [1]
  2. [2]
Ch 12

Design A Chat System

10 references
  1. [1]
    Erlang at Facebook
    erlang-factory.comPDF
  2. [2]
  3. [3]
    Long tail
    en.wikipedia.org
  4. [4]
  5. [5]
  6. [6]
    Announcing Snowflake
    blog.twitter.com
  7. [7]
    Apache ZooKeeper
    zookeeper.apache.org
  8. [8]
  9. [9]
  10. [10]
Ch 13

Design A Search Autocomplete System

9 references
  1. [1]
  2. [2]
  3. [3]
  4. [4]
    MongoDB (Wikipedia)
    en.wikipedia.org
  5. [5]
  6. [6]
    Apache Hadoop
    hadoop.apache.org
  7. [7]
    Spark Streaming
    spark.apache.org
  8. [8]
    Apache Storm
    storm.apache.org
  9. [9]
    Apache Kafka
    kafka.apache.org
Ch 14

Design YouTube

13 references
  1. [1]
    YouTube by the numbers
    omnicoreagency.com
  2. [2]
  3. [3]
    CloudFront Pricing
    aws.amazon.com
  4. [4]
    Netflix on AWS
    aws.amazon.com
  5. [5]
    Akamai homepage
    akamai.com
  6. [6]
    Binary large object
    en.wikipedia.org
  7. [7]
  8. [8]
  9. [9]
  10. [10]
  11. [11]
  12. [12]
  13. [13]
Ch 15

Design Google Drive

11 references
  1. [1]
    Google Drive
    google.com
  2. [2]
    Upload file data
    developers.google.com
  3. [3]
    Amazon S3
    aws.amazon.com
  4. [4]
  5. [5]
  6. [6]
  7. [7]
    The rsync algorithm
    andrew.cmu.eduPDF
  8. [8]
    librsync
    github.com
  9. [9]
    ACID
    en.wikipedia.org
  10. [10]
  11. [11]
    Amazon S3 Glacier
    aws.amazon.com
Extra

Real-world Systems

32 references
  1. [1]
  2. [2]
  3. [3]
  4. [4]
  5. [5]
  6. [6]
  7. [7]
  8. [8]
  9. [9]
  10. [10]
  11. [11]
  12. [12]
  13. [13]
  14. [14]
  15. [15]
  16. [16]
  17. [17]
  18. [18]
  19. [19]
  20. [20]
  21. [21]
  22. [22]
  23. [23]
  24. [24]
  25. [25]
  26. [26]
  27. [27]
  28. [28]
  29. [29]
  30. [30]
  31. [31]
  32. [32]
Extra

Company Engineering Blogs

37 blogs

System Design Interview Volume 2 references

Ch 1

Proximity Service

32 references
  1. [1]
    Yelp
    yelp.com
  2. [2]
  3. [3]
    OpenStreetMap
    openstreetmap.org
  4. [4]
    GDPR
    en.wikipedia.org
  5. [5]
    CCPA
    en.wikipedia.org
  6. [6]
    Pagination in the REST API
    developer.atlassian.com
  7. [7]
    Google Places API
    developers.google.com
  8. [8]
  9. [9]
    Regions and Zones
    docs.aws.amazon.com
  10. [10]
  11. [11]
    PostGIS
    postgis.net
  12. [12]
    Cartesian tiers
    nsshutdown.com
  13. [13]
    R-tree
    en.wikipedia.org
  14. [14]
  15. [15]
    Base32
    en.wikipedia.org
  16. [16]
  17. [17]
    Geohash
    movable-type.co.uk
  18. [18]
    Quadtree
    en.wikipedia.org
  19. [19]
  20. [20]
    Blue green deployment
    martinfowler.com
  21. [21]
  22. [22]
    S2
    s2geometry.io
  23. [23]
    Hilbert curve
    en.wikipedia.org
  24. [24]
    Hilbert mapping
    bit-player.org
  25. [25]
    Geo-fence
    en.wikipedia.org
  26. [26]
    Region cover
    s2.sidewalklabs.com
  27. [27]
    Bing Maps
    bit.ly
  28. [28]
  29. [29]
  30. [30]
    Geo Shape Type
    elastic.co
  31. [31]
  32. [32]
    Get the last known location
    developer.android.com
Ch 2

Nearby Friends

10 references
  1. [1]
  2. [2]
  3. [3]
  4. [4]
    etcd
    etcd.io
  5. [5]
    ZooKeeper
    zookeeper.apache.org
  6. [6]
  7. [7]
    Erlang
    erlang.org
  8. [8]
    Elixir
    elixir-lang.org
  9. [9]
  10. [10]
    OTP
    erlang.org
Ch 3

Google Maps

16 references
  1. [1]
    Google Maps
    developers.google.com
  2. [2]
    Google Maps Platform
    cloud.google.com
  3. [3]
  4. [4]
    Mercator projection
    en.wikipedia.org
  5. [5]
  6. [6]
    Gall–Peters projection
    en.wikipedia.org
  7. [7]
    Winkel tripel projection
    en.wikipedia.org
  8. [8]
    Address geocoding
    en.wikipedia.org
  9. [9]
    Geohashing
    kousiknath.medium.com
  10. [10]
    HTTP keep-alive
    en.wikipedia.org
  11. [11]
    Directions API
    developers.google.com
  12. [12]
    Adjacency list
    en.wikipedia.org
  13. [13]
    CAP theorem
    en.wikipedia.org
  14. [14]
    Routing Tiles
    valhalla.readthedocs.io
  15. [15]
    ETAs with GNNs
    deepmind.com
  16. [16]
Ch 4

Distributed Message Queue

20 references
  1. [1]
    Queue Length Limit
    rabbitmq.com
  2. [2]
  3. [3]
    etcd
    etcd.io
  4. [4]
    MySQL
    mysql.com
  5. [5]
  6. [6]
    Push vs. pull
    kafka.apache.org
  7. [7]
    Kafka 2.0 Documentation
    kafka.apache.org
  8. [8]
  9. [9]
    Martin Kleppmann. Replication. In Designing Data-Intensive Applications, pages 151–197. O'Reilly Media, 2017
    print citation · no link
  10. [10]
    ISR in Apache Kafka
    cloudkarafka.com
  11. [11]
  12. [12]
  13. [13]
    Kafka high watermark
    rongxinblog.wordpress.com
  14. [14]
    Kafka mirroring
    cwiki.apache.org
  15. [15]
    Message filtering in RocketMQ
    partners-intl.aliyun.com
  16. [16]
  17. [17]
  18. [18]
  19. [19]
    Kafka protocol guide
    kafka.apache.org
  20. [20]
    HDFS
    hadoop.apache.org
Ch 5

Metrics Monitoring And Alerting System

30 references
  1. [1]
    Datadog
    datadoghq.com
  2. [2]
    Splunk
    splunk.com
  3. [3]
    PagerDuty
    pagerduty.com
  4. [4]
    Elastic stack
    elastic.co
  5. [5]
  6. [6]
  7. [7]
    Prometheus
    prometheus.io
  8. [8]
  9. [9]
  10. [10]
    MySQL
    mysql.com
  11. [11]
  12. [12]
  13. [13]
    Amazon Timestream
    aws.amazon.com
  14. [14]
  15. [15]
    InfluxDB
    influxdata.com
  16. [16]
    etcd
    etcd.io
  17. [17]
  18. [18]
    Amazon CloudWatch
    aws.amazon.com
  19. [19]
    Graphite
    graphiteapp.org
  20. [20]
  21. [21]
  22. [22]
    Monitoring Architecture
    developer.lightbend.com
  23. [23]
  24. [24]
    Pushgateway
    github.com
  25. [25]
  26. [26]
  27. [27]
  28. [28]
    InfluxDB storage engine
    docs.influxdata.com
  29. [29]
    YAML
    en.wikipedia.org
  30. [30]
    Grafana Demo
    play.grafana.org
Ch 6

Ad Click Event Aggregation

25 references
  1. [1]
  2. [2]
    Conversion rate: Definition
    support.google.com
  3. [3]
    OLAP functions
    docs.oracle.com
  4. [4]
  5. [5]
    LanguageManual ORC
    cwiki.apache.org
  6. [6]
    Parquet
    databricks.com
  7. [7]
  8. [8]
    Big Data
    datakwery.com
  9. [9]
  10. [10]
    DAG model
    en.wikipedia.org
  11. [11]
  12. [12]
    Martin Kleppmann. Designing Data-Intensive Applications. O'Reilly Media, 2017
    print citation · no link
  13. [13]
    Apache Flink
    flink.apache.org
  14. [14]
    Lambda architecture
    databricks.com
  15. [15]
    Kappa architecture
    hazelcast.com
  16. [16]
    Martin Kleppmann. Stream Processing. In Designing Data-Intensive Applications. O'Reilly Media, 2017
    print citation · no link
  17. [17]
  18. [18]
  19. [19]
  20. [20]
  21. [21]
  22. [22]
    Flink performance tuning
    nightlies.apache.org
  23. [23]
    ClickHouse
    clickhouse.com
  24. [24]
    Druid
    druid.apache.org
  25. [25]
Ch 7

Hotel Reservation System

13 references
  1. [1]
  2. [2]
    Microservices
    en.wikipedia.org
  3. [3]
    gRPC
    grpc.io
  4. [4]
    Booking.com iOS app
    print citation · no link
  5. [5]
    Serializability
    en.wikipedia.org
  6. [6]
  7. [7]
  8. [8]
    Change data capture
    docs.oracle.com
  9. [9]
    Debezium
    debezium.io
  10. [10]
  11. [11]
    Monolithic Architecture
    microservices.io
  12. [12]
  13. [13]
    Saga
    microservices.io
Ch 8

Distributed Email Service

30 references
  1. [1]
  2. [2]
    Outlook
    en.wikipedia.org
  3. [3]
  4. [4]
  5. [5]
    ActiveSync
    en.wikipedia.org
  6. [6]
    Email attachment
    en.wikipedia.org
  7. [7]
    MIME
    en.wikipedia.org
  8. [8]
    Threading
    en.wikipedia.org
  9. [9]
  10. [10]
    Apache James
    james.apache.org
  11. [11]
  12. [12]
    Cassandra Limitations
    cwiki.apache.org
  13. [13]
    Inverted index
    en.wikipedia.org
  14. [14]
    Exponential backoff
    en.wikipedia.org
  15. [15]
  16. [16]
    IOPS
    en.wikipedia.org
  17. [17]
    UUID and timeuuid types
    docs.datastax.com
  18. [18]
  19. [19]
    Global spam volume
    statista.com
  20. [20]
  21. [21]
  22. [22]
    Sender Policy Framework
    en.wikipedia.org
  23. [23]
  24. [24]
  25. [25]
  26. [26]
  27. [27]
  28. [28]
  29. [29]
    Lawful interception
    en.wikipedia.org
  30. [30]
    Email safety
    safety.google
Ch 9

S3-like Object Storage

29 references
  1. [1]
    Fibre Channel
    en.wikipedia.org
  2. [2]
    iSCSI
    en.wikipedia.org
  3. [3]
    Server Message Block
    en.wikipedia.org
  4. [4]
    Network File System
    en.wikipedia.org
  5. [5]
  6. [6]
    Serial Attached SCSI
    en.wikipedia.org
  7. [7]
    AWS CLI ls command
    docs.aws.amazon.com
  8. [8]
  9. [9]
    Ambry: LinkedIn's Scalable Geo-Distributed Object Store
    assured-cloud-computing.illinois.eduPDF
  10. [10]
    inode
    en.wikipedia.org
  11. [11]
  12. [12]
    gRPC
    grpc.io
  13. [13]
    Paxos
    en.wikipedia.org
  14. [14]
    Raft
    raft.github.io
  15. [15]
  16. [16]
    RocksDB
    github.com
  17. [17]
    SSTable
    igvita.com
  18. [18]
    B+ tree
    en.wikipedia.org
  19. [19]
    SQLite
    sqlite.org
  20. [20]
  21. [21]
    Rack
    en.wikipedia.org
  22. [22]
    Erasure Coding
    en.wikipedia.org
  23. [23]
  24. [24]
  25. [25]
    Checksum
    en.wikipedia.org
  26. [26]
    MD5
    en.wikipedia.org
  27. [27]
    SHA-1
    en.wikipedia.org
  28. [28]
    HMAC
    en.wikipedia.org
  29. [29]
    TIMEUUID
    docs.datastax.com
Ch 10

Real-time Gaming Leaderboard

17 references
  1. [1]
    Man-in-the-middle attack
    en.wikipedia.org
  2. [2]
  3. [3]
    Geekbang
    static001.geekbang.org
  4. [4]
  5. [5]
  6. [6]
  7. [7]
    Leaderboards
    redislabs.com
  8. [8]
    Lambda
    aws.amazon.com
  9. [9]
    Google Cloud Functions
    cloud.google.com
  10. [10]
    Azure Functions
    azure.microsoft.com
  11. [11]
    Info command
    redis.io
  12. [12]
  13. [13]
    Cyclic redundancy check
    en.wikipedia.org
  14. [14]
    Choosing your node size
    docs.aws.amazon.com
  15. [15]
  16. [16]
  17. [17]
Ch 11

Payment System

30 references
  1. [1]
    Payment system
    en.wikipedia.org
  2. [2]
    AML/CFT
    en.wikipedia.org
  3. [3]
    Card scheme
    en.wikipedia.org
  4. [4]
    ISO 4217
    en.wikipedia.org
  5. [5]
  6. [6]
    Double-entry bookkeeping
    en.wikipedia.org
  7. [7]
  8. [8]
  9. [9]
    Tipalti
    tipalti.com
  10. [10]
    Nonce
    en.wikipedia.org
  11. [11]
    Webhooks
    stripe.com
  12. [12]
  13. [13]
    3D Secure
    en.wikipedia.org
  14. [14]
  15. [15]
  16. [16]
  17. [17]
    Exponential backoff
    en.wikipedia.org
  18. [18]
    Idempotence
    en.wikipedia.org
  19. [19]
  20. [20]
    Idempotency (PayPal)
    developer.paypal.com
  21. [21]
    Paxos
    en.wikipedia.org
  22. [22]
    Raft
    raft.github.io
  23. [23]
    YugabyteDB
    yugabyte.com
  24. [24]
    CockroachDB
    cockroachlabs.com
  25. [25]
    What is a DDoS attack
    cloudflare.com
  26. [26]
  27. [27]
  28. [28]
  29. [29]
  30. [30]
Ch 12

Digital Wallet

18 references
  1. [1]
  2. [2]
  3. [3]
    ISO 4217 currency codes
    en.wikipedia.org
  4. [4]
    Apache ZooKeeper
    zookeeper.apache.org
  5. [5]
    Martin Kleppmann. Designing Data-Intensive Applications. O'Reilly Media, 2017
    print citation · no link
  6. [6]
    X/Open XA
    en.wikipedia.org
  7. [7]
    Compensating transaction
    en.wikipedia.org
  8. [8]
  9. [9]
    Eric Evans. Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional, 2003
    print citation · no link
  10. [10]
    Apache Kafka
    kafka.apache.org
  11. [11]
    CQRS
    martinfowler.com
  12. [12]
  13. [13]
    mmap
    man7.org
  14. [14]
    SQLite
    sqlite.org
  15. [15]
    RocksDB
    rocksdb.org
  16. [16]
    Apache Hadoop
    hadoop.apache.org
  17. [17]
    Raft
    raft.github.io
  18. [18]
    Reverse proxy
    en.wikipedia.org
Ch 13

Stock Exchange

30 references
  1. [1]
  2. [2]
  3. [3]
  4. [4]
  5. [5]
  6. [6]
    Denial-of-service attack
    en.wikipedia.org
  7. [7]
    Market impact
    en.wikipedia.org
  8. [8]
    FIX Trading
    fixtrading.org
  9. [9]
    Event Sourcing
    martinfowler.com
  10. [10]
  11. [11]
    Epoch
    epoch101.com
  12. [12]
  13. [13]
    Order book (Wikipedia)
    en.wikipedia.org
  14. [14]
  15. [15]
  16. [16]
  17. [17]
    mmap
    en.wikipedia.org
  18. [18]
  19. [19]
  20. [20]
    Aeron
    github.com
  21. [21]
    Chaos engineering
    en.wikipedia.org
  22. [22]
    Raft
    raft.github.io
  23. [23]
  24. [24]
  25. [25]
    Dark pool
    investopedia.com
  26. [26]
  27. [27]
  28. [28]
  29. [29]
  30. [30]