2

から:

データが変更されるたびに維持する必要がある一貫性ルールである不変条件には、AGGREGATE のメンバー間の関係が含まれます。AGGREGATES にまたがるルールは、常に最新であるとは限りません。イベント処理、バッチ処理、またはその他の更新メカニズムを通じて、指定された時間内にその他の依存関係を解決できます。ただし、AGGREGATE 内で適用される不変条件は、各トランザクションの完了時に適用されます。

a) これは、複数の集約間の一貫性を維持するように設計されたルールは、これらの集約の 1 つが変更を永続ストレージに保存している時点で強制する必要はなく、後で強制することができると言っていると解釈します。この集約は、永続ストレージとのトランザクションをすでに完了していますか?

b) しかし、一貫性のないデータや破損したデータにつながるため、なぜそのような動作が許容されるのでしょうか?

ありがとうございました

4

1 に答える 1

2

a)。正しい。集約は整合性境界として定義できます。他の集計など、その境界の外側にあるものは、後続のトランザクションの一部として容認できるように更新できるエンティティです。これが結果整合性です。

b)。多くの場合、一時的に古くなったデータはビジネスの観点からは許容され、明示的に議論する必要があります。また、不一致は、通常は一貫していると見なされる場所に実際に現れます。たとえば、あるサービスからデータを要求して受信するとすぐに、アンビエント トランザクションがない限り、データの一貫性が失われる可能性があります。要求されたリソースがリモートの場合、トランザクションは分散される必要があり、したがって2PCのすべての落とし穴の対象となります。

イベント駆動型アーキテクチャに関するUdi Dahan の記事を参照してください。この記事では、ビジネスの観点から結果整合性について説明しています。

于 2013-01-15T19:32:17.463 に答える