moex-vibe/docs/architecture/adr/ADR-001-backend-single-point-of-access.md

26 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ADR-001: Backend — Single Point of Access to MOEX
**Status:** Accepted
**Date:** 2026-06-13
**Deciders:** Architect, Tech Lead
## Context
Frontend должен отображать данные Московской биржи. MOEX ISS API отдаёт сырые данные со сложной структурой (вложенные таблицы, различные форматы). Прямые запросы с фронта приведут к дублированию логики нормализации, усложнят обработку ошибок и сделают систему зависимой от внешнего API.
## Decision
Backend (NestJS) является единственной точкой доступа к MOEX. Frontend никогда не обращается к MOEX напрямую.
Backend:
- Проксирует запросы к MOEX ISS
- Нормализует данные в доменные модели
- Кеширует ответы
- Обрабатывает ошибки MOEX (пустые данные, rate limit, таймауты)
- Предоставляет собственный OpenAPI-контракт для фронта
## Consequences
- Единый источник правды для трансформации данных
- Изоляция изменений MOEX API — меняется только MoexClient
- Централизованное кеширование сокращает количество запросов к MOEX
- Фронтенд остаётся тонким клиентом
- Дополнительная задержка (один hop), но нивелируется кешированием