2017-06-27 5 views
1

私は軸索凝集塊を持っています。それはコマンドを処理し、イベントを適用する前に、この検証に基づいていくつかのパラメータを検証するためにサードパーティのサービスを呼び出さなければなりません。それは良い練習ですか?または、コマンドを送信する前に検証を行っていますか?軸索集合体から第三者サービスを呼び出すのは良い考えですか?

@Aggregate 
public class SomeAggregate { 
[...] 
    @CommandHandler 
    public void someHandler() { 
    if(thirdPartyService.invoke) { 
     apply(...) 
    } 
    } 
} 

答えて

2

それは非ブロック(ドメイン)のサービス、有限状態マシンのようなものなら、最も可能性の高いすぐに完了するために起こっているので、それは、集約内から呼び出すしても大丈夫です。 しかし、私にとっては「サードパーティサービス」はアウトバウンドコールのように聞こえますが、時間がかかることがあります。

Axonが集約をロードすると、集約がブロックされるので、他のスレッドはそのステート/ハンドルコマンドを変更できません。 サードパーティのサービスは、集約がさらに長くブロックされることを意味します。

したがって、私はあなたの総計で第三者サービスを呼び出さないことをお勧めします。 集計に入る前にサービスに電話する

+0

スティーブン、ありがとう、それは私にとって意味がある! –

関連する問題