プロジェクトで DDD\CQRS\ES を使用したいと考えています。使い始めたばかりなので経験が少ないです。既存のコア ドメイン、サポート ドメイン、および CRUD ドメインを認識しています。私のコア ドメインには、CRUD データへの参照があります。例えば Order にはたくさんのビジネスルールがありますが、配送業者や受け取り場所などの基本的な情報が含まれています。
これらの情報は管理者が管理しています。私の意見では、crud アプローチを使用する必要がありますが、イベントをロールバックする必要がある場合はどうなりますか?
システムは、イベント ソースから復元されたデータとアプリの crud 部分から実際に復元されたデータの混合を保存します。一貫性のないデータになってしまいます。たとえば、注文は存在しない会社によって維持されている可能性があります (その会社は、パッケージが配信されたときに管理者によって削除されましたが、ロールバック注文がまだアクティブになっている場合) すべてのプロジェクトで CRUD データの一部であるため、この問題にどのように対処しますか? 会社のイベントを保存する必要がありますか?
さらに、新しい注文を追加するときは、会社名と ID をイベント経由で送信する必要があります。これは、 ReadStore を再構築するときに、データベースに会社がない可能性があるため、リポジトリから companyName を取得できないためです。
PS。単純な CRUD 操作で処理する CRUD フレームワークを知っていますか?
PS.2 ES\CQRS アプローチでアプリの CRUD 部分を含むオープンソース プロジェクトの例を知っていますか?
Ok。多分私はそれを複雑に説明しすぎました。ただ知りたいだけです:
コア ドメインをイベント ストアに保存し、コア ドメインの以前の状態を元に戻したい場合に、アプリケーションの最も単純な部分 (貧弱なビジネス ロジック - 主に CRUD 操作) を実装する方法
イベントストアにもcrud操作を保存する必要がありますか?
ロールバック イベント ストア後に一貫性のあるデータを提供するにはどうすればよいですか?
Java アプリケーションに推奨する CRUD フレームワークはどれですか?