Files
dzentra_bot/docs/market_intelligence/builds/build-015-7-runtime-validation.md

7.6 KiB
Raw Permalink Blame History

Build 015.7 — Runtime Validation

Engineering Build Document


Контроль документа

Свойство Значение
Build 015.7
Название Runtime Validation
Статус Accepted
Подсистема Market Intelligence
Layer Runtime
Тип Architecture + Implementation
Версия 1.0
Язык Русский

Причина появления Build

После реализации компонентов:

  • Runtime Registry;
  • Runtime Runner;
  • Runtime Dependencies;

Runtime Layer получил возможность хранить зарегистрированные Engine, определять порядок их выполнения и запускать анализ.

Однако отсутствовала единая точка проверки корректности Runtime перед началом выполнения.

Проверка конфигурации Runtime должна выполняться централизованно и до запуска любого Engine.


Цель Build

Создать компонент:

RuntimeValidation

который подтверждает готовность Runtime Layer к выполнению анализа.


Architecture

RuntimeValidation получает:

RuntimeRegistry

и выполняет проверку корректности зарегистрированных Engine.

Компонент:

  • не создаёт Engine;
  • не запускает Engine;
  • не изменяет Registry;
  • не выполняет анализ рынка;
  • не строит граф зависимостей самостоятельно.

Проверка зависимостей делегируется компоненту:

RuntimeDependencies

Architecture Review

Подтверждено:

  • RuntimeValidation имеет единственную ответственность;
  • проверки отделены от Registry и Runner;
  • RuntimeDependencies используется повторно без дублирования логики;
  • Coordinator не участвует в проверке Runtime;
  • архитектурные зависимости соответствуют утверждённой модели Runtime Layer.

Статус: Passed


Architecture Decision (ADR)

Решение

В Runtime Layer вводится новый инфраструктурный компонент:

RuntimeValidation

Статус

Accepted

Обоснование

Runtime должен гарантировать собственную корректность до запуска первого Engine.

Для этого необходим отдельный компонент, который централизует все проверки конфигурации Runtime.

Проверка зависимостей выполняется посредством использования уже существующего RuntimeDependencies.

Это сохраняет принцип единственной ответственности и предотвращает дублирование логики.


Build Design

Создан файл:

app/src/trading/market_intelligence/runtime/validation.py

Обновлён файл:

app/src/trading/market_intelligence/runtime/exceptions.py

Implementation

Реализован класс:

RuntimeValidation

Публичный интерфейс:

validate(registry)

Во время проверки выполняются следующие этапы:

_validate_registry()
_validate_metadata()
_validate_duplicates()
RuntimeDependencies.resolve()

Добавлены новые исключения Runtime Validation:

RuntimeValidationError
EmptyRuntimeRegistryError
DuplicateEngineRegistrationError
InvalidEngineMetadataError

Compile Check

Проверка выполнена командой:

python -m compileall src/trading/market_intelligence

Результат:

  • успешно скомпилирован runtime/validation.py;
  • успешно обновлён runtime/exceptions.py;
  • синтаксические ошибки отсутствуют.

Статус: Passed


Domain Review

Проверено соответствие предметной области.

Подтверждено:

  • RuntimeValidation проверяет только готовность Runtime;
  • Engine не создаются;
  • Engine не запускаются;
  • Registry не изменяется;
  • RuntimeResult не формируется;
  • аналитическая логика отсутствует;
  • проверка зависимостей делегирована RuntimeDependencies.

Статус: Passed


Code Review / Runtime Review

Проверка успешно завершена.

Подтверждено:

  • компонент имеет единственную ответственность;
  • отсутствует дублирование проверки зависимостей;
  • используется существующий RuntimeDependencies;
  • корректно проверяются обязательные поля Metadata;
  • иерархия Runtime-исключений расширена без нарушения существующей структуры.

Во время Code Review также подтверждено, что проверка повторной регистрации Engine в текущей реализации практически недостижима из-за использования словаря в RuntimeRegistry. Тем не менее данная проверка сохранена как часть публичного контракта RuntimeValidation, что обеспечивает устойчивость архитектуры при возможном изменении внутренней реализации Registry.

Статус: Passed


Documentation

В рамках Build должны быть обновлены:

  • Build History;
  • Runtime Architecture;
  • Runtime Layer Documentation.

Runtime Contract не изменяется.


Acceptance

Build считается завершённым.

Выполнены:

  • Development Strategy
  • Architecture Design
  • Architecture Review
  • Architecture Decision
  • Build Design
  • Implementation
  • Compile Check
  • Domain Review
  • Code Review
  • Runtime Review
  • Documentation
  • Acceptance

Статус Build:

Accepted


Итоги Build

В результате Build 015.7 Runtime Layer получил централизованный механизм проверки собственной корректности.

Теперь Runtime способен:

  • проверять наличие зарегистрированных Engine;
  • проверять обязательные поля Metadata;
  • использовать RuntimeDependencies для проверки зависимостей;
  • подтверждать готовность Runtime до начала выполнения анализа.

После завершения Build 015.7 базовая инфраструктура Runtime Layer сформирована полностью.


Следующий Build

Build 015.8

Runtime Service

runtime/service.py