Обновить
0
0

Пользователь

Отправить сообщение

Mне кажется, у концепта есть два жёстких предела,

Первый: право - это не только интерфейсы и протоколы, а принятие решений в условиях неполной информации и размытых понятий. "Вред", "разумность", "соразмерность", "добросовестность" - это не типы, которые забыли дописать, а специально оставленная гибкость, чтобы система не ломалась на краях. В эпоху LLM это особенно видно: смысл и контекст по природе вероятностные, и как ни старайся "застатик-типизировать" мир, он всё равно придёт в рантайм с шумом, исключениями и неоднозначностью. Ещё Азимовские "строгие" законы робототехники как раз регулярно ломались об это. Да и вся эта когнитивная революция вобщем-то про это.

Второй: нелинейный рост сложность - мифический человеко час и тп. Как только ты пытаешься покрыть спецификацией реальную жизнь, количество сущностей, исключений и "особых случаев" растёт комбинаторно. Каждый новый закон/поправка - это не аккуратный PR, а ещё один слой условностей, обратных совместимостей и конфликтов между модулями. В итоге компилятор начинает проверять не "справедливость", а то, что система из исключений сама с собой согласована - и получается огромная кодовая база, где баги превращаются в социальные эксплойты, а рефакторинг становится политически невозможным. Поддержка станосится не просто очень сложной, а невозможной.

Мне очень нравится Temporal - по удобству это на голову выше всех этих дагов и диаграмм. Но если честно, вся эта магия сводится к одной простой вещи: нужны сериализуемые продолжения выполнения (по сути — возможность заморозить текущее состояние куска кода и потом разморозить его). И для этого не нужна какая-то новая тяжёлая архитектура. Нужно просто где-то хранить состояние - и это может быть что угодно: Kafka или любой другой брокер сообщений, обычная реляционная база, да хоть просто файл, в зависимости от того какие конкретно гарантии нужны.

Обсервабилити тоже нигде не пришита намертво - бери любую, которая уже есть.

И вот чего я не понимаю: почему большие игроки до сих пор не делают нормальных сериализуемых продолжений выполнения? И это правда несложно - я сам набросал прототип буквально за пару недель https://github.com/javactrl/javactrl-kafka. Для Microsoft или Oracle такая задача вообще ерунда. Но Microsoft, вместо того чтобы просто сохранять состояние, почему-то в своём Durable Task решил идти путём перезапусков.

Не все системы типа темпорал тяжеловестны (https://github.com/javactrl/javactrl-kafka), ИИ тут это обычный вайбкодинг (который можно верефицировать).

Можно ещё сильно упростить бизенес-логику за счет workflow-as-code, которые превращает простой Java код в Kafka Stream процессор - https://github.com/javactrl/javactrl-kafka

Интересно было бы сравнение между no-code, low-code системами и worflow-as-code, типа temporal.io

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность