6

CQRSで複数の集約ルートがどのように作成されるのか知りたいのですが。

例:受話器の集合ルートとSimcardの集合ルートがあります。これらのアグリゲートからのIDは、サブスクリプションアグリゲートルートの一部である必要があります。

SimCardとHandsetに基づいてサブスクリプションアグリゲートを作成する必要があります。SimCardとHandsetアグリゲートがシステムに存在しません。サブスクリプションが作成されるときに作成されます。サブスクリプションが削除された場合、SimCardとハンドセットは削除されません。ビジネス上の理由:ユーザーが同じハンドセットに異なるSimCardを挿入するか、ハンドセットがデュアルSimCardをサポートしている可能性があります。

ビジネスルール:電話番号は一意である必要があります。受話器のシリアル番号は一意である必要があります。1つのサブスクリプションが1つの受話器に関連付けられています1つの受話器が1つ以上の電話番号に関連付けられています。

Class Handset { 
  String serialNumber 
 Handset(UUID id,serialNumber){ 
    super(id); 
    this.serialNumber=serialNumber; 
} 
} 

Class SimCard{ 
  String phoneNumber 
  SimCard(UUID id, String phoneNumber){ 
     super(id); 
        this. phoneNumber= phoneNumber;
  } 
 } 

Class Subscription { 
     UUID id 
     UUID deviceid 
      UUID simCardid 

    Subscription (UUID id, UUID deviceid, UUID simCardid){ 
             Super(id); 
             This. Deviceid= deviceid; 
             This. simCardid= simCardid; 
     } 
     }
  • 引用テキストを非表示にする-
  • 引用テキストを表示する
4

1 に答える 1

4

これには Saga を使用できます。見る:

  1. サガ永続性とイベント駆動型アーキテクチャ
  2. メッセージング サガ
  3. Rhino Service Bus: Saga と State

Don't Create Aggregate Roots も参照してください。

于 2010-12-25T08:15:05.310 に答える