Процессы
Архитектура без сети зависимостей
Converged — это открытая платформа, в которой сообщество может создавать, соединять и постоянно обновлять тысячи Сервисов, модулей и Рабочих процессов. Эти компоненты развиваются независимо, но при этом должны точно работать вместе.
В традиционных сервисных архитектурах по мере роста системы это создаёт серьёзную проблему: каждый новый компонент может добавлять новые связи с существующими компонентами. Прямые вызовы, цепочки зависимостей, сервисная сеть, маршрутизация и обработка отказов постепенно формируют отдельный слой растущей сложности. Когда тысячи компонентов разрабатываются и обновляются независимо, поддерживать такую сеть связей становится всё труднее.
Converged решает эту проблему на уровне архитектуры: Сервисы ничего не знают друг о друге и никогда не вызывают друг друга напрямую. Вместо сети прямых зависимостей система использует два уровня композиции: UI объединяет данные, а Рабочие процессы объединяют операции в бизнес-процессы.
Композиция данных и бизнес-процессов
На уровне UI данные из нескольких Сервисов можно запрашивать параллельно и объединять в рамках одного пользовательского контекста. Лёгкие функции без состояния могут получать данные из разных источников, преобразовывать их и формировать данные, необходимые Поверхности или Представлению. Самим Сервисам не нужно знать, где и рядом с какими другими данными будут использоваться их результаты.
Операции и автоматизированные процессы выполняются через Рабочие процессы (Workflows). Рабочий процесс — это отдельный сценарий, состоящий из последовательности скриптов и операций. Он определяет, какие действия следует выполнить, в каком порядке, какие шаги могут выполняться параллельно, где процесс должен ожидать событие и что происходит при сбое операции.
Платформа может содержать тысячи независимых Рабочих процессов. Каждый из них может использовать существующие Сервисы и скрипты, не создавая прямых зависимостей между самими Сервисами.
Например, один Рабочий процесс может объединять запрос, расчёт цены, согласование, постановку в очередь, производство, контроль качества, оплату и доставку. Другой Рабочий процесс может использовать те же Сервисы для совершенно иного процесса.
Выполнение через Centimanus
Centimanus — это DAG-движок, выполняющий Рабочие процессы. Он управляет зависимостями между шагами, параллельным выполнением, ожиданием событий, повторами, восстановлением после сбоев и состоянием длительных процессов.
Каждый Рабочий процесс является независимым сценарием, а Centimanus предоставляет единый механизм выполнения для всех них. Поэтому добавление нового процесса не требует изменения существующих Сервисов или создания новых прямых связей между ними.
Это особенно важно для открытой платформы. Сообщество может добавлять новые Сервисы, скрипты и Рабочие процессы, не создавая каскад зависимостей по всей системе.
В результате число компонентов и процессов может вырасти до тысяч, не вызывая пропорционального роста сложности их связей. Сервисы остаются независимыми, данные объединяются на уровне UI, а операции комбинируются через отдельные Рабочие процессы.
Это даёт Converged архитектурное преимущество при масштабировании: система может расширяться за счёт новых компонентов и сценариев, не превращая их взаимодействие в постоянно растущую сеть прямых зависимостей.
Открытая экосистема
Для разработчиков новые возможности добавляются через Сервисы, скрипты без состояния и Рабочие процессы. ИИ-агенты также могут запускать разрешённые действия в рамках существующих сценариев, оставаясь в пределах определённых правил и ограничений.
Для обычных пользователей эта сложность остаётся скрытой. Им не нужно управлять Сервисами, строить графы или понимать их зависимости. Готовые Рабочие процессы поставляются вместе с решениями, а пользователи могут настраивать их с помощью правил, ролей, сроков, интеграций и уведомлений.
Пользователь просто включает необходимый процесс и получает управляемый результат.