Skip to content
matthewcm.dev

    ↑ ↓ move · ↵ open · tab scopeopen graph →

    $ cd ./topics/distributed-systems

    Distributed systems

    Failure, consistency, consensus and delivery guarantees. The fundamentals underneath every platform and real-time system, written down so I actually understand them.

    22 notes🌱 4 seed🌿 13 growing🌳 5 evergreen

    Everything interesting eventually becomes a distributed system, including a browser talking to an API over a flaky connection. These notes are my working understanding of the fundamentals: what goes wrong, what “correct” even means when machines disagree, and how real systems agree anyway.

    I’ve arranged them as a learning path, roughly in the order the ideas build on each other.

    Start here

    1. What goes wrong

    2. Talking to each other

    3. Trade-offs

    4. Agreement

    Where it meets practice

    Open questions I’m exploring

    • Clocks: Lamport, vector and hybrid logical clocks. When does a frontend need to care about ordering?
    • CRDTs for collaborative and offline-first UIs: how far can you get without a server deciding?
    • Replication strategies, and how the trade-offs show up as UX.

    hover to explore · click to open

    Case studies

    🌳 Start here

    Still growing (16)

    On the radar

    Coming up