# Market Intelligence WebSocket Request Research Standard

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

| Свойство | Значение |
|----------|----------|
| Документ | Market Intelligence WebSocket Request Research Standard |
| Тип документа | Engineering Standard |
| Версия | 1.0 |
| Статус | Release |
| Проект | Dzentra |
| Подсистема | Market Intelligence |
| Язык | Русский |

---

# Назначение

Настоящий документ определяет единый стандарт исследования источников рыночной информации, использующих модель **WebSocket Request / Response**.

Настоящий стандарт применяется совместно с документом:

> **Market Intelligence Research Methodology**

Методология определяет общий процесс проведения исследований.

Настоящий документ определяет перечень исследований, выполняемых для WebSocket Request endpoint.

---

# Область применения

Настоящий стандарт применяется при исследовании WebSocket endpoint, использующих модель "запрос → ответ".

Примеры:

- `wss:/api/v1/depth`
- `wss:/api/v1/ticker/24hr`
- `wss:/api/v1/aggTrades`
- `wss:/api/v1/klines`
- `wss:/api/v1/time`
- `wss:/api/v1/exchangeInfo`

---

# Цель исследования

Для каждого WebSocket Request endpoint необходимо определить:

- какие информационные факты предоставляет endpoint;
- каким образом формируется запрос;
- каким образом формируется ответ;
- отличается ли ответ от REST;
- как данные связаны с другими источниками;
- каким образом endpoint может использоваться подсистемой Market Intelligence.

---

# 1. Исследование подключения

## 1.1 WebSocket-соединение

Проверить:

- [ ] корректность подключения;
- [ ] требования к соединению;
- [ ] требования к авторизации;
- [ ] timeout подключения;
- [ ] ограничения соединения;
- [ ] возможность повторного подключения.

---

## 1.2 Формат запроса

Для каждого запроса определить:

- [ ] destination;
- [ ] correlationId;
- [ ] payload;
- [ ] обязательные поля;
- [ ] необязательные поля;
- [ ] допустимые значения;
- [ ] ограничения.

---

## 1.3 Формат ответа

Для каждого ответа определить:

- [ ] структуру ответа;
- [ ] обязательные поля;
- [ ] необязательные поля;
- [ ] типы данных;
- [ ] диапазоны значений;
- [ ] сообщения об ошибках.

---

# 2. Исследование семантики полей

Для каждого поля определить:

- [ ] фактическое назначение;
- [ ] источник происхождения;
- [ ] обязательность;
- [ ] диапазон значений;
- [ ] взаимосвязь с другими полями;
- [ ] ограничения использования;
- [ ] степень подтверждения семантики.

---

# 3. Исследование информационных фактов

Для каждого ответа определить:

- [ ] какие информационные факты содержит ответ;
- [ ] какие информационные факты могут быть вычислены;
- [ ] какие информационные факты отсутствуют;
- [ ] какие факты являются первичными;
- [ ] какие факты являются производными.

---

## 3.1 Первичные информационные факты

Для каждого факта определить:

- [ ] destination;
- [ ] поле ответа;
- [ ] степень подтверждения;
- [ ] ограничения использования.

---

## 3.2 Производные информационные факты

Для каждого производного факта определить:

- [ ] формулу вычисления;
- [ ] необходимые исходные данные;
- [ ] ограничения вычисления;
- [ ] степень достоверности.

---

# 4. Исследование поведения запросов

Определить:

- [ ] время ответа;
- [ ] повторяемость ответов;
- [ ] влияние параметров запроса;
- [ ] возможность параллельных запросов;
- [ ] ограничения частоты запросов;
- [ ] поведение при ошибках.

---

# 5. Исследование поведения ответов

Определить:

- [ ] является ли ответ снимком состояния;
- [ ] содержит ли ответ агрегированные данные;
- [ ] содержит ли ответ исторические данные;
- [ ] содержит ли timestamp;
- [ ] отличается ли ответ от REST.

---

# 6. Проверка эквивалентности

Для каждого информационного факта определить:

- [ ] существует ли аналогичный REST endpoint;
- [ ] существует ли аналогичный Stream;
- [ ] полностью ли совпадает значение;
- [ ] совпадает ли семантика;
- [ ] совпадает ли точность;
- [ ] совпадает ли момент формирования данных;
- [ ] имеются ли расхождения.

---

## 6.1 Альтернативные источники

Для каждого информационного факта определить:

- [ ] REST endpoint;
- [ ] WebSocket Stream;
- [ ] другие WebSocket Request;
- [ ] внутренние вычисления.

---

## 6.2 Приоритет источников

Для каждого информационного факта определить:

- [ ] основной источник;
- [ ] резервный источник;
- [ ] допустимые альтернативы;
- [ ] причины выбора приоритетного источника.

---

# 7. Исследование протокола

Проверить:

- [ ] correlationId;
- [ ] destination;
- [ ] обработку ошибок;
- [ ] timeout;
- [ ] повторный запрос;
- [ ] повторное подключение;
- [ ] потерю соединения;
- [ ] восстановление соединения;
- [ ] обработку нескольких одновременных запросов;
- [ ] гарантии получения ответа.

---

# 8. Исследование производительности

Определить:

- [ ] среднее время ответа;
- [ ] максимальное время ответа;
- [ ] минимальное время ответа;
- [ ] средний размер ответа;
- [ ] максимальный размер ответа;
- [ ] влияние параметров запроса на производительность.

---

# 9. Практическая ценность

Определить:

- [ ] какие информационные факты предоставляет endpoint;
- [ ] какие факты отсутствуют;
- [ ] может ли endpoint быть основным источником;
- [ ] может ли endpoint быть резервным источником;
- [ ] какие подсистемы Dzentra потенциально могут использовать endpoint;
- [ ] ограничения использования в runtime.

---

# 10. Ограничения исследования

Определить:

- [ ] что подтверждено;
- [ ] что предварительно подтверждено;
- [ ] что осталось гипотезой;
- [ ] что опровергнуто;
- [ ] что невозможно определить данным исследованием.

---

# 11. Итоги исследования

По результатам исследования определить:

- [ ] степень пригодности endpoint;
- [ ] степень полноты исследования;
- [ ] сильные стороны;
- [ ] ограничения;
- [ ] рекомендации по использованию;
- [ ] необходимость дополнительных исследований.