Files
dzentra_bot/docs/market_intelligence/builds/build-015-1-common-models-runtime-result.md

5.7 KiB
Raw Blame History

Build 015.1 — Common Models Extension / RuntimeResult

Engineering Build Document


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

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

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

Во время проектирования RuntimeProtocol было установлено, что Runtime не может возвращать EngineResult.

EngineResult описывает результат выполнения одного Engine.

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


Цель Build

Добавить в Common Layer модель:

RuntimeResult

RuntimeResult является единым контрактом результата выполнения Runtime Layer.


Architecture

RuntimeResult агрегирует результаты нескольких Engine.

Модель не содержит аналитики, не принимает торговых решений и не зависит от конкретных Engine.

Основной источник истины:

engine_results

Все производные данные вычисляются из него.


Architecture Review

Проверка подтвердила:

  • модель относится к Common Layer;
  • RuntimeResult нужен Runtime, Coordinator, стратегиям, диагностике и тестам;
  • производные данные не должны храниться отдельно;
  • RuntimeResult не должен зависеть от Runtime-реализации.

Архитектура Build признана корректной.


Architecture Decision (ADR)

Решение

Добавить RuntimeResult в common.models.

Статус

Accepted

Обоснование

Runtime выполняет несколько Engine и должен возвращать агрегированный результат.

Размещение RuntimeResult в Common Layer сохраняет однонаправленные зависимости и позволяет использовать модель разными слоями платформы.

Последствия

После принятия решения:

  • Runtime сможет возвращать единый результат выполнения;
  • Coordinator сможет работать с агрегированным контрактом;
  • исключается дублирование списков выполненных и ошибочных Engine;
  • RuntimeProtocol можно проектировать без временных моделей.

Build Design

Модель добавлена в файл:

app/src/trading/market_intelligence/common/models.py

Расположение:

EngineResult
↓
RuntimeResult

Implementation

Реализованы хранимые поля:

engine_results
diagnostics
started_at
finished_at
duration_ms
metadata

Реализованы вычисляемые свойства:

successful_results
failed_results
partial_results
stale_results
executed_engines
failed_engines
successful_engines
has_errors
is_successful
total_engines
successful_count

Compile Check

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

python -m compileall src/trading/market_intelligence

Результат:

  • успешно скомпилирован common/models.py;
  • синтаксические ошибки отсутствуют;
  • циклические зависимости отсутствуют.

Статус: Passed


Domain Review

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

RuntimeResult:

  • агрегирует результаты нескольких EngineResult;
  • не содержит аналитической логики;
  • не принимает торговых решений;
  • не зависит от Runtime-реализации;
  • не зависит от Coordinator;
  • не зависит от конкретных Engine;
  • производные данные вычисляются из engine_results.

Статус: Passed


Documentation

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

  • Build History;
  • Runtime Contract;
  • Common Models Documentation;
  • будущая документация Runtime Layer.

Acceptance

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

Выполнены:

  • Architecture
  • Architecture Review
  • Architecture Decision (ADR)
  • Build Design
  • Implementation
  • Compile Check
  • Domain Review
  • Documentation
  • Acceptance

Статус Build:

Accepted


Итоги Build

В результате Build 015.1:

  • Common Layer получил модель RuntimeResult;
  • Runtime Layer получил будущий выходной контракт;
  • Coordinator сможет работать с агрегированным результатом Runtime;
  • подготовлена основа для Build 015.2 — runtime/protocol.py.

Следующий Build

Build 015.2

Runtime Protocol

runtime/protocol.py