Комментарии 8
чем-то напоминает обсуждение давно забытого проекта:
https://www.youtube.com/watch?v=VZOnwBIl0Lk
но явно не хватает эксперта.
Хорошо когда можно тянуть яву. А вот сделать stack final state machine на мк с 200кб кучей? :)
Не холивара ради, мне правда интересно, а в чем проблема? Я когда-то на Плюсах делал. Вполне себе работало. Проблем небыло...
Так и я на плюсах делаю и проблем нет. А теперь в те же условия давайте яву засунем - а вот теперь у нас проблема.
Посыл я понял (про яву), только зачем ее туда совать (я про эти условия)? :-)
Я понимаю, что изречение банальное и избитое, но ява создавалась для других задач и в своей нише вполне лидирует, благо, пока не приходится экономить на памяти в проде.
Ключевые сложности тут, как мне кажется, это 1) "простой сервис, который работает в три шага" и его надежность в вопросах обработки сбоев (а что будет, если машина, на которой он работает, вдруг взорвется?) и 2) вопросы масштабирования всего этого добра.
workflow engine вроде temporal.io дают примерно то же самое и больше (durable execution с защитой от ошибок инфраструктуры, тайм-ауты для шагов workflow, маштабируемость инфраструктуры worker'ов, версионирование workflows, историю выполнений), только явных state'ов и забот о persistence не нужно, за этим следит сервер. Можно просто писать код в предположении что всегда реализуется только golden path, а вычислительные ресурсы бесконечны :)
Яндекс мог бы позволить себе и более амбициозные решения, чем забивать гвозди микроскопом. Вполне оправадано было бы, на мой взгляд, создать велосипед и поделиться с сообществом.
Стейт-машины: The Good, The Bad and The Ugly