Distributed systems are the means by which programs on one machine communicate with another. Differ from architectures in that while an architecture may have a distributed system at its center, it's not a requirement, and while distributed systems may incorporate an architecture as part of their implementation, that architecture usually isn't imposed on the user of the distributed system. Includes networking topics, for example.

Concepts

"An introduction to distributed systems": "A distributed system is a collection of autonomous computing elements that appears to its users as a single coherent system."

Distributed programming book (Website): "Source repo for the book that I and my students in my course at Northeastern University, CS7680 Special Topics in Computing Systems: Programming Models for Distributed Computing, are writing on the topic of programming models for distributed systems."

This is a book about the programming constructs we use to build distributed systems. These range from the small, RPC, futures, actors, to the large; systems built up of these components like MapReduce and Spark. We explore issues and concerns central to distributed systems like consistency, availability, and fault tolerance, from the lens of the programming models and frameworks that the programmer uses to build these systems.

Notes on Distributed Systems for Young Bloods: Distributed systems are different because they fail often; Implement backpressure throughout your system; Find ways to be partially available; Use percentiles, not averages; Learn to estimate your capacity; Feature flags are how infrastructure is rolled out; Choose id spaces wisely; Writing cached data back to persistent storage is bad; Extract services.

Pat Helland's works

CAP Theorem

Vogels' works

Transactions and commits

Implementation abstraction concepts

Technology stacks/stack-related links:

Interesting links:

Interesting tools based on network APIs

Auth-n-Auth and SSO

Proprietary/Cloud

Open Source

Ideas and theory

Languages and Tools

Infrastructure

Storage

Paxos Consensus and other consensus papers

Gossip Protocols (Epidemic Behaviours)

P2P

Amazon, Google

Reading--some tech, some culture

Distributed Locking

For starters, don't do it. Even if you think you need to, don't.

"How to do distributed locking"

Some links on this page copied from A Distributed Systems Reading List


Detail Pages:

Last modified 22 April 2025