Saurabh Kumar

#book

Book notes, reviews, reading

TIL notes

  • Feb 5, 2026

    Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems by Martin Kleppmann manages to be both rigorous technical manual and something approaching a philosophical treatise on the nature of truth, consistency, and trust in distributed systems. [Claude][https://claude.ai/chat/0f58f2f6-bd56-41a1-a785-8267afa5a3d1]

    • Foundation. He starts by asking the questions “What do we actually want in our data systems”, answers them as - reliability, scalability and maintainability.
      • Reliability. The question isn’t whether failure will happen, it will, but the whether the systems can survive them.
      • Scalability. It’s not a binary question of whether a system is “scalable” or “not scalable”. Ask - “What happens when specific load parameter increase?”
      • Maintainability - most underappreciated of the three, he argues the majority of cost isn’t in initial development but in ongoing maintainence.
    • The data model wars - the skill isn’t in choosing the “best” database but in understanding which tradeoffs matter for your specific problem.
    • Storage engines. Two major approaches to read & write data from disk, neither is universally better.
      • Log-structured storage (like LSM-trees) optimizes for writes, every write is appended and the merged/compacted later.
      • Page-oriented storage (like B-trees) optimizes for reads, data is stored in fixed-sized block, which then get updated in-place, more like filing cabinet with each document has a designated slot.
    • Instead of asking “how do I build this?” ask “what does it mean for this to work correctly?”