Files
dzentra_bot/docs/market_intelligence/builds/build-013-runtime-architecture.md

5.5 KiB
Raw Blame History

Build 013 — Runtime Architecture

Build ID: 013

Компонент: Runtime Layer

Статус: Accepted

Тип Build: Architecture Build


Цель Build

Спроектировать архитектуру слоя Runtime подсистемы Market Intelligence.

До начала реализации первого аналитического Engine необходимо определить единый механизм выполнения движков.

В рамках Build проектируется инфраструктурный слой Runtime, который станет основой для всех последующих Engine.

Исходный код в рамках данного Build не создаётся.


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

После завершения Common Layer платформа получила единый набор:

  • моделей;
  • типов;
  • диагностических структур;
  • проверки корректности;
  • snapshot;
  • payload;
  • событий.

Следующим логическим уровнем архитектуры является Runtime.

Без Runtime каждый Engine был бы вынужден самостоятельно решать вопросы:

  • запуска;
  • обработки ошибок;
  • проверки результата;
  • формирования fallback;
  • взаимодействия с Coordinator.

Это неизбежно привело бы к дублированию логики.


Архитектурное решение

Введён новый архитектурный уровень:

Common Layer
        ↓
Runtime Layer
        ↓
Engine Layer
        ↓
Coordinator Layer

Runtime становится единственной инфраструктурой выполнения Engine.


Спроектированная структура Runtime

Определена следующая структура каталога.

runtime/

├── __init__.py
├── protocol.py
├── base.py
├── runner.py
├── registry.py
├── dependencies.py
└── validation.py

Каждый файл получил единственную область ответственности.


Основные обязанности Runtime

Runtime отвечает исключительно за инфраструктуру выполнения аналитических Engine.

В область ответственности Runtime входят:

  • единый контракт Engine;
  • единый жизненный цикл выполнения;
  • безопасный запуск Engine;
  • обработка исключений;
  • Runtime Validation;
  • регистрация Engine;
  • управление зависимостями;
  • формирование безопасного EngineResult.

Runtime не содержит аналитической логики.


Основные архитектурные принципы

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

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

Документация

В рамках Build создан новый раздел документации.

docs/market_intelligence/runtime/

Созданы документы:

runtime/README.md

runtime/architecture.md

Теперь Runtime имеет собственную архитектурную документацию, независимую от Build History.


Реализованные изменения

Исходный код не создавался.

Выполнено архитектурное проектирование Runtime Layer.


Compile Check

Не требуется.

Build содержит исключительно архитектурную документацию.


Architecture Review

Статус: PASSED

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

  • правильное положение Runtime в архитектуре;
  • отсутствие нарушения слоёв;
  • независимость Runtime от Engine;
  • независимость Runtime от AutoTrade;
  • отсутствие циклических зависимостей.

Domain Review

Статус: PASSED

Runtime остаётся инфраструктурным уровнем.

Торговая логика отсутствует.

Аналитическая логика отсутствует.


Documentation Review

Созданы новые документы Runtime.

Build History подлежит обновлению.

README Runtime создан.

Архитектурная спецификация Runtime создана.


Следующий Build

Build 014

runtime/protocol.py

Итог

Build успешно завершил проектирование Runtime Layer.

Данный Build создаёт архитектурный фундамент для всех будущих аналитических Engine.

Статус Build:

ACCEPTED