Grokking The System Design Interview

Having recently completed the “Grokking the System Design Interview” course on educative.io, which I highly recommend. I developed an interest in how large, scalable systems work. Which is good because this kind of deep knowledge is rewarded in the market and it has certainly helped me in my interviews.

To continue learning I’ll go through the papers referenced in the course and provide my summaries on the following:

  1. Dynamo - Highly Available Key-value Store

  2. Kafka - A Distributed Messaging System for Log Processing

  3. Consistent Hashing - Original paper

  4. Paxos - Protocol for distributed consensus

  5. Concurrency Controls - Optimistic methods for concurrency controls.

  6. Gossip protocol - For failure detection and more.

  7. Chubby - Lock service for loosely-coupled distributed systems

  8. ZooKeeper - Wait-free coordination for Internet-scale systems

  9. MapReduce - Simplified Data Processing on Large Clusters

  10. Hadoop - A Distributed File System

  11. BigTable - A Distributed Storage System for Structured Data

  12. Cassandra - A Decentralized Structured Storage System

Written on June 16, 2018