Коэффициенты, которые не отстают от матча · Codelabs
RU|EN|KK
← Все кейсы
CASE 03Букмекерский конвейер реального времени

Коэффициенты, которые не отстают от матча

Букмекеру приходит поток изменений коэффициентов по 12 видам спорта. Их нужно мгновенно разложить по матчам и разослать во все открытые браузеры так, чтобы никто не увидел устаревшую цену и не успел поставить по ней. Мы написали для этого собственное ядро на C++ и свой протокол доставки: если у игрока оборвалась связь, он получит не мусор, а корректно восстановленную картину.

Real-timeC++Ставки

Как это устроено

Фид приходит двумя каналами — REST и AMQP — и нормализуется в единую модель по 12 видам спорта. Снапшот линии лежит в Redis, около 0.9 млн живых ключей; дальше расходятся только изменения.

Раздача идёт через собственный протокол поверх WebSocket: порядок событий гарантирован, обрыв связи не оставляет клиента с обрывками, а батчинг не даёт браузеру захлебнуться в час пик.

Ядро написано на C++, и его пришлось собирать особым образом: Qt пересобран из исходников, потому что штатная сборка не переваривала большие JSON-ответы фида. В эксплуатации с 2020 года. Тот же поток упакован как отдельный B2B-продукт: руководство на 1220 строк, референсный ETL и автоматический валидатор соответствия с HTML-отчётами.

В цифрах

  • ·12 видов спорта в одном потоке
  • ·работает в продакшене с 2020 года
  • ·этот же поток продаётся партнёрам как отдельный продукт

Опишите задачу — ответим, что из неё у нас уже построено