Highload: live odds и real-time события

Highload: live odds и real-time события

Live betting — тысячи событий в секунду, latency <300ms на accept bet. Архитектура: ingest → normalize → cache → push → bet service with snapshot odds.

Highload: live odds и real-time события
Иллюстрация к материалу

Ingestion

  • Provider feed (TCP/AMQP)
  • Dedup by event version
  • Stale odds rejection

Fan-out

Redis pub/sub or dedicated odds service. WebSocket gateway horizontal scale.

Bet accept

  • Snapshot odds at bet time stored immutably
  • Risk limits per event/market
  • Graceful degrade if feed lag > N sec
Highload: live odds и real-time события
Схема и рабочий процесс

Чеклист

  • Load test peak match
  • Circuit breaker on feed
  • Monitoring feed delay

Degrade mode

При lag feed > N секунд: suspend accept на affected markets, показывать stale badge, не принимать in-play до recovery.

Load test сценарий

Симулируйте финал ЛЧ: 50k concurrent WS, 2k bets/sec на топ-матч. Проверьте odds snapshot immutability и что risk limits не дают принять bet после suspend.

Capacity plan обновляйте после каждого пикового события и храните baseline метрик feed delay и accept latency.

Odds snapshot при accept

Bet payload хранит marketId, selectionId, price, feedVersion, timestamp. Accept отклоняется если feedVersion устарел или price drift > tolerance. Immutable storage для dispute с игроком и регулятором.

Horizontal scale: odds service stateless, Redis cluster для hot markets, WS gateway с sticky или pub/sub fan-out. Load test перед Champions League обязателен, не опционален.

Risk limits per market

Trading desk задаёт max liability per selection; bet service проверяет cumulative exposure до accept. При превышении — auto suspend market или partial accept до лимита, с алертом trading.

Перед пиковым событием

  • Load test: WS connections + bet accept RPS
  • Мониторинг feed delay и stale odds reject rate
  • Degrade mode: suspend in-play при lag > N sec
  • Immutable odds snapshot в каждом accepted bet