Skip to content
#BookCube

1. Dynamo: Amazon’s Highly Available Key-Value Store is a classic article about Amazon’s Highly Available Key-Value Store.

#BookCube
  1. Dynamo: Amazon’s Highly Available Key-Value Store A classic article about Amazon’s highly accessible key-value base
  2. Hints for Computer System Design - An article by Butler Lampson, which was awarded the ACM Turing Award. In this article, he summarized his thoughts on system design.
  3. Big Ball of Mud - an article with a set of patterns / antipatterns about the design of systems: big ball of mud, throwaway code, piecemeal growth, keep it working, sweeping it under the rug, reconstruction. It is interesting to read and learn about real systems that engineers often face in reality.
  4. The Google File System - a classic article about the distributed file system Google, which was replaced by Google Colossus, about which you can also read reference. And the GFS. (Google File System) was the prototype of HDSF (Hadoop Distributed File System)
  5. On Designing and Deploying Internet-Scale Services - Microsoft's chequelist article on how to design and evaluate large-scale systems (It's like a checklist approach. 12 factor apps)
  6. CAP Twelve Years Later: How the ‘Rules’ Have Changed Eric Brewer, author of the CAP Theorem, talks about what has changed in the past. 12 Over the years, he has expanded the model.
  7. Harvest, Yield, and Scalable Tolerant Systems Eric Brewer expands the thoughts from the previous article and talks about the approach with harvest and yeild
  8. MapReduce: Simplified Data Processing on Large Clusters A classic article from Google about the approach to Map Reduce, from which Hadoop appeared
  9. Dapper, a Large-Scale Distributed Systems Tracing Infrastructure The approach to tracing queries from Google, on the basis of which Zipkin, OpenTracing, OpenTelemetry appeared
  10. Kafka: a Distributed Messaging System for Log Processing Kafka white paper, which has become an indispensable system for processing messages. In particular, Kafka’s partitions do a phenomenal job of forcing application designers to make explicit decisions about trading off performance for predictable message ordering.
  11. Wormhole: Reliable Pub-Sub to Support Geo-Replicated Internet Services An article from the largest social network about Kafka, but with its own peculiarity: "in particular, note the approach to supporting lagging consumers without sacrificing overall system throughput."
  12. Borg, Omega, and Kubernetes Google’s Cool Overview of Three of Their Workload Search Systems
  13. Large-Scale Cluster Management at Google with Borg The first and most successful workload orchestrator at Google
  14. Omega: Flexible, Scalable Schedulers for Large Compute Clusters The story of the second orchestrator who was supposed to replace Borg, but fell victim to the syndrome of the second system.
  15. Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center Apache Mesos, which was a successful double-scheduling workload ocrator
  16. Design Patterns for Container-Based Distributed Systems An article with a set of patterns for system design, which is now called cloud native
  17. Raft: In Search of an Understandable Consensus Algorithm An article about consensus algorithm, which should be perceived easier than Paxos
  18. Paxos Made Simple Lamport's article on the Paxos consensus algorithm, told to be easier to understand (But it was still complicated, and then Raft came along.)
  19. SWIM: Scalable Weakly-Consistent Infection-Style Process Group Membership Protocol Weakly-consistent knowledge of process group membership information at all participating processes, which distinguishes this approach from what is commonly practiced for partition consensus algorithms. This approach is used in HashiCorp software and in Uber’s Ringpop.
  20. The Byzantine Generals Problem - again Lamport, but this time about consensus with arbitrary (Byzantine) refusal