Сервисы
runtime-engine
Оркестратор выполнения процессов Conveyor — продвижение графа по шагам, выбор транспорта и диспетчеризация задач.
runtime-engine — ядро исполнения: продвигает граф процесса по шагам, выбирает транспорт для каждого узла и диспетчеризует задачи. Работает только по TCP RPC от control-plane, без собственного HTTP-сервера.
На какие вопросы отвечает раздел: Кто продвигает процесс по шагам? Как настраиваются ретраи диспетчеризации? С кем общается engine?
Цель
Надёжно выполнить граф процесса: определить готовые шаги, отправить их исполнителям и обработать результаты.
Задачи
- оркестрация Запуска, ack/result шагов;
- выбор транспорта по типу узла (
nodeType → TransportConfig); - диспетчеризация задач в очереди с ретраями;
- чтение каталога плагинов из Postgres для резолва транспорта (без записи).
Требования
- PostgreSQL и Redis (BullMQ);
- runtime-control-plane (TCP RPC в обе стороны);
- secret-manager (резолв секретов), file-service (файлы по diagram/run).
Ограничения
- только TCP RPC от control-plane: ack/result шагов принимает ingress, не сам engine.
- каталог плагинов ведёт plugin-manager (engine читает его для резолва транспорта).
- бизнес-логика и retry внутри шага — в узлах/плагинах.
Настройки и переменные окружения
| Переменная | Зачем | На что влияет | По умолчанию |
|---|---|---|---|
RUNTIME_ENGINE_RPC_TCP_PORT | Порт TCP RPC движка | Приём RPC от control-plane | 3000 |
CONTROL_PLANE_TCP_CONNECT | Адрес control-plane (TCP) | can_dispatch, dispatch ingress | runtime-control-plane:3001 |
CONTROL_PLANE_HTTP_BASE_URL | HTTP control-plane | Совместимость/внутренние вызовы | http://runtime-control-plane:3000 |
DISPATCH_MAX_ATTEMPTS | Макс. попыток sendToExecutor | Сколько раз ретраить диспетчеризацию до failed | 5 |
DISPATCH_RETRY_BASE_MS | База backoff | Задержка между ретраями диспетчеризации | 300 |
PLUGIN_CONTROL_PLANE_KEY | Ключ control-plane | Доступ к внутренним маршрутам | — |
PLUGIN_CONTROL_PLANE_ALLOW_CIDRS | Allowlist CIDR | Кто может обращаться к ingress | 0.0.0.0/0 |
API_BASE_URL | Адрес api | Загрузка файлов движком | http://api:3000 |
SECRETS_TCP_CONNECT | Адрес secret-manager | Резолв секретов при подготовке шага | secret-manager:3000 |
FILE_SERVICE_BASE_URL | Адрес file-service | Файлы по diagram/run | http://file-service:3000 |
SEARCH_SERVICE_TCP_CONNECT | Адрес search-service | Поиск/индексация (опц.) | search-service:3000 |
DATABASE_URL / REDIS_HOST / REDIS_PORT | БД и очереди | Состояние Запусков и задачи | — / redis / 6379 |