API でリクエストを受け取ったら、一連のステップを実行したいと思います。それぞれがチェックまたはエンリッチメントです。各ステップは、成功または失敗する可能性があります。成功したら、次のステップを実行する必要があります。失敗すると、終了ステップが実行され、フローが完了します。そのために、私はSpring State Machineを検討しました.それは法案に合っているようです.
ドキュメントを読んで遊んでみましたが、いくつかのことがわかりません:
リクエストとステート マシンの間に 1 対 1 の関係が必要ですか。つまり、リクエストごとに新しいステート マシン インスタンスを作成する必要がありますか? または、次の要求のためにマシンをリセットして、完成したステート マシンを再利用する必要がありますか?
完成したステートマシンのクリーンアップはどうですか? State Machine インスタンスを破棄してクリーンアップする方法はないようです。リクエストごとに 1 つ作成すると、フレームワークが何らかの方法でリソースを処理しない限り、実質的にメモリ リークが発生します。