Ключевые сложности тут, как мне кажется, это 1) "простой сервис, который работает в три шага" и его надежность в вопросах обработки сбоев (а что будет, если машина, на которой он работает, вдруг взорвется?) и 2) вопросы масштабирования всего этого добра.
workflow engine вроде temporal.io дают примерно то же самое и больше (durable execution с защитой от ошибок инфраструктуры, тайм-ауты для шагов workflow, маштабируемость инфраструктуры worker'ов, версионирование workflows, историю выполнений), только явных state'ов и забот о persistence не нужно, за этим следит сервер. Можно просто писать код в предположении что всегда реализуется только golden path, а вычислительные ресурсы бесконечны :)
Ключевые сложности тут, как мне кажется, это 1) "простой сервис, который работает в три шага" и его надежность в вопросах обработки сбоев (а что будет, если машина, на которой он работает, вдруг взорвется?) и 2) вопросы масштабирования всего этого добра.
workflow engine вроде temporal.io дают примерно то же самое и больше (durable execution с защитой от ошибок инфраструктуры, тайм-ауты для шагов workflow, маштабируемость инфраструктуры worker'ов, версионирование workflows, историю выполнений), только явных state'ов и забот о persistence не нужно, за этим следит сервер. Можно просто писать код в предположении что всегда реализуется только golden path, а вычислительные ресурсы бесконечны :)