Задача
Необходимо разработать или доработать существующего клиента для захвата заявок на P2C (Peer-to-Customer) платформе через Telegram WebSocket API. Текущая реализация критически проигрывает в скорости получения ордеров - требуется обеспечить минимальную задержку (sub-second) и высокую пропускную способность.
Ключевые требования
- Использование WebSocket для потокового получения данных (ордеров, обновлений статуса).
- Настройка асинхронной обработки: параллельные подключения, event loop.
- Оптимизация сетевого слоя: уменьшить tcp/ssl overhead, поддержка заголовков keep-alive.
- Интеграция с любыми P2C-площадками через публичный API (ТЗ уточнит эндпоинты).
- Возможность масштабирования: до 10 000+ одновременных каналов.
- Логирование и мониторинг скорости, таймингов и ошибок.
Предпочтительные технологии
- Python (asyncio, aiohttp/websockets) или Node.js (ws, cluster). Сильный профит - опыт с WebSocket на Go/Rust.
- Библиотеки для работы с high-load: uvloop, pyzmq, pook (для тестирования).
- База данных - PostgreSQL/TimescaleDB (для хранения заявок), Redis (для кэша швов).
- Докер для тестов (Dockerfile, compose).
Что важно учесть
- Демпфирование реконнектов: алгоритмы повторного подключения с экспоненциальной задержкой без перегрева API.
- Защита от утечки памяти при длительной работе (пиковое потребление < 1GB).
- Возможность кастомизации фильтров по типу заявки, цене, паре.
- Тестовый стенд: эмуляция 10 000 сообщений/с для верификации скорость.
Исполнителю нужно прислать код, упакованный в <code>репозиторий</code> или архив с инструкцией по развёртыванию/Git-логов. Этапность - MVP в первую неделю, затем заточка под лимиты данного заказчика.