Files
dzentra_bot/docs/market_intelligence/builds/build-015-8-runtime-service.md

6.1 KiB
Raw Blame History

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.