ORM が作業単位を使用して複数のリポジトリを 1 つのステップでコミットするのを見てきました。
また、DDD と、リポジトリを介して保存された集約ルートの使用も見てきました。イベント ストアの永続性を使用すると、概念的に理解することが非常に明確になります。
私は常にデータ アクセス コードを記述する必要があり、ORM には精通していますが、ドメイン駆動設計とイベント ソーシングは初めてです。イベント ソーシングは優れていますが、多くのインフラストラクチャが付属しています。
最終的には、どの時点 (コード サイズ、データベース エンティティの数) で DDD+ES が CRUD システムよりも余分な労力を費やす価値があるかを判断するのに役立ついくつかのルールが必要です。
私の質問を決定するのに役立つのは次のとおりです。
単一の作業単位に結合された集約ルートを見たことがありませんが、これは回避できますか? もしそうなら、これはどのような問題を引き起こす可能性がありますか?
DDD では、顧客エンティティに住所と電話番号が埋め込まれている場合があります (値オブジェクト)。一方、ORM では、顧客、電話番号、および住所リポジトリを使用した作業単位があります。これらの異なるアプローチを説明し、理解するための最良の方法は何ですか?
ORM は複数の異なる作業単位 (それぞれが関連および関連するリポジトリ/テーブルを参照する) を使用して集約ルートを表すことができますか?
ドメインから ORM へのインピーダンスの不一致で注意すべき問題/警告の兆候は何ですか? その時点で、イベント ストアへの切り替えを検討できますか?