0

DDD を使用して e コマース システムを構築しています。このシステムには、2 つの境界付けられたコンテキストがあります:Identity & AccessSales.

顧客は、フォームに名前、電子メール、パスワードを入力して登録できます。次に、Salesコンテキストで、顧客を次のように登録します。

$customer = new Customer($request->name, $request->email);
$this->customers->add($customer);

Customer集約はイベントを発生させCustomerWasRegisteredます。

Identity & Accessコンテキストはこのイベントに反応し、その顧客の集計を作成しSystemUserます。

$user = new SystemUser($email, $password);
$this->users->add($user);

私の質問:アグリゲートはパスワード (およびイベント)Customerを認識していないためです。このパスワードをリクエストからコンテキストCustomerWasRegisteredに取得するにはどうすればよいですか?Identity & Access

4

1 に答える 1

0

ここに 2 つの解決策があります。

  1. 「CustomerWasCreated」イベントの受信後にユーザーを作成する I&A のドメイン ポリシーが本当に必要な場合は、新しい顧客にパスワードを要求したくない場合があります。代わりに、アカウントをアクティブ化するためのリンクを送信して、ユーザー (非アクティブ) が作成されます。この戦略は非常に頻繁に使用されますが、プロセスが完了するまでログインできません。
  2. 私がすること - この作業を、2 つの BC 間で作業を調整するプロセス マネージャーに委任します。PC はパスワードを認識し、必要な詳細を含む適切なコマンドを送信します。

どちらの場合も、セールス BC にパスワードを送信することは避けます。

于 2016-02-26T12:12:27.230 に答える