Разработка низколатентных и HFT-систем

Строим системы, где важны не средние, а хвосты: задержки p99 и p999, отсутствие джиттера, предсказуемый tick-to-trade. Матчинг-движки, шлюзы к биржам, обработка рыночных данных и торговые стратегии — на Rust и C++, с честными замерами латентности, а не «в среднем быстро».

Что входит

  • Матчинг-движки и биржевые/брокерские шлюзы
  • Обработка рыночных данных: FIX/SBE, ITCH/OUCH, нормализация фидов
  • Торговые стратегии и tick-to-trade: горячий путь без аллокаций и локов
  • Lock-free структуры: SPSC/MPSC ring buffers, wait-free очереди
  • Thread-per-core и io_uring (monoio/glommio), busy-poll, NUMA-пиннинг, isolcpus
  • Kernel bypass (DPDK), бэктест и симуляция, замеры p50/p99/p999

Вопросы про «низколатентные и hft-системы»

Чем это отличается от высоконагруженных систем?

Высоконагруженные системы оптимизируют пропускную способность (сколько запросов в секунду), HFT — хвост задержки (p99/p999) и отсутствие джиттера. Это разные инженерные компромиссы: здесь важнее детерминизм, чем средняя скорость.

На каких языках вы это делаете?

Rust и C++ — там, где нужен контроль над памятью, отсутствие пауз сборки мусора и предсказуемость горячего пути. Обвязку (мониторинг, конфигурация, бэктест) — на том, что удобнее команде.

Какие латентности реально достижимы?

Зависит от задачи и железа: от единиц микросекунд на tick-to-trade при kernel bypass и thread-per-core. Целевые p99/p999 фиксируем как критерий приёмки и подтверждаем гистограммами на вашем профиле нагрузки.

Нужно ли специальное железо?

Для предельных задержек — да: сетевые карты с kernel bypass, изоляция ядер, продуманная NUMA-топология. Но заметный выигрыш часто даёт и оптимизация софта на обычном железе — начнём с профилирования и честно скажем, где предел.

Заявка

Обсудим вашу задачу

Опишите задачу в свободной форме — вернёмся с уточняющими вопросами и предварительной оценкой в течение рабочего дня.

Нажимая кнопку, вы соглашаетесь с политикой обработки персональных данных. Ответим в течение рабочего дня.