feat: add market data architecture and complete migration through build 039
This commit is contained in:
@@ -0,0 +1,215 @@
|
||||
# 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.
|
||||
|
||||
Это неизбежно привело бы к дублированию логики.
|
||||
|
||||
---
|
||||
|
||||
# Архитектурное решение
|
||||
|
||||
Введён новый архитектурный уровень:
|
||||
|
||||
```text
|
||||
Common Layer
|
||||
↓
|
||||
Runtime Layer
|
||||
↓
|
||||
Engine Layer
|
||||
↓
|
||||
Coordinator Layer
|
||||
```
|
||||
|
||||
Runtime становится единственной инфраструктурой выполнения Engine.
|
||||
|
||||
---
|
||||
|
||||
# Спроектированная структура Runtime
|
||||
|
||||
Определена следующая структура каталога.
|
||||
|
||||
```text
|
||||
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 создан новый раздел документации.
|
||||
|
||||
```text
|
||||
docs/market_intelligence/runtime/
|
||||
```
|
||||
|
||||
Созданы документы:
|
||||
|
||||
```text
|
||||
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
|
||||
|
||||
```text
|
||||
Build 014
|
||||
|
||||
runtime/protocol.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Итог
|
||||
|
||||
Build успешно завершил проектирование Runtime Layer.
|
||||
|
||||
Данный Build создаёт архитектурный фундамент для всех будущих аналитических Engine.
|
||||
|
||||
Статус Build:
|
||||
|
||||
```text
|
||||
ACCEPTED
|
||||
```
|
||||
Reference in New Issue
Block a user