2012-01-18 7 views
1

ドメイン固有のサービスを管理する最良の方法は何ですか?たとえば:金融分野では、グローバルサービス「AccountCreation」や「CheckingAccountCreation」、「CreditcardAccountreation」などが必要です。サービスの細分性

私はそれらをグローバルレベルに保つか、製品レベルに保つかは苦労しています。最善のアプローチは何ですか?

答えて

2

データには、どのようなデータがあり、一貫性を保つためにどのデータが必要なのかがまずわかります。次に、そのデータの周囲の振る舞いに焦点を当てます。金融ドメインで

、私はなどグローバルサービス「AccountCreation」または「CheckingAccountCreation」、「CreditcardAccountreation」を持っているべき

この例では、私はあなたが「アカウント」を持っていることを言うだろうあなたが明らかにいくつかのアカウントを持っているからです。例えば、アカウント番号を複製したり、不正防止規則を適用したり、作成ワークフローを管理したりしないようにする必要があります。

あなたの例では、 :当座預金口座を作成し、クレジットカード口座を作成します。これらは、サービスが所有するデータの突然変異をもたらすため、サービスに送信する適切なコマンドになります。

「顧客」サービスを追加しても、アカウントサービスとは区別されます。つまり、アカウントから顧客への参照をIDで参照するだけでなく、アカウントサービスと一致する必要はありません。

また、一般的に、両方の部分に触れる共通の振る舞いはありません。顧客のデータを更新すると、アカウントの詳細に直接触れてはならず、アカウントを更新しても顧客の詳細は変わりません。

カスタマーサービスによって「顧客が学生になった」とリスニングするアカウントサービスなど、別のサービスを変更するビジネスルールを1つのサービスに設定して内部処理を行う場合があります。

+0

+1この回答に+1。データに焦点を当てる。トランザクション上一貫性が必要なデータをまとめてください。その分析を行い、それらのバケットのデータをまとめておけば、サービスが表示されます。 – Dan

関連する問題