feat: add market data architecture and complete migration through build 039
This commit is contained in:
226
docs/market_intelligence/builds/build-015-8-runtime-service.md
Normal file
226
docs/market_intelligence/builds/build-015-8-runtime-service.md
Normal file
@@ -0,0 +1,226 @@
|
||||
# Build 015.8 — Runtime Layer / Runtime Service
|
||||
|
||||
**Статус:** ✅ Accepted
|
||||
|
||||
---
|
||||
|
||||
# Цель Build
|
||||
|
||||
Завершить построение базовой инфраструктуры Runtime Layer путём введения единой публичной точки входа — `RuntimeService`.
|
||||
|
||||
Build объединяет ранее реализованные компоненты Runtime в единый жизненный цикл выполнения, не нарушая принцип единственной ответственности.
|
||||
|
||||
---
|
||||
|
||||
# Архитектурная задача
|
||||
|
||||
До Build 015.8 Runtime Layer уже содержал:
|
||||
|
||||
- Runtime Registry;
|
||||
- Runtime Validation;
|
||||
- Runtime Dependencies;
|
||||
- Runtime Runner.
|
||||
|
||||
Однако отсутствовал компонент, объединяющий их в единый процесс выполнения.
|
||||
|
||||
Build 015.8 завершает базовую архитектуру Runtime Layer введением Runtime Service.
|
||||
|
||||
---
|
||||
|
||||
# Реализованные компоненты
|
||||
|
||||
```text
|
||||
runtime/
|
||||
|
||||
protocol.py
|
||||
registry.py
|
||||
validation.py
|
||||
dependencies.py
|
||||
runner.py
|
||||
service.py
|
||||
exceptions.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Реализовано
|
||||
|
||||
Создан новый компонент:
|
||||
|
||||
```text
|
||||
RuntimeService
|
||||
```
|
||||
|
||||
Runtime Service предоставляет единый публичный API Runtime Layer.
|
||||
|
||||
Поддерживаются операции:
|
||||
|
||||
- регистрация Engine;
|
||||
- удаление Engine;
|
||||
- получение регистрации Engine;
|
||||
- выполнение полного Runtime Pipeline.
|
||||
|
||||
---
|
||||
|
||||
# Архитектура выполнения
|
||||
|
||||
Во время выполнения Runtime Service использует существующие компоненты Runtime.
|
||||
|
||||
```text
|
||||
RuntimeRegistry
|
||||
↓
|
||||
RuntimeValidation
|
||||
↓
|
||||
RuntimeDependencies
|
||||
↓
|
||||
RuntimeRunner
|
||||
↓
|
||||
RuntimeResult
|
||||
```
|
||||
|
||||
Каждый компонент сохраняет собственную область ответственности.
|
||||
|
||||
---
|
||||
|
||||
# Ответственность Runtime Service
|
||||
|
||||
Runtime Service отвечает исключительно за координацию жизненного цикла Runtime.
|
||||
|
||||
Он:
|
||||
|
||||
- не содержит аналитики;
|
||||
- не реализует алгоритмы Engine;
|
||||
- не принимает торговых решений;
|
||||
- не интерпретирует результаты анализа;
|
||||
- не содержит собственной логики проверки зависимостей;
|
||||
- не содержит собственной логики запуска Engine.
|
||||
|
||||
Все специализированные задачи делегируются соответствующим Runtime-компонентам.
|
||||
|
||||
---
|
||||
|
||||
# Публичный API
|
||||
|
||||
Реализован следующий публичный интерфейс:
|
||||
|
||||
```python
|
||||
register_engine(...)
|
||||
unregister_engine(...)
|
||||
get_engine(...)
|
||||
analyze(...)
|
||||
```
|
||||
|
||||
Метод `analyze()` возвращает единый объект `RuntimeResult`.
|
||||
|
||||
---
|
||||
|
||||
# Runtime Pipeline
|
||||
|
||||
Во время анализа Runtime выполняет следующие этапы:
|
||||
|
||||
```text
|
||||
Registry
|
||||
↓
|
||||
Validation
|
||||
↓
|
||||
Dependency Resolution
|
||||
↓
|
||||
Engine Runner
|
||||
↓
|
||||
RuntimeResult
|
||||
```
|
||||
|
||||
Таким образом Runtime Layer получил полностью определённый жизненный цикл выполнения.
|
||||
|
||||
---
|
||||
|
||||
# Архитектурные результаты
|
||||
|
||||
Build завершил построение публичного фасада Runtime Layer.
|
||||
|
||||
После реализации:
|
||||
|
||||
- Coordinator больше не должен использовать внутренние Runtime-компоненты напрямую;
|
||||
- Runtime Layer имеет единственную официальную точку входа;
|
||||
- детали реализации Runtime полностью инкапсулированы;
|
||||
- дальнейшее развитие Runtime возможно без изменения внешнего контракта.
|
||||
|
||||
---
|
||||
|
||||
# Engineering Review
|
||||
|
||||
## Architecture Review
|
||||
|
||||
Passed.
|
||||
|
||||
Runtime Service реализует исключительно координацию компонентов Runtime и не нарушает архитектурные границы.
|
||||
|
||||
---
|
||||
|
||||
## Domain Review
|
||||
|
||||
Passed.
|
||||
|
||||
Runtime остаётся инфраструктурным слоем и не содержит аналитической либо торговой логики.
|
||||
|
||||
---
|
||||
|
||||
## Code Review
|
||||
|
||||
Passed.
|
||||
|
||||
Выявлено:
|
||||
|
||||
- отсутствует дублирование логики;
|
||||
- отсутствуют циклические зависимости;
|
||||
- соблюдён принцип единственной ответственности;
|
||||
- все существующие Runtime-компоненты используются повторно.
|
||||
|
||||
---
|
||||
|
||||
## Runtime Review
|
||||
|
||||
Passed.
|
||||
|
||||
Жизненный цикл Runtime полностью соответствует ранее утверждённому Runtime Protocol.
|
||||
|
||||
---
|
||||
|
||||
# ADR
|
||||
|
||||
В рамках Build принято следующее архитектурное решение.
|
||||
|
||||
> Runtime Service является единственной публичной точкой входа Runtime Layer.
|
||||
|
||||
Внутренние компоненты Runtime (`Registry`, `Validation`, `Dependencies`, `Runner`) рассматриваются как детали реализации и не используются внешними слоями напрямую.
|
||||
|
||||
---
|
||||
|
||||
# Compile Check
|
||||
|
||||
```text
|
||||
python -m compileall src/trading/market_intelligence
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
```text
|
||||
Passed
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Итог
|
||||
|
||||
Build 015.8 завершил построение базового Runtime Layer.
|
||||
|
||||
После завершения Build Runtime включает:
|
||||
|
||||
- Runtime Protocol;
|
||||
- Runtime Registry;
|
||||
- Runtime Runner;
|
||||
- Runtime Dependencies;
|
||||
- Runtime Validation;
|
||||
- Runtime Service.
|
||||
|
||||
Runtime Layer готов к переходу к следующему этапу развития архитектуры — Coordinator Layer.
|
||||
Reference in New Issue
Block a user