Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

· "O'Reilly Media, Inc."
4.6
68 reviews
Ebook
616
Pages
Eligible

About this ebook

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 relational databases, 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 architectures

Ratings and reviews

4.6
68 reviews
Max Shenfield
July 1, 2017
Bug creator with 3 years of professional experience here. This is the best software development book I've ever read. The "Who Should Read This Book" section explains: "If you develop applications that have some kind of server/backend for storing or processing data, and your applications use the internet (e.g., web applications, mobile apps, or internet-connected sensors), then this book is for you." Designing Data-Intensive Applications lives up to this ambitious promise. Each chapter covers an essential data related software topic. The author's style is effective and approachable, wrapping principle in collective experience and pragmatism. Explanations almost always reference and contextualize real world technologies. The referenced papers, books, and blog posts are delightful, linking worlds of theory and folklore to the curious reader. This book may be onerous for software developers who are just learning the craft. If you already have a doctoral level understanding of data storage and distributed systems, this book may also not be for you (except to appreciate the work of a great communicator and colleague). For the rest of us, any one chapter can provide insight that will improve the quality of the software you write. I hope that the author and collaborators who made this possible are able to keep the book up to date so it can provide insight for many years to come.
17 people found this review helpful
Did you find this helpful?
Mohamed Ihab Talaat
November 9, 2020
One of the best books I read covering large distributed systems design, explaining in a balanced level of details the secret sauce behind core mainstream datastores and distributed systems patterns. The eBook version both Original Format and Free Flow text has a frustrating publishing bug, where all new section headers lack spacing before prior paragraphs. It deteriorates the reading experience and causes confusion. The paper book edition doesn't have this formatting issue, I hope the publisher pays attention and updates their eBook edition.
8 people found this review helpful
Did you find this helpful?
Ajay G
June 6, 2017
Why doesn't it have a index page with page numbers.....come on I don't need much to know what is in the book. If I don't even know what topics are there then how do I decide....there are specific subtopics in my syllabus copy that I need to find in your book I need a index page for that........ Not some explanation on what chapter you got......I need a list of page numbers..... Actually just the page numbers and topic list index and the starting page of each chapter would have sufficed for the sample to be honest.
4 people found this review helpful
Did you find this helpful?

About the author

Martin is a researcher in distributed systems at the University of Cambridge. Previously he was a software engineer and entrepreneur at Internet companies including LinkedIn and Rapportive, where he worked on large-scale data infrastructure. In the process he learned a few things the hard way, and he hopes this book will save you from repeating the same mistakes.



Martin is a regular conference speaker, blogger, and open source contributor. He believes that profound technical ideas should be accessible to everyone, and that deeper understanding will help us develop better software.

Rate this ebook

Tell us what you think.

Reading information

Smartphones and tablets
Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.
Laptops and computers
You can listen to audiobooks purchased on Google Play using your computer's web browser.
eReaders and other devices
To read on e-ink devices like Kobo eReaders, you'll need to download a file and transfer it to your device. Follow the detailed Help Center instructions to transfer the files to supported eReaders.