Букмекеру приходит поток изменений коэффициентов по 12 видам спорта. Их нужно мгновенно разложить по матчам и разослать во все открытые браузеры так, чтобы никто не увидел устаревшую цену и не успел поставить по ней. Мы написали для этого собственное ядро на C++ и свой протокол доставки: если у игрока оборвалась связь, он получит не мусор, а корректно восстановленную картину.
Фид приходит двумя каналами — REST и AMQP — и нормализуется в единую модель по 12 видам спорта. Снапшот линии лежит в Redis, около 0.9 млн живых ключей; дальше расходятся только изменения.
Раздача идёт через собственный протокол поверх WebSocket: порядок событий гарантирован, обрыв связи не оставляет клиента с обрывками, а батчинг не даёт браузеру захлебнуться в час пик.
Ядро написано на C++, и его пришлось собирать особым образом: Qt пересобран из исходников, потому что штатная сборка не переваривала большие JSON-ответы фида. В эксплуатации с 2020 года. Тот же поток упакован как отдельный B2B-продукт: руководство на 1220 строк, референсный ETL и автоматический валидатор соответствия с HTML-отчётами.
