Synopses & Reviews
Want to know how the best software engineers and architects structure their applications to make them scalable, reliable, and maintainable in the long term? This book examines the key principles, algorithms, and trade-offs of data systems, using the internals of various popular software packages and frameworks as examples.
Tools at your disposal are evolving and demands on applications are increasing, but the principles behind them remain the same. Youll learn how to determine what kind of tool is appropriate for which purpose, and how certain tools can be combined to form the foundation of a good application architecture. Youll learn how to develop an intuition for what your systems are doing, so that youre better able to track down any problems that arise.
Synopsis
Data is at the center of many great challenges in system design. There are so many tools to choose from: databases, NoSQL datastores, stream and batch processors, caches, indexes, message brokers, and so on. Moreover, there are so many issues to consider: scalability, consistency, reliability, efficiency, maintainability. How do you make the right choices for your application? How do you make sense of all the buzzwords?
Designing Data-Intensive Applications is a comprehensive guide to the landscape of systems for storing and processing data. In this book, Martin Kleppmann covers a wide range of popular technologies, comparing their pros and cons. Although software keeps changing, the fundamental ideas behind it stay the same. Through this book, you'll understand those principles, how they apply in practice, and how make full use of data in your applications.
With this book, you will:
- Look under the hood of the systems you already use, so that you can use them more effectively and diagnose any issues
- Know the strengths and weaknesses of different tools, letting you make informed decisions
- Learn to navigate the trade-offs around consistency, scalability, fault tolerance, and complexity
- Understand the distributed systems research upon which modern databases are built
- Peek behind the scenes of major online services, and learn from their experience
Synopsis
Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?
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. Software keeps changing, but the fundamental principles remain the same. 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.
- Peer under the hood of the systems you already use, and learn how to use and operate them more effectively
- Make informed decisions by identifying the strengths and weaknesses of different tools
- Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity
- Understand the distributed systems research upon which modern databases are built
- Peek behind the scenes of major online services, and learn from their architecture
About the Author
Martin Kleppmann is a software engineer and entrepreneur. He has co-founded two startups including Rapportive, which was acquired by LinkedIn. At these companies he worked on various data infrastructure systems, and learnt a few things the hard way. He hopes that this book will save you from repeating the same mistakes.
Martin enjoys figuring out complex problems and breaking them down, making them simple and accessible. He does this in his conference talks, on his blog at http://martin.kleppmann.com and by contributing to open source projects such as Apache Samza. You can find him as @martinkl on Twitter.