Задача

Необходимо разработать или доработать существующего клиента для захвата заявок на 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 в первую неделю, затем заточка под лимиты данного заказчика.