Files
slm-design/DRAFT/level-3/dependencies.md

3.0 KiB
Raw Blame History

Зависимости Level 3

Уточнение графа зависимостей Level 2 внутри Domain.

Связанные правила

Направление внутри Domain

Исходный role module Допустимые зависимости
business Собственные segments, нейтральный shared, ограниченные type-only contracts другого business module
Adapter Business contracts, infra, concrete runtime и neutral shared
Preset Business factory/contracts, private или promoted adapters
react Business contracts, готовый business API и React runtime
Composition graph owner Public preset, framework module и готовые API instances

Business не импортирует adapters, presets, framework modules, infra, product SDK, storage, framework runtime, browser/Node API или environment configuration. Adapter не импортирует preset или framework module. Preset не импортирует framework module.

Междоменные зависимости

Business одного Domain не создаёт factory другого Domain и не вызывает другой Domain runtime API напрямую. Если orders нужна capability авторизации, orders/business описывает собственный минимальный port, а graph owner передаёт реализацию над уже собранным AuthApi.

Auth preset
  → AuthApi
  → orders assembly
  → OrdersApi

Type-only import public business contract другого Domain допустим только при реальной ацикличной зависимости. Он не даёт права вызвать другой Domain runtime API. Direct runtime import даже pure function не является обходом port boundary: независимое общее правило должно принадлежать shared, а предметная capability передаётся через port.

Environment boundaries

Server-only preset или adapter получает отдельный public entrypoint и framework/build marker. Он не реэкспортируется через business, react, client-compatible preset или root Domain.

business               # isomorphic
presets/application    # client-compatible, если выбранные adapters совместимы
presets/request        # server-only
react                  # client framework module

Путь server/ или client/ сам по себе ничего не доказывает. Проверяется transitive import graph entrypoint.