
Chapter 1 - Reliable, Scalable and Maintainable Applications. If you manage to gain from my learning diary, that's great! If you come across a topic that you want to learn more about, you can leverage the numerous resources online about that topic, or reach out to me to write about it. Lastly, these posts will differ from the more expository deep-dive posts like this one that I'll also post on this blog. If you find any that you want to correct, please reach out via email too. I've tried to get rid of those, but it's possible I missed some. I had no intention of sharing these notes at the beginning. The first seven chapter notes I'll share were written without a public audience in mind. This is not meant to be a substitute for the book, and you will rob yourself of a lot of useful knowledge if you use these notes as a replacement for the book. This was inspired by Jasdev's attempt to learn in public and I hope that you can learn a thing or two from my notes. This post is to share the notes I've taken while reading Martin Kleppmann's book: Designing Data-Intensive Applications. The first time is typically during my commute to work, and the second time is when I'm home and try to take notes from the book. I tend to read a technical book twice before I can convince myself that I've actually read the book. Learning Diary: Designing Data Intensive Applications by Martin Kleppmann "synopsis" may belong to another edition of this title.Learning Diary: Designing Data Intensive Applications by Martin Kleppmann Timilearning Peek behind the scenes of major online services, and learn from their architectures. Understand the distributed systems research upon which modern databases are built. Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity. Make informed decisions by identifying the strengths and weaknesses of different tools. Peer under the hood of the systems you already use, and learn how to use and operate them more effectively. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. Software keeps changing, but the fundamental principles remain the same.
In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. What are the right choices for your application? How do you make sense of all these buzzwords? In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers.
Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. Data is at the center of many challenges in system design today.