6.1 KiB
Build 015.8 — Runtime Layer / Runtime Service
Статус: ✅ Accepted
Цель Build
Завершить построение базовой инфраструктуры Runtime Layer путём введения единой публичной точки входа — RuntimeService.
Build объединяет ранее реализованные компоненты Runtime в единый жизненный цикл выполнения, не нарушая принцип единственной ответственности.
Архитектурная задача
До Build 015.8 Runtime Layer уже содержал:
- Runtime Registry;
- Runtime Validation;
- Runtime Dependencies;
- Runtime Runner.
Однако отсутствовал компонент, объединяющий их в единый процесс выполнения.
Build 015.8 завершает базовую архитектуру Runtime Layer введением Runtime Service.
Реализованные компоненты
runtime/
protocol.py
registry.py
validation.py
dependencies.py
runner.py
service.py
exceptions.py
Реализовано
Создан новый компонент:
RuntimeService
Runtime Service предоставляет единый публичный API Runtime Layer.
Поддерживаются операции:
- регистрация Engine;
- удаление Engine;
- получение регистрации Engine;
- выполнение полного Runtime Pipeline.
Архитектура выполнения
Во время выполнения Runtime Service использует существующие компоненты Runtime.
RuntimeRegistry
↓
RuntimeValidation
↓
RuntimeDependencies
↓
RuntimeRunner
↓
RuntimeResult
Каждый компонент сохраняет собственную область ответственности.
Ответственность Runtime Service
Runtime Service отвечает исключительно за координацию жизненного цикла Runtime.
Он:
- не содержит аналитики;
- не реализует алгоритмы Engine;
- не принимает торговых решений;
- не интерпретирует результаты анализа;
- не содержит собственной логики проверки зависимостей;
- не содержит собственной логики запуска Engine.
Все специализированные задачи делегируются соответствующим Runtime-компонентам.
Публичный API
Реализован следующий публичный интерфейс:
register_engine(...)
unregister_engine(...)
get_engine(...)
analyze(...)
Метод analyze() возвращает единый объект RuntimeResult.
Runtime Pipeline
Во время анализа Runtime выполняет следующие этапы:
Registry
↓
Validation
↓
Dependency Resolution
↓
Engine Runner
↓
RuntimeResult
Таким образом Runtime Layer получил полностью определённый жизненный цикл выполнения.
Архитектурные результаты
Build завершил построение публичного фасада Runtime Layer.
После реализации:
- Coordinator больше не должен использовать внутренние Runtime-компоненты напрямую;
- Runtime Layer имеет единственную официальную точку входа;
- детали реализации Runtime полностью инкапсулированы;
- дальнейшее развитие Runtime возможно без изменения внешнего контракта.
Engineering Review
Architecture Review
Passed.
Runtime Service реализует исключительно координацию компонентов Runtime и не нарушает архитектурные границы.
Domain Review
Passed.
Runtime остаётся инфраструктурным слоем и не содержит аналитической либо торговой логики.
Code Review
Passed.
Выявлено:
- отсутствует дублирование логики;
- отсутствуют циклические зависимости;
- соблюдён принцип единственной ответственности;
- все существующие Runtime-компоненты используются повторно.
Runtime Review
Passed.
Жизненный цикл Runtime полностью соответствует ранее утверждённому Runtime Protocol.
ADR
В рамках Build принято следующее архитектурное решение.
Runtime Service является единственной публичной точкой входа Runtime Layer.
Внутренние компоненты Runtime (Registry, Validation, Dependencies, Runner) рассматриваются как детали реализации и не используются внешними слоями напрямую.
Compile Check
python -m compileall src/trading/market_intelligence
Результат:
Passed
Итог
Build 015.8 завершил построение базового Runtime Layer.
После завершения Build Runtime включает:
- Runtime Protocol;
- Runtime Registry;
- Runtime Runner;
- Runtime Dependencies;
- Runtime Validation;
- Runtime Service.
Runtime Layer готов к переходу к следующему этапу развития архитектуры — Coordinator Layer.