Статус: Draft Дата: 2026-04-29
1. Runtime modules
1 2 3 4 5 6 7 8 9 | |
Все модули используют одну БД control_plane_db.
2. api
Назначение:
- create intent;
- preview plan;
- start operation;
- show operation graph/timeline/nodes/logs/artifacts/evidence;
- approve/reject gates;
- retry/pause/resume/cancel operation;
- submit manual intervention;
- review/apply PlanPatch.
API является продуктовым contract для UI. Он не проксирует Temporal UI.
3. scenario-registry
Назначение:
- хранит ScenarioPack, Scenario, PlanTemplate, JobTemplate;
- валидирует job contracts;
- версионирует сценарии;
- предоставляет planner immutable template snapshot.
Правила:
- registry живет внутри
control-plane-service; - running operation ссылается на exact scenario/template version;
- изменение scenario не меняет уже запущенные operations.
4. planner
Назначение:
- превращает Intent + Scenario в concrete Plan DAG;
- нормализует parameters;
- группирует jobs в stages;
- вставляет gates по policy metadata;
- создает plan preview для UI.
Planner не выбирает concrete providers самостоятельно; он вызывает capability-resolver.
5. capability-resolver
Назначение:
- разрешает CapabilityRequirement через local catalog projections;
- выбирает existing provider или sub-operation;
- создает ResourceBinding;
- фиксирует resolution reason.
Правила:
- resolution должен быть explainable;
- ambiguous provider selection создает gate;
- projection можно использовать для preview, но перед стартом operation нужна command-time validation.
6. operation-manager
Назначение:
- управляет lifecycle Operation и OperationNodeRun;
- применяет ExecutionResult;
- создает timeline facts;
- блокирует/разблокирует gates;
- применяет approved PlanPatch;
- формирует final ResourceUpdateCommand.
Operation-manager является owner of operation state.
7. workflow-worker
Назначение:
- запускает generic Temporal workflow;
- интерпретирует Plan DAG;
- вызывает execution-plane activities;
- ожидает signals для gates, cancel, pause/resume, PlanPatch;
- обеспечивает durable retries/timers.
Правила:
- workflow не хранит domain source of truth;
- workflow reloads operation/plan state from DB at safe points;
- Temporal history не является product history.
8. policy-adapter
Назначение:
- проверяет permissions;
- определяет required approvals;
- классифицирует risk;
- запрещает destructive или unsafe transitions.
Policy implementation может быть OPA/Cedar/custom later. Модуль скрывает это за stable interface.
9. event-worker
Назначение:
- публикует operation domain events;
- потребляет catalog projection events;
- обновляет local resource/capability/topology projections;
- обеспечивает idempotent event handling.