書籍
データ指向アプリケーションデザイン
信頼性、拡張性、保守性の高い分散システム設計の原理
Martin Kleppmann
概要
分散システムにおけるデータの保存・同期・一貫性のトレードオフを圧倒的な技術的深さで網羅。 現代のデータ指向アプリケーション開発における必読書。
対象読者
- 分散システムを深く理解したいエンジニア
- データベースやストリーム処理に関わる開発者
タグ
奥付
- 出版社
- オライリー・ジャパン
- ISBN
- 978-4873118703
- 出版日
- 2019年7月
- 参考定価
- ¥5,060税込Amazonの実売価格と異なる場合があります
この本を手に入れる
※ 上記は Amazon アソシエイトによる広告リンクです。関連書籍
前提となる書籍
- 必須前提
詳説 データベース
ストレージエンジンと分散データシステムの仕組み
Alex Petrov
理由: 単一ノードのストレージエンジン内部を理解して初めて、複数ノードに分散したときの整合性・レプリケーション・パーティショニングの議論が地に足のついたものになる。Kleppmann『データ指向アプリケーションデザイン』は分散データシステムの原理を体系化する到達点であり、内部構造の知識を必須前提(required)として据える。
- 推奨前提
失敗から学ぶRDBの正しい歩き方
曽根壮大
理由: 単一のリレーショナルデータベースの設計を理解したら、複数のデータストアが絡む大規模システムの全体像へ視野を広げる。Designing Data-Intensive Applications は複製・分割・整合性・障害といったデータシステムの根本原理を、技術の流行に流されず体系化する。
- 推奨前提
マイクロサービスパターン
Microservices Patterns
Chris Richardson
理由: マイクロサービスの実装パターンを学ぶと、サービス間でデータをどう一貫させるかという難所に必ず突き当たる。Designing Data-Intensive Applications は分散データの整合性・複製・トランザクションの理論を与え、パターンの「なぜ効くか」を裏付ける。
- 推奨前提
Designing Distributed Systems
Patterns and Paradigms for Scalable, Reliable Services
Brendan Burns
理由: Burns の本で分散システムの「構成パターン」を学んだら、その先にあるデータの一貫性・耐障害性という難所へ。Kleppmann『データ指向アプリケーションデザイン』はレプリケーション・分散トランザクション・合意形成を理論面から掘り下げ、分散パターンを支えるデータ層の原理を与える。
- 推奨前提
マイクロサービスアーキテクチャ
第2版
Sam Newman
理由: サービスを分割すると、次の難所はデータの分散・整合性・信頼性になる。DDIA は複製・分割・トランザクションといった分散データシステムの基礎理論とトレードオフを体系的に与える。
- 推奨前提
ソフトウェアアーキテクチャ・ハードパーツ
分散アーキテクチャのためのトレードオフ分析
Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani
理由: 分散アーキの難所でデータ分解の判断を迫られたら、その土台となる分散データの理論へ降りる。整合性・レプリケーション・ストレージエンジンの原理が、設計判断の根拠になる。
- 参考
システム開発・刷新のためのデータモデル大全
渡辺幸三
理由: 単一 RDB を前提とした業務モデリングを極めると、次は「データが分散・大規模化したとき設計はどう変わるか」という問いに突き当たる。Kleppmann『データ指向アプリケーションデザイン』はレプリケーション・パーティショニング・整合性モデルを横断的に扱い、業務モデリングの知識を分散環境へ拡張する起点になる。
- 参考
PostgreSQL徹底入門 第4版
インストールから機能・仕組み、アプリ作り、管理・運用まで
近藤雄太, 正野裕大, 坂井潔, 鳥越淳, 笠原辰仁, 石井達夫
理由: 単一 RDBMS(PostgreSQL)の運用・トランザクションを理解したら、複数ノードへスケールしたときに何が壊れるかという分散の世界へ。Kleppmann『データ指向アプリケーションデザイン』はレプリケーションや一貫性のトレードオフを扱い、単機運用の知識を分散設計へ橋渡しする。
- 参考
データ指向プログラミング
ソフトウェアがもつ複雑さの軽減に向けて
Yehonathan Sharvit
理由: データを不変として扱う設計思想は、分散システムでデータの一貫性やイベント履歴を扱う議論と深くつながる。Kleppmann『データ指向アプリケーションデザイン』はログ中心アーキテクチャやイベントソーシングを扱い、不変データの発想を分散基盤の文脈へ拡張する。
- 参考
エンタープライズ アプリケーションアーキテクチャパターン
Patterns of Enterprise Application Architecture
Martin Fowler
理由: 単一DBを前提としたエンタープライズパターンを押さえたら、複数ノードに分散したデータの一貫性・レプリケーション・パーティショニングへ視野を広げる。スケールの前提が変わる。
次に読む書籍
- 推奨前提
実践 AIエージェント開発
マルチエージェントシステムの設計と実装
Michael Albada
理由: 大規模データシステムの整合性・信頼性・スケールの理論を押さえると、それが AI エージェントを実運用に載せる際の土台だと分かる。Practical AI Agent Development は、データ集約システムで学んだ堅牢性の原理を、エージェントの状態管理やツール連携の設計へ橋渡しする。
- 参考
ドラゴンクエストXを支える技術
大規模オンラインRPGの舞台裏
青山公士
理由: データシステムの理論を押さえたら、それが実際のサービスでどう適用されているかの実例で血肉化する。「ドラゴンクエストXを支える技術」は大規模オンラインゲームの運用・スケール・障害対応を具体的に語り、抽象的な原理に手触りを与える。
- 参考
データベースリライアビリティエンジニアリング
回復力のあるデータベースシステムの設計と運用
Laine Campbell, Charity Majors
理由: Kleppmann『データ指向アプリケーションデザイン』で分散システムの理論的トレードオフを理解したら、それを実際に動かし続ける運用の現実へ。Campbell と Majors の『データベースリライアビリティエンジニアリング』は Google の SRE 原則をもとに、分散データ基盤を本番で信頼性高く運用する具体策を与える。