Архитектура

Converged спроектирован как модульная платформа, но не как хаотичный набор микросервисов. Разделение простое: интерфейс показывает и запускает действия, Runtime исполняет процессы, микросервисы владеют данными, адаптеры подключают оборудование и внешние системы.

Пользователь / клиент UI и микрофронтенды Runtime: workflow, cron, интеграции, ИИ-действия Микросервисы: типизированные API и собственные данные Storage / Behemoth / файлы / SQL / KV / метрики Оборудование, мессенджеры, платёжные и внешние сервисы

Микросервисы намеренно остаются тонкими. Каждый сервис отвечает за свою область данных, валидацию и типизированный API. Он не должен знать внутреннюю логику соседних сервисов и не должен превращаться в скрытый центр бизнес-процессов. Это снижает связность и делает систему проще для сопровождения.

Вся сквозная логика вынесена в Runtime. Если нужно принять заказ, запросить несколько сервисов, создать задачу, запустить уведомление, дождаться события и обновить статус, это исполняется в workflow. Runtime не хранит постоянное состояние у себя: историю, переменные и результаты он записывает через сервисы, которые владеют своими хранилищами.

Хранилище строится вокруг изоляции. Вместо одной общей базы каждый домен получает собственные границы данных: SQL, key-value, файловое хранилище, колоночные данные, векторные индексы или графовые связи там, где это нужно. Такой подход помогает переносить рабочие пространства, ограничивать доступ и избегать общей базы, в которой смешаны данные разных клиентов.

Фронтенд также модульный. Общая оболочка загружает независимые микрофронтенды через import map, поэтому отдельные части интерфейса можно развивать без полной пересборки всего продукта. Для пользователя это остаётся одной системой, а для разработки — набором независимых зон ответственности.