それを考慮して:
これは結局不良データにつながりませんか? 「ユーザーエンティティでのパスワードの再試行回数を節約させて」の使用例を考えてみましょう。攻撃者がログインするために多数の複数のクライアント要求を実行した場合、それは問題になりませんか?インスタンスAがエンティティをフェッチし、インスタンスBが同じエンティティをフェッチし、インスタンスAがそれを変更/保存し、インスタンスBがAの変更/保存に気づかずに元のエンティティを変更/保存します。
リポジトリパターン は、同時実行性の問題を解決することを意図していません。永続エンティティを操作する便利な方法を提供するだけです。
原則として、次のものと組み合わせてリポジトリパターンを使用します。
また、同時実行パターンは複雑なトピックです。マーティンファウラーは、優れた著書 Patterns of Enterprise Architecture で、たとえば次の代替案を示しています。
ただし、さまざまなデータベースにさまざまなサービスのデータがあるマイクロサービスアーキテクチャでは、より創造的な代替手段を使用します。たとえば、Chris Richardsonは、彼の優れた Microservices Patternssaga pattern を提案します:ロックする代わりに2フェーズコミットスキームのデータでは、ステータス管理でdo/undoロジックに従うステップのオーケストレーションを使用します。