#distributed systems
8 posts · All tags
-
Spanner: TrueTime, commit wait and external consistency, explained
How Google Spanner orders transactions worldwide: TrueTime intervals, commit wait, Paxos groups, two-phase commit over Paxos, safe time and lock-free reads.
-
Raft: how a few servers agree on one log, explained
How Raft keeps a replicated log consistent: terms, randomized elections, log matching, the Figure 8 commit rule, joint consensus, snapshots, linearizable reads.
-
Dynamo: Amazon’s always-writeable key-value store, explained
How Amazon's 2007 Dynamo kept carts writable: consistent hashing, sloppy quorums, hinted handoff, vector clocks, Merkle anti-entropy, and gossip (SOSP '07).
-
TAO: Facebook’s social graph store — objects, associations, and refill
How Facebook's TAO served a billion graph reads/sec: objects & associations, leader/follower caches, refill messages, and master/slave regions (ATC '13).
-
Scaling Memcache at Facebook: leases, Gutter, and commit-log invalidation
How Facebook scaled memcached to billions of requests per second: leases against thundering herds, Gutter pools, mcsqueal invalidation, and remote markers.
-
Scaling Slack’s job queue: Kafka in front of Redis
Slack put Kafka in front of Redis so enqueue stays up when workers stall: durable buffering, Kafkagate, JQRelay rate limits, and incremental migration.
-
How Discord stores trillions of messages: from MongoDB to Cassandra to ScyllaDB
How Discord moved chat history from MongoDB to Cassandra to ScyllaDB: time-bucketed partitions, tombstone traps, hot partitions, and Rust request coalescing.
-
Idempotency keys: how payment APIs make retries safe
Notes on how APIs like Stripe use idempotency keys so clients can retry failed requests without charging a customer twice, plus a minimal implementation.