2.4 KiB
2.4 KiB
F3 План: библиотека модулей Go-ядра (deferred)
Дата: 2026-03-14
Статус: deferred
Владелец: Engineering
1) Цель
- Подготовить ядро к формату внутренней библиотеки модулей, чтобы backend собирался из чётких переиспользуемых пакетов.
- Снизить связность
app/*и закрепить стабильные интерфейсы orchestration/PBR/transport/resolver.
2) Принцип scope
linux-first: библиотека ориентирована на Linux runtime backend.netns— отладочный/инфраструктурный модуль для backend/desktop тестового контура.mobile (iOS/Android)не является целью дляnetns-модуля.- Для mobile не планируется
netnsслой: только вызовы backend API (control-plane), без platform-specific system hooks. - GUI/Web/Mobile должны использовать только API control-plane, а не прямые системные модули.
3) Целевые пакеты
pkg/orchestrator— lifecycle orchestration (prepare/start/stop/restart/rollback) и locking.pkg/transport— shared transport-модели/валидация/runtime helpers.pkg/pbr— marks/tables/prefs allocator + compiler.pkg/resolver— resolver policy/execution primitives.pkg/netnsdebug(илиpkg/netns) — Linux-only netns setup/cleanup helpers для debug/test-contour.
4) Шаги реализации (будущий этап)
- Выделить публичные интерфейсы зависимостей (runner, nft/ip adapters, state store, logger).
- Перенести код в
pkg/*без изменения поведения. - Оставить
app/*как thin-facade + HTTP слой. - Добавить compile/runtime guardrails для Linux-only модулей.
- Обновить runbook миграции и интеграционные чеклисты.
5) Критерии готовности
- Backend-сборка не зависит от монолитных
app/*helper-блоков. netnsмодуль чётко помечен как Linux-only и debug/test-oriented.- Внешние API (
/api/v1/*) не меняются. go test ./...зелёный после миграции.