更新のために 2 つ、場合によっては 3 つの SOAP サービスに依存するサービスを設計しています。フローは、たとえば次のようになります。
- 私の SOAP クライアントは、システム A で customerUpdate を呼び出します
- 私の SOAP クライアントは、システム B で customerUpdate を呼び出します
ほとんどの場合、これで問題なく動作します。システムは非常に安定します (99% のアップタイムが目標です)。ただし、常に 1% になります。これをトランザクションに近づけるにはどうすればよいですか。
私はいくつかの文献や似たようなデザインの誰かの経験を探していましたが、今のところ成功していません.
問題は、SOAP 呼び出し 1 が正常に行われ、呼び出し 2 が失敗した場合に、呼び出し元にサービスを通知する方法です。
これまでのところ、次の解決策があります。
- システム A は更新されましたが、システム B は更新されませんでした。両方のシステムを更新するには、再送信する必要があります。
- 失敗したときに更新のキューを作成し、ユーザー システム B がオフライン/応答なしであるが更新されることを伝える SOAP 応答を返し、システム A が更新されます。
そのような場合にテストされた設計パターンに出くわした人はいますか? または、経験のある人が私を正しい方向に向けることができます.2つのうちどちらを優先する必要がありますか? どっちがメンテしやすい?
これが的を絞った質問ではなく、議論につながる可能性があることは承知していますが、それで問題ないことを願っています.