Слои архитектуры и governance зависимостей
Статус
Модель слоёв стабилизирована (active). Изменения вносятся только через RFC.
Цель: иметь простую, проверяемую модель слоёв и зависимостей, чтобы изменения не размывали границы.
Слои (рабочая модель)
- Core engine (
angarabase): семантика SQL, транзакции, storage API, WAL/recovery primitives. - Adapters (
angarabased, будущие): pgwire/HTTP/admin surfaces, преобразование протоколов. - Tooling (
angara-cli, CI, harnesses): утилиты, runners, тестовые harness’ы. - Distribution/Packaging tooling (packaging, release scripts): 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, CI, harnesses)] 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