Book
Designing Data-Intensive Applications
Martin Kleppmann
Summary
分散システムにおけるデータの保存・同期・一貫性のトレードオフを圧倒的な技術的深さで網羅。 現代のデータ指向アプリケーション開発における必読書。
Target Readers
- 分散システムを深く理解したいエンジニア
- データベースやストリーム処理に関わる開発者
Tags
Colophon
- Publisher
- オライリー・ジャパン
- ISBN
- 978-4873118703
- Published
- Jul 2019
- List price
- ¥5,060incl. taxMay differ from the actual selling price on Amazon
Get this book
* The link above is an advertisement via Amazon Associates.Related Books
Prerequisites
- Prerequisite
Database Internals
Alex Petrov
Reason: Only after understanding single-node storage-engine internals do discussions of consistency, replication, and partitioning across multiple nodes become grounded. Kleppmann's 'Designing Data-Intensive Applications' is the capstone that systematizes the principles of distributed data systems, placing internals knowledge as a required prerequisite.
- Recommended
失敗から学ぶRDBの正しい歩き方
曽根壮大
Reason: Having understood the design of a single relational database, you broaden your view to the big picture of large-scale systems involving multiple data stores. Designing Data-Intensive Applications systematizes the fundamentals of data systems—replication, partitioning, consistency, faults—without being swayed by passing trends.
- Recommended
マイクロサービスパターン
Microservices Patterns
Chris Richardson
Reason: Learning microservice implementation patterns, you inevitably hit the hard problem of keeping data consistent across services. Designing Data-Intensive Applications supplies the theory of distributed-data consistency, replication, and transactions, underpinning why those patterns work.
- Recommended
Designing Distributed Systems
Patterns and Paradigms for Scalable, Reliable Services
Brendan Burns
Reason: After learning structural 'patterns' of distributed systems from Burns's book, advance to the hard part beyond them—data consistency and fault tolerance. Kleppmann's 'Designing Data-Intensive Applications' digs theoretically into replication, distributed transactions, and consensus, providing the data-layer principles that underpin distributed patterns.
- Recommended
Building Microservices
Sam Newman
Reason: Once you split services, the next hard problem becomes the distribution, consistency, and reliability of data. DDIA systematically provides the foundational theory and trade-offs of distributed data systems—replication, partitioning, and transactions.
- Recommended
Software Architecture: The Hard Parts
Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani
Reason: When the hard parts of distributed architecture force decisions about decomposing data, you descend to the underlying theory of distributed data. The principles of consistency, replication, and storage engines become the grounds for your design decisions.
- Related
システム開発・刷新のためのデータモデル大全
渡辺幸三
Reason: Once you master business modeling on a single RDB, you hit the question of how design changes when data becomes distributed and large-scale. Kleppmann's 'Designing Data-Intensive Applications' covers replication, partitioning, and consistency models across the board, serving as the starting point for extending modeling knowledge into distributed environments.
- Related
PostgreSQL徹底入門 第4版
近藤雄太, 正野裕大, 坂井潔, 鳥越淳, 笠原辰仁, 石井達夫
Reason: Once you understand operating and transactions on a single RDBMS (PostgreSQL), step into the distributed world of what breaks when you scale to multiple nodes. Kleppmann's 'Designing Data-Intensive Applications' covers replication and consistency trade-offs, bridging single-node operational knowledge into distributed design.
- Related
データ指向プログラミング
Yehonathan Sharvit
Reason: The mindset of treating data as immutable connects deeply with how distributed systems handle consistency and event history. Kleppmann's 'Designing Data-Intensive Applications' covers log-centric architectures and event sourcing, extending the immutable-data idea into the context of distributed infrastructure.
- Related
エンタープライズ アプリケーションアーキテクチャパターン
Patterns of Enterprise Application Architecture
Martin Fowler
Reason: After mastering enterprise patterns that assume a single database, you widen your view to consistency, replication, and partitioning of data spread across many nodes. The assumptions of scale change.
Next Books
- Recommended
Building Applications with AI Agents
Michael Albada
Reason: Having grasped the theory of consistency, reliability, and scale in large-scale data systems, you see it as the foundation for putting AI agents into production. Practical AI Agent Development bridges the robustness principles learned in data-intensive systems to designing agent state management and tool integration.
Sources
- Related
ドラゴンクエストXを支える技術
青山公士
Reason: Having grasped the theory of data systems, you flesh it out with a concrete example of how it's applied in a real service. 'The Technology Behind Dragon Quest X' concretely describes the operation, scaling, and incident response of a large-scale online game, giving abstract principles a tangible feel.
Sources
- Related
Database Reliability Engineering
Laine Campbell, Charity Majors
Reason: After understanding the theoretical trade-offs of distributed systems in Kleppmann's 'Designing Data-Intensive Applications', step into the reality of keeping them running. Based on Google's SRE principles, 'Database Reliability Engineering' (by Laine Campbell and Charity Majors) provides concrete practices for operating distributed data infrastructure reliably in production.