26 lines
1.7 KiB
Markdown
26 lines
1.7 KiB
Markdown
# 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), но нивелируется кешированием
|