これに実装例が載っている。
http://www.codeproject.com/Articles/991648/CQRS-A-Cross-Examination-Of-How-It-Works
CQRS自体は知っていたけど、
具体的な実装例を見たことがなかったので、
参考になった。
read/writeでストレージ分けるというコンセプトは理にかなっていると思うし、
クラス設計自体はそんなに複雑なわけではない。
ただ、イベント発行にRabbitMQのようなメッセージングを利用する必要があるので、
システムアーキテクチャがちょっと複雑になったり、
結果整合性のみを担保するという特性上、
イベント発行に失敗した場合のエラーハンドリング&リカバリー処理が複雑になったり、
面倒な点も多いと思う。
使ってみたい気もするけど用途が限られるし、
最初からこれで作るのもちょっと違う気がしないでもない。
とはいえ、モノシリックに作ったのをCQRSで作り直すのは大変そうだから、
最初から導入した方がいいような・・・。
結局、「CQRSにピッタリハマった仕様じゃないと怖くて使えない」という
自分の保守的な面が思いっきり出る感じになった。