2

オフライン クライアントをサポートするために、マルチバージョン同時実行制御を CQRS-DDD システムに適合させる方法を評価したいと考えています。

CouchDB から学んだことで、各エンティティにバージョン フィールドを提供したくなりました。ただし、ベクトル クロックのような他のバージョン同時実行アルゴリズムがあります。これにより、エンティティやイベントごとにこのバージョンの概念を公開するべきではないのではないかと思いました。

残念ながら、私が目にした実装のほとんどは、ソフトウェアが単一のサーバー上で実行され、イベントのタイムスタンプが 1 つの信頼できるソースから取得されるという前提に基づいています。ただし、一部のイベントがリモートおよびオフラインで生成される場合、ローカル クライアントのクロック オフセットに問題があります。その場合、通常のタイムスタンプは、イベントを順序付けするための信頼できるソースではないようです。

  1. これにより、タイムスタンプに基づいていない何らかの形式のMVCCソリューションを評価する必要がありますか?

  2. 遅延した一連のイベントを中央サーバーと同期するために、オフライン CQRS クライアントが評価する必要がある実装の詳細は何ですか?

  3. オープンソースの良い例はありますか?

  4. 私の DDD エンティティや CQRS クエリ DTO はバージョンパラメータを提供する必要がありますか?

4

3 に答える 3

0

ドメインを再考し、リモート クライアント ロジックを独自の制限されたコンテキストで分離し、BC 相互運用のための DDD の既知の原則を使用して他の BC と統合する必要があると思います。

于 2014-02-03T14:26:19.083 に答える