超久しぶりのブログ…。 Octopressに疲れたのではてなブログに戻ってきました(Octopressの過去の記事ははてなブログにインポート済です)。ついでプロに移行。
さて、海外のDDDコミュニティではCQRS+Event Sourcing(以下, ES)が人気なのですが、ようやく日本でも話題になることが多くなったので今回は教材となりそうな書籍を簡単に紹介したいと思います。
DDD といえば まず エリック・エヴァンスのドメイン駆動設計 (以下 DDD本) を読むべきですが、CQRSについては記載がないので 実践ドメイン駆動設計 を読みましょう。
- 作者: ヴァーン・ヴァーノン
- 出版社/メーカー: 翔泳社
- 発売日: 2015/03/19
- メディア: Kindle版
- この商品を含むブログ (2件) を見る
さらにDDD本には ES の基礎となる ドメインイベント の解説が含まれていません。そのドメインイベントの概要を掴みたければ、実践ドメイン駆動設計に記載があります。
より実装イメージを掴みたいという人には、以下の本がお勧めです。ただし、コードはC#ですが、より実装視点での知見が得られる本です。
.NETのエンタープライズアプリケーションアーキテクチャ 第2版 (マイクロソフト公式解説書)
- 作者: Dino Esposito,Andrea Saltarello,日本マイクロソフト(監訳),クイープ
- 出版社/メーカー: 日経BP社
- 発売日: 2015/06/04
- メディア: 単行本
- この商品を含むブログ (3件) を見る
非同期でノンブロッキングなアーキテクチャでC10K問題を解決するには、Scalaでの実装手段はいろいろあると思いますが、Akkaはその一つです。また、AkkaはDDD+CQRS+ESへの考慮も為されいるツールキットです。ということで、AkkaでDDDをやる場合、参考になるのは以下の書籍らしいです。実践ドメイン駆動設計 の著者(Vaughn Vernon氏)が書いた書籍で、設計上の概念のみならずAkkaでの実装例なども紹介されています。
Reactive Messaging Patterns with the Actor Model: Applications and Integration in Scala and Akka
- 作者: Vaughn Vernon
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2015/07/13
- メディア: Kindle版
- この商品を含むブログを見る
さらに読書会もあるので、興味がある方は参加してみてはどうでしょうか?(僕も参加する予定)
あと、gihub上の参考になるコード例としては以下をあげておきます。ddd-leaven-akka-v2は、akka-dddをベースしたサンプルです。コード量は結構あるので読むには気合いがいると思いますが…。先に上の書籍で概念を押さえてからの方が無難です。
GitHub - pawelkaczor/ddd-leaven-akka-v2: Next generation of ddd-leaven-akka
GitHub - pawelkaczor/akka-ddd: Akka/EventStore DDD framework
関連するブログ記事はこちらです。
Reactive DDD with Akka | Write less, do more!
Reactive DDD with Akka - lesson 2 | Write less, do more!
Reactive DDD with Akka - lesson 3 (Projections) | Write less, do more!
DDD+CQRS+ESとは直接的に関係ないのですが、Reactive Messaging Patterns with the Actor Model: Applications and Integration in Scala and Akka でよく引用されている書籍です。Akkaで提供されている機能のほとんどは、EIPを読むと理解できると思います。
- 作者: Gregor Hohpe,Bobby Woolf
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2012/03/09
- メディア: Kindle版
- この商品を含むブログを見る
Java EE読書会のドキュメントも併読すると参考になるかもしれません。 EIP - Java EE勉強会
なぜCQRSやESが必要になったのかは、別のエントリで書く予定。