Цель
Парсер, который подключается к нескольким биржам по WebSocket и собирает стаканы ордеров (order book) по всем торговым парам в реальном времени. Биржи
Возможность добавлять новые биржи без переписывания ядра.
Что должен делать
1. При старте получить список торговых пар с каждой биржи (REST API)
2. Подписаться на обновления стаканов по всем парам через WebSocket
3. Хранить актуальный стакан (top 20 уровней bid/ask) по каждой паре в памяти
4. Отдавать данные через простой HTTP API
Масштаб
- 6 бирж, 500-800 пар на каждой- 20-60 параллельных WebSocket-соединений (у каждой биржи свои лимиты на количество подписок в одном соединении)
- Суммарный поток: ~5 000-10 000 сообщений/сек
Ключевые сложности
- У каждой биржи свой протокол: разный формат сообщений, разный ping/pong (JSON, строка "ping", бинарный), разная группировка подписок (combined streams, batch subscribe, per-symbol subscribe)
- Нормализация символов: должно приводиться к единому формату
- Поддержание соединений: автоматический реконнект при обрыве, exponential backoff, keepalive
- Фильтрация устаревших данных: если сообщение пришло с задержкой >1 сек — отбрасывать
Требования
- Средняя задержка обработки: <150-200ms
- Структурированные логи
Опубликован 26.03.2026 в 16:48