Skip to content
#Architecture

Designing Data-Intensive Applications (Category Architecture)

#Architecture #DistributedSystems #SystemDesign #Software #SoftwareArchitecture

I read this book in 2018 And it really helped me build my knowledge of designing applications that are data intensive. I wrote about her in my popular article.How to get ahead in software design"where advised" 16 We had great design books that answered the questions "What do we do," "How do we do it," and "How do we pay for it." But I didn’t mention the book on this channel, so I decided to rectify the omission, especially since I was already reading the upcoming second edition of the book on the O’Reilly platform. (There's only one 3 The whole book will be ready by the end. 2025 year). So while the first edition is still relevant, I will tell you about my impressions.

  • I have a paper version of the book in Russian and English - the book deserves to be in my library in paper form.
  • The illustrations in the book are great. (They're good in the new edition, too.) I read the book for the first time, but now it is easy to read. The book itself consists of three parts and 12 Chapters, below are the names of parts Basics of information systems
  • Distributed data
  • Derivatives

The first part is introductory and consists of chapters:

  1. Reliable, scalable and easy to maintain systems
  2. Data models and query languages – SQL, NoSQL, Map Reduce, Cypher and SparQL
  3. Data storage and retrieval subsystems – SSTables, LSM, B-Tree, Stars and Snowflakes, columnar data storage
  4. Coding and evolution: json, xml, thrift, protobuf, avro. Data migration:)

The second part includes chapters: 5. Replication – synchronous/asynchronous, master/slave, master/master, no-master 6. Partitioning – key/value type, key ranges, partitioning and replication, sectioning and secondary indices, section rebalancing 7. Transactions - ACID/BASE, 2PL(two-phase locking), SSI (serializable snapshot isolation) 8. Distributed System Problems – Failures and Failures, Untrustworthy Networks, Untrustworthy Watches, Knowledge/Truth/Falsehood 9. Coherence and consensus

Part part 3 consists of chapters: 10. Package processing 11. Flow processing 12. The future of information systems

P.S. The book provides a good overview of different topics for those who have to design / develop systems that store / process data:)

P.P.S. Since the first reading of the book, I have read many other books and my initial enthusiasm for Martin Kleppmann’s book has faded, but I look forward to the second edition with great interest. A little later I will review the parts that are available in the early preview of this second edition.

#DistributedSystems #Architecture #SystemDesign #Software #SoftwareArchitecture