MSDNのパターンアンドプラクティスチームは近頃、CQRS Journey Guidanceプロジェクトを発表した。このプロジェクトはDDDとCQRSとイベントソーシングを使ってContoso Conference Management Systemの構築するサンプルプロジェクトだ。
このサンプルは高スケーラブルで高可用なアプリケーションをターゲットにしている。モデリングにはDDD、CQRS、イベントソーシングを使っている。DDDとCQRSの組み合わせを使う必要なない(また、CQRSとイベントソーシングの組み合わせも同様)が、実践では両者は相性が良い。
このプロジェクトは主に.NET上に構築されるが、一部はWindows Azureのコンポーネントを使っている。スナプショットや、非同期呼び出し、メッセージの動的調整、メッセージのフィルタリング、サービスバスのパーティショニング、データのキャッシュなどさまざまな最適化手法が紹介されている。
チームは3つの異なるバージョンでこのプロジェクトを実装しており、停止時間なしでアップグレードできる(メンテナンスモードにはなるが)。本物のプロジェクトのように作ることでリアリティを出しているのだ。
このサンプルを提供する最適な方法は、困難に直に直面し、克服して、その教訓を共有できるプロジェクトに取り組むことでした。
“Tales from the Trenches”という別の章も設けられている。既にCQRSとESを使っている企業の例だ。
このプロジェクトを開発するために、チームはさまざまな専門家から助言をもらっている。専門家は謝辞で紹介されている。