次の状況を考えてみましょう: エンティティ A に更新要求があり、サブエンティティ AB を作成するために、A に多くの B が存在する可能性があり、各 B には一意の電子メール アドレスがあります。エンティティ A は共有エンティティであり、同じ要求が複数のサーバーで並行して発生する可能性があります (スケーラブルなマイクロサービス)。
AB を作成するには、B が A のサブ エンティティとして存在していないことを確認する必要があります (B の電子メール アドレスによる)。
この更新要求を処理するサービスは、更新を安全にするために、(一意の ID によって) A をロックする必要があります。
私の質問は、技術的なものよりも概念的なものです。
この場合、リソース A をロックすることは、この更新タスクのビジネス ロジックの一部ですか?
検証と更新の手順を処理するミドルウェアとは別のミドルウェアにリソース ロックを配置することを検討しますか? (もう 1 つのオプションは、ロックをビジネス ロジックの一部として扱い、ビジネス ロジックを担当するミドルウェアに直接配置することです。)