7章

時間軸でモデルを作る

 前の章で、複雑な業務ロジックの実装方法として、ドメインモデルを説明しました。ドメインモデルを組み立てる部品、ドメインモデルの目的、そしてドメインモデルの使いどころを学びました。この章ではイベント履歴式ドメインモデルを説明します。基本となる考え方はドメインモデルと同じです。イベント履歴式ドメインモデルも、複雑な業務ロジックと中核の業務領域を対象にします。さらに言えば、モデルを構成する基本部品も同じです。つまり、値オブジェクト集約そして業務イベントです。

 二つが異なるのは、集約の状態を永続化する方法です。イベント履歴式ドメインモデルでは、イベントソーシングを使って集約の状態を管理します。つまり、集約の状態を永続化するのではなく、集約の状態が変化したことを業務イベントで表現し、業務イベントの履歴を「真実を語る唯一の情報源」(the source of truth)として永続化します。

 この章では、最初にイベントソーシングという考え方を紹介します。次に、イベントソーシングとドメインモデルを組み合わせた、イベント履歴式ドメインモデル(event-sourced domain model)について説明します。

7.1 イベントソーシング

フローチャートを見てもテーブルを見ないと何もわかりません。テーブルのデータを見ればフローチャートを見る必要はありません。

*1 F. P. Brooks Jr著『The Mythical Man-Month: Essays on Software Engineering』(Addison-Wesley、1974年)(邦訳『人月の神話』ピアソンエデュケーション、2002年)

 イベントソーシングがどのようなもので、従来のモデリングやデータの永続化と何が違うかを理解するために、このフレッド・ブルックスの考え方を使ってみましょう。 ...

Get ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.