Слои архитектуры и governance зависимостей
Статус
Модель слоёв стабилизирована (active). Изменения вносятся только через RFC.
Цель: иметь простую, проверяемую модель слоёв и зависимостей, чтобы изменения не размывали границы.
Слои (рабочая модель)
- Core engine (
angarabase): семантика SQL, транзакции, storage API, WAL/recovery primitives. - Adapters (
angarabased, будущие): pgwire/HTTP/admin surfaces, преобразование протоколов. - Tooling (
angara-cli,tools/*): утилиты, runners, тестовые harness’ы. - Distribution/Packaging tooling (
packaging/*,tools/release/*): release artifacts, signatures, package manifests, publication scripts. - Operational surfaces: конфигурация, runbooks, policies, evidence packs.
Правило зависимостей (самое важное)
- Core не зависит от adapters и tooling.
- Adapters могут зависеть от core.
- Tooling может зависеть от core и adapters (но без обратных крючков в core).
- Distribution/Packaging tooling может зависеть от tooling/core artifacts и не вносит runtime dependency в core/adapters.
Визуальная схема
flowchart TB
subgraph Core[Core engine (angarabase)]
CoreAPI[engine public API]
end
subgraph Adapters[Adapters (angarabased, pgwire, ...)]
Pgwire[pgwire]
Admin[admin surfaces]
end
subgraph Tooling[Tooling (angara-cli, tools/*)]
CLI[angara-cli]
Runners[test/bench runners]
end
Adapters --> Core
Tooling --> Core
Tooling --> Adapters
CoreAPI --> Core
Связанные документы
- Do-not-block constraints:
angarabook/src/architecture/constraints.md - Engine core карта:
angarabook/src/architecture/components/engine_core.md - Governance RFC:
RFC-2026-449-architecture-layering-and-dependency-governance-v0