私は過去9か月間CQRSプロジェクト(私の最初のプロジェクト)に取り組んできましたが、これは大変な学習曲線でした。現在、書き込みモデルでJOliverの優れたEventStoreを使用しており、読み取りモデルでPostGresSqlを使用しています。
私の読み取りデータベースと書き込みデータベースはどちらも同じマシン上にあります。つまり、書き込みデータベースに変更が加えられると、同じ同期呼び出しで読み取りモデルに変更が加えられます。
CQRSを学んでいたとき、MassTransit、NServiceBusなどのメッセージキュー/サービスバスフレームワークの経験がなかったので、これが最善の方法だと感じました。
私は今、メッセージキューフレームワークを導入するために私のアーキテクチャのほとんどを整えているところです。
今日、ServiceStackの一部であるRedis MQに出くわしましたが、RestベースのHTTPクライアントにすでにServiceStackを使用しているため、これは正しい方法のようです。
私の質問は、Redis MQを実装するために知っておくべきこと(または誤解があるかどうか)を理解することと、RedisMQが正しい選択であるかどうかについてです。
私が理解していることから、書き込みデータベースと読み取りデータベースの間の永続的なキューとしてRedisMQを使用します。イベントストアがドメインで何かが発生したことを記録すると、RedisMQに公開されます。イベント/メッセージをリッスンするサービスは、Redis MQからイベント/メッセージを受信し、処理(つまり、読み取りモデルの更新または書き込み)が完了すると、通知/応答がイベントストアに戻って、イベントストアに次のことを通知します。メッセージはリスナー/サブスクライバーによって受信および処理されました。
この音は正しいですか?
また、Redis MQアーキテクチャは、NSB、RavenDB、MassTransitなどが提供するすべてのものを提供してくれますか?
また、Windows2008および2003サーバーに展開します。これらのOSに対してRedisは安定していますか?