Перейти к основному содержимому

Архитектура

Graphene — control plane вокруг durable workflows. У него одна публичная дверь и несколько независимо поставляемых клиентов и runtime-компонентов.

Сервер и одна дверь

Сервер graphene — единственная публичная endpoint инсталляции. Один listener обслуживает Management API браузера и graphenectl, worker- и agent-протоколы, proxy к Temporal, OTLP ingest, health probes и proxy container registry. Поэтому аутентификация и выбор namespace применяются на одной границе.

Сервер владеет системными kinds, арбитражем ранов, материализацией исходников, токенами и секретами, blob storage и адаптерами telemetry backends. Temporal — его durable execution core, а не публичный authoring API.

Бинарь пайплайна

Пайплайн — скомпилированная программа на Go SDK pipeline. Один бинарь:

  • записывает типизированный manifest и оптимистичный plan;
  • реализует проектные команды plan, push, run;
  • обслуживает роль run- или machine-worker, выбранную окружением.

Resource libraries регистрируют собственные activities и kinds в этом worker. Серверу не нужен зашитый каталог провайдеров.

Агент

Агент представляет одну Linux-машину. Он открывает постоянное исходящее соединение, сообщает facts и health, принимает ограниченные host operations и через runc размещает один machine-worker container на ран. Пользовательский код пайплайна в контейнере обслуживает очередь машины; агент не является вторым workflow engine.

Записи и клиенты

Каждый ресурс — durable-запись. Системные и принесённые библиотеками kinds используют одну модель identity, ownership, lifecycle, commands и observability. graphenectl узнаёт kinds и commands из словаря инсталляции; Studio работает с тем же Management API и не имеет собственного серверного контракта.