5.5 KiB
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