Asynchronous

Designing Data-Intensive Applications - Chapter 8 - The Trouble with Distributed Systems

Designing Data-Intensive Applications - Chapter 8 - The Trouble with Distributed Systems

Translations: RU

Earlier the book club of our company has studied excellent book:

Martin Kleppmann - Designing Data-Intensive Applications

This is the best book I have read about building complex scalable software systems. 💪

As usually I prepared an overview and mind-map.

Chapter 8 discovers non-database related problems of distributed systems. DEV teams should consider them when designing distributed software.

  • Faults and Partial Failures. The need to build a reliable system from unreliable components.
  • Problem 1: Unreliable Networks. Why they happen. How to detect them. How to deal with them. Synchronous and Asynchronous networks. Hybrid networks and emulating hybrid networks.
  • Problem 2: Unreliable Clocks. Monotonic Clocks vs Time-of-Day Clocks. What to use and what not to use in different cases. Good practices.
  • Problem 3: Knowledge, Truth, and Lies. What is Truth in distributed systems. The Byzantine Generals Problem. System Model and Reality: what to use for what cases.

Download full mind map (PDF)

Designing Data-Intensive Applications - Chapter 5 - Replication

Designing Data-Intensive Applications - Chapter 5 - Replication

Translations: RU

Earlier the book club of our company has studied excellent book:

Martin Kleppmann - Designing Data-Intensive Applications

This is the best book I have read about building complex scalable software systems. 💪

As usually I prepared an overview and mind-map.

Chapter 5:

  • Intro. How to scale apps. Replicating and partitioning.
  • Three algos of replicating
  • Single-leader Replication
    • Leaders and Followers
    • Sync and async replication
    • Adding new Followers
    • Handling node outages
    • Technical implementations and all potential problems
  • Multi-Leader Replication
    • Use-cases when it is good
    • Handling write conflicts
    • Three topologies and potential problems
  • Leaderless Replication
    • Writing to the database when a node is down
    • Quorums and problems with them
    • Detecting concurrent writes and how to resolve them

Download full mind map (PDF)