目的の動作を実現するために協力して情報を交換する必要がある2つのワークフローサービス(ステートマシン)があります。
私が抱えている問題(ただし、ステートマシンが1つしかない場合もあります)は、現在の状態で許可されていない操作を送信しようとすることがあることです。
2つの問題があります:1)操作が許可されなかったことを知るために操作タイムアウトを待たなければなりません2)他の問題のために実際のタイムアウトを「マスク」しています
これまでに、2つの可能な解決策を見つけました:1)署名を変更してtrue(許可)とfalse(許可されていない)を返し、すべての操作をすべての状態に追加できます(許可されていない操作は自己遷移をトリガーします)2)常にすべての遷移をすべての状態に追加します(許可されていない場合は自己遷移がトリガーされます)が、許可されていない遷移の場合は例外を送信します
どちらが最適なオプションか知りたいです(もちろん、他の可能な解決策もありがたいです)。また、例外を除いてリクエストに応答する方法を知りたいです(おそらく、try / catch内にスローしますか?)。
ありがとう