Files
dzentra_bot/docs/market_intelligence/builds/build-017-6-trading-service.md

5.3 KiB
Raw Blame History

Build 017.6 — Trading Service

Engineering Build Document


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

Свойство Значение
Build 017.6
Название Trading Service
Статус Accepted
Подсистема Trading
Layer Trading
Тип Architecture + Implementation
Версия 1.0
Язык Русский

Цель Build

Создать единую публичную точку входа Trading Layer.


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

После реализации компонентов:

  • TradingProtocol;
  • TradingValidation;
  • TradingRules;

Trading Layer получил все необходимые внутренние элементы, однако отсутствовал компонент, объединяющий их в единый рабочий процесс.

Эту роль выполняет TradingService.


Architecture

Создан компонент:

TradingService

Он реализует официальный контракт:

TradingProtocol

и обеспечивает последовательность выполнения:

CoordinatorResult
        │
        ▼
TradingValidation
        │
        ▼
TradingRules
        │
        ▼
TradingDecision

Architecture Review

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

  • Service является единственной публичной точкой входа Trading Layer;
  • Service принимает только CoordinatorResult;
  • Service возвращает только TradingDecision;
  • Service реализует TradingProtocol;
  • Service делегирует проверку TradingValidation;
  • Service делегирует формирование решения TradingRules;
  • Service не содержит собственной торговой логики;
  • Service не зависит от внутренних компонентов Runtime или Coordinator.

Статус: Passed


ADR

Принято решение объединить внутренние компоненты Trading Layer через единый сервис.

TradingService становится единственной точкой взаимодействия внешних слоёв с Trading Layer.

Все внутренние компоненты Trading инкапсулируются внутри Service.

Статус: Accepted


Implementation

Создан файл:

app/src/trading/market_intelligence/trading/service.py

Реализован класс:

TradingService

Публичный метод:

decide(
    coordinator_result: CoordinatorResult,
) -> TradingDecision

Внутренние зависимости:

TradingValidation
TradingRules

Последовательность работы:

Validation
        ↓
Rules
        ↓
TradingDecision

Compile Check

python -m compileall src/trading/market_intelligence

Результат:

Passed

Domain Review

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

  • компонент является публичной точкой входа Trading Layer;
  • принимает только CoordinatorResult;
  • возвращает только TradingDecision;
  • не содержит торговых правил;
  • не изменяет CoordinatorResult;
  • не обращается к Runtime / Coordinator internals;
  • не работает с биржей;
  • не исполняет сделки.

Статус: Passed


Code Review

Проверка пройдена.

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

  • TradingService реализует TradingProtocol;
  • публичный метод только один;
  • Validation и Rules не дублируются;
  • отсутствуют лишние зависимости;
  • отсутствует торговая логика.

Замечаний нет.

Статус: Passed


Acceptance

Build завершён.

Выполнены:

  • Development Strategy
  • Architecture Design
  • Architecture Review
  • ADR
  • Build Design
  • Implementation
  • Compile Check
  • Domain Review
  • Code Review
  • Documentation

Статус Build:

Accepted

Итог Build

Build 017.6 завершает построение Trading Foundation.

Trading Layer полностью сформирован и включает:

Trading

├── models
├── protocol
├── exceptions
├── validation
├── rules
└── service

Теперь Trading Layer обладает:

  • единым публичным API;
  • собственными моделями;
  • собственным пространством исключений;
  • механизмом предварительной проверки входных данных;
  • базовыми правилами формирования торгового решения;
  • сервисом-оркестратором.

Архитектурный фундамент Trading завершён.


Следующий Build

Build 018

Execution Layer Architecture