Designing Data-Intensive Applications
Book description
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…
Why read it?
2 authors picked Designing Data-Intensive Applications as one of their favorite books. Why do they recommend it?
This is the best overview of data storage and distributed systems—two key concepts for building almost any piece of software today—that I've seen anywhere. Martin does a wonderful job of taking a massive body of research and distilling complicated concepts and difficult trade-offs down to a level anyone can understand.
I learned a lot about replication, partitioning, linearizability, locking, write skew, phantoms, transactions, event logs, and more. I'm also a big fan of the final chapter, The Future of Data Systems, which covers ideas such as "unbundling the database", end-to-end event streams, and an important discussion on ethics in programming…
From Yevgeniy's list on practical, hands-on books on DevOps and software delivery.
Designing Data-Intensive Applications is the best book if you want to learn about the main principles behind every system that is able to store and process big amounts of data.
You'll learn about distributed storage systems, their tradeoffs (availability, consistency, fault-tolerance), streaming processing systems, and main algorithms.
Those are the critical concepts behind almost every successful company that needs to create scalable solutions.
From Tomasz's list on big data processing ecosystem.
Want books like Designing Data-Intensive Applications?
Our community of 12,000+ authors has personally recommended 52 books like Designing Data-Intensive Applications.