Статус: Draft Дата: 2026-04-29
1. Allowed operations
Catalog-level operations:
- create/update/archive resource metadata;
- create/update topology objects;
- create/update relationships;
- publish capability definitions;
- attach/revoke provided capabilities;
- update desired/observed state;
- update health summary;
- rebuild read models.
Not allowed:
- execute Ansible/Helm/kubectl/OpenTofu;
- run operation DAG;
- decide retries/rollback;
- approve gates;
- apply PlanPatch.
2. Final resource update flow
sequenceDiagram
participant CP as control-plane-service
participant RC as resource-catalog-service
participant DB as resource_catalog_db
participant Kafka as Kafka
CP->>RC: ResourceUpdateCommand(expected_version)
RC->>DB: validate version and apply changes
DB-->>RC: new resource version
RC->>Kafka: resource.updated / capability.provided
RC-->>CP: accepted(new_version)
3. Observer flow
flowchart LR
Source[Kubernetes/API/Agent] --> Observer[observer]
Observer --> Normalize[normalize observed state]
Normalize --> DB[(resource_observed_state)]
DB --> Projector[projector]
Projector --> Health[resource_health_summary_view]
4. Rebuild rules
Read models must be rebuildable:
1 | |
If read model rebuild fails, canonical tables remain source of truth.
5. Operational metrics
Required metrics:
- catalog API latency;
- resource update conflicts;
- projection lag;
- observer freshness per source;
- read model rebuild duration;
- Kafka consumer lag;
- outbox publish failures.