/distributed_systems_notes

My collection of handwritten notes and resources for learning distributed systems

MIT LicenseMIT

Distributed Systems Notes

Currently a work in progress!!

This is my personal collection of links and notes taken while trying to learn about distributed systems.

The structure of these notes is a various mix of paraphrasing/outlines/copying from the resources listed below, depending on what I felt helped me learn the material the best.

In each folder you'll find the PDF notes, a README giving an outline of the included topics, and individual JPG images for each page.

Table of Contents


Resources

Textbooks

Courses

Academic Papers Hubs

Other Resources

Tutorials

Introductory Articles


Storage, Networking, and Concurrency

Encoding

B-Trees

Networking

I/O Handling
K8s Networking

Communication Protocols

Multicast
Gossip Protocols
Gossip Usage

Concurrency

Synchrony vs. Asynchrony
Scala Futures/Promises
Akka Library

Distributed Systems

Design

Coordination

Synchronization
Clock and Logical Ordering
Leader Election
Cluster Membership

Replication

Consensus

Raft
Paxos

Consistency

Serializability and Transactional Consistency
Linearizability and Replica Consistency

Distributed Storage

File Systems
Relational
Hash Tables
Dynamo-style (NoSQL)
Caches

Microservices

Design
Event Sourcing