私が所有するサイトには、うまく機能している単純な CQRS アーキテクチャがあります。イベントは発行され、さまざまなサブスクライバーによって取得されます。そのうちの 1 つが [RavenDb で] レポート データベースの同期を維持します。
たとえば、レポート データベースが破損または紛失したとします。イベント ソーシングを使用すると、イベントを再生してレポート データベースを再構築できますが、[現在] イベント ソーシングは使用していません。リレーショナル ストアへの単純な nHibernate 永続化機能があります。解決策は、基本的にリレーショナル ストアに基づいてすべてのイベントを送信する「再生成」タイプのスクリプトを作成することでしょうか (たとえば、PersonCreatedEvent に続いて 30xPersonLikedBlogPostEvent など)。基本的にイベント ソースと同じことを行いますが、イベントはリレーショナル モデルから推測されます。
保守性と DR は明らかに重要であるため、ここでは困惑しています。