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.

Ideas and theory

Pat Helland's works

CAP Theorem

Vogels' works

Transactions and commits

Languages and Tools



Paxos Consensus and other consensus papers

Gossip Protocols (Epidemic Behaviours)


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

Major distributed system technologies



Java RMI


Tags: reading   distribution   list  

Last modified 26 April 2022