Перейти к содержанию

Odds ingestion and distribution

Раздел 06

Тип материала — референсная архитектура. HYPOTHETICAL — проектные схемы и контракты. INFERENCE — рекомендации и trade-offs.

Бизнес-задача

Поставлять текущие коэффициенты при пропусках, дубликатах и смене провайдера.

Функциональные требования

Нормализовать event и selection IDs, currency-independent odds, status и revisions. Поддержать snapshots, deltas и suspension.

NFR и критический путь

Serving freshness измеряется по source event time и ingest time. Критический check использует authoritative quote revision, а не latency UI feed.

Компоненты и поток

flowchart LR
 A["Provider"] --> B["Normalizer and gap detector"] --> C["Market state"] --> D["Versioned distribution"] --> E["Client quote"]

Контракты и владельцы состояния

Feed envelope содержит provider, epoch, sequence, event time, market and selection. Внутренний quote имеет revision и expiry. Raw payload нужен для replay.

Транзакционные границы

Принимать delta только с ожидаемым predecessor. Обновление market state и publish intent атомарно в пределах shard.

Ordering, deduplication и idempotency

Уникальный provider epoch + sequence. Snapshot открывает новую generation. Старый writer fenced. Timestamp не заменяет sequence.

Отказ и восстановление

Gap делает рынок suspended. Запросить snapshot с позицией, догнать retained tail и сверить checksum или keyset. При старте с чужого epoch нужен явный handoff.

Сверка

Сравнить число и IDs active selections, версии и status на одном cut. Проверить расхождение quote served/authoritative.

Мониторинг и алерты

Source lag, gap/reorder count, stale quote rejects и reconnects. Для каждого сигнала определить scope, cut и действие оператора. Порог подбирается по согласованному бюджету и наблюдаемой нагрузке.

Технологии и trade-offs

RPC к владельцу даёт свежую проверку ценой сетевого hop. Cache distribution расширяет fan-out, а validation остаётся у writer.

Вопросы на собеседовании

Можно ли проиграть delta после свежего snapshot? Только при совместимом epoch и позиции выше snapshot frontier.

Первичные источники