すべての集約内で一貫性を保証する必要があります。データベースまたはフレームワークからのトランザクションをいつでも使用できるため、リポジトリで行うのは簡単です。リポジトリの外で何が起こるかについては疑問があります。サービスは、リクエストを処理するために複数の集約と連携する必要がある場合があります。サービスでの処理中、または集計の永続化中に問題が発生する可能性があります。
サービスの処理中に何か問題が発生した場合、例外を発生させることができます。そうすれば、操作はアトミックになります。これが私の最初の懸念です。それは良い習慣ですか?私が見ている問題は、そこから回復するのが難しいということです。すべての集計を、操作が失敗する前の状態のままにしておく簡単な方法はありません。
私が抱えているもう 1 つの問題は、集約の 1 つを永続化できない場合にどうなるかということです。情報の一貫性を確保するにはどうすればよいですか? リポジトリの外部でデータベース トランザクションを使用する必要がありますか? ドメイン モデルを設計しているときにデータベースのことを考えるべきではないので、これは最善の解決策ではないかもしれないと考えていました。