Нақты уақыттағы рейтингтер: техникалық сәулет
Реал-тайм рейтингі - бұл миллиондаған ойын оқиғаларын жүздеген миллисекундтағы жаңартылған позицияларға айналдырып, адалдықты, тыңдалымды және экономикалық басқаруды сақтайтын сервистердің жиынтығы. Төменде - талаптардан пайдалануға дейінгі практикалық конструктор.
1) Талаптар және нысаналы көрсеткіштер
UI-ге дейінгі жасырындылық: оқиға келгеннен бастап позицияны жаңартқанға дейін 200-300 мс p95 ≤.
Дәлдігі: жүктеме мен іркілістер кезінде «үздік N «/дивизиондар/тай-брейктерді дұрыс есептеу.
Қолжетімділік: 99 ≥. турнир кезеңінде 9%; тұтастығын жоғалтпай деградация.
Теңсіздік: есептеу деңгейінде «тура бір рет», көлікте «кем дегенде бір рет».
Масштабы: өңірлер/дивизиондар/командалар бойынша көлденең өсу (шарда top-K).
Аудит: ережелердің, оқиғалардың, есептеулер мен берулердің өзгермейтін логтары.
2) Жүйелік схема (10 000 ft деңгей)
Клиент → Event Ingest → Scoring Engine → Stream Aggregator (Top-K/Top-M) → Write-Optimized Store → Hot Cache/Edge → UI/Comms → Rewards/Claim
Фоново: Snapshotter, Anti-Fraud/RG, Analytics & A/B, Audit/Observability.
3) Оқиғаларды қабылдау (Event Ingest)
Міндеттер: қосарланулардан, жарылулардан, желілік ысыраптардан қорғау.
Сәйкестік: әрбір оқиғада 'event _ uid' бар; тексеру «көрді/есептелді».
Жеткізу семантикасы: көлік - at-least-once, көзілдірік есебі - exactly-once.
Backpressure: динамикалық партиялары бар кезектер; артық тиеу кезінде - «белсенді» турларды басымдыққа алу.
Уақытша терезелер: late events (мысалы, 90 секундқа дейін) - қайта санау терезесіне бағыттаймыз.
Уақыт: UTC сервері, клиентке - тек локальді көрсету.
4) Көзілдірікті есептеу (Scoring Engine)
Принциптері: нұсқаланатын ережелер, anti-pay-to-win, жеңіл кері қайтару.
Нұсқалау: 'rule _ set _ id' + feature-flags per-region/division.
Модельдері: multiplier ('Score = round (100log2 (Win/Bet + 1))'), win-based (тек фондық мета ретінде).
«Үздік N «сынағы: ойыншыға/күнге/турға top-N құрылымын ұстап тұру; пішім бойынша жиынтықтау/медиана.
Ерекшеліктер: 'coef _ bonus ≤ бонустық қаражаты 0. 5 'немесе' 0 '; capp per spin/day; провайдерге квоталар.
Тай-брейк: 1) қорытынды жиынға ертерек қол жеткізу; 2) көбірек әртүрлілік; 3) детерминирленген seed.
5) Стрим-агрегация және топ-К
Мақсат: барлық жиынды сканерлемей, позицияларды жылдам қайта санау.
6) Сақтау: write vs read
Write-optimized store: есептеу журналы, «best-N» жағдайы, тай-брейктер, метадеректер (тек жазба/апдейттер).
Read-optimized store (Query): UI үшін денормализацияланған «витриналар»: топ-100, «менің позициям», «топ-күн/дивизион», командаға үлес.
Түсірілімдер (Snapshotter): лидбордтың сағаттық «снепшоттары»; жылдам rollback/replay, есептер мен аудит.
Үйлесімділік: кең тізімдер үшін eventual, «менің позициям» үшін read-your-writes.
7) Кэш және Edge
Ыстық кэш: соңғы позициялар және шардадағы ойыншылардың есебі; TTL 1-5 сек; оқиға бойынша мүгедектік.
Edge қабаты/CDN: статикалық блоктар, нәтижелердің «салқын» беттері, бірақ есептеу қисыны емес.
Fallback: деградация кезінде - «қола режімі»: әрбір X секунд сайын UI жаңарту + ауыр виджеттер блогы.
8) Уақыт, терезелер және таймзондтар
Бірыңғай «шынайы» уақыт: UTC сервистерде; UTC мерзімдері.
Локализация: Клиенттегі уақытты түрлендіру (пайдаланушының уақыт белдеуі).
Шекарасы: желілік лагтар үшін 1-3 мин жабудың «жұмсақ терезесі» (T&C).
Ворд-класс: clock-skew мониторинг, NTP-алерта, дрейф өлшеу.
9) Кеш және қайталанатын оқиғалармен күрес
Late events: «reconciliation window» ұстаймыз; жергілікті қайта есептеу + хабарландыру таспасынан позицияларды «тыныш» түзету.
'event _ uid' + (player, game, bet, ts) жіңішке терезеде; «seen» журналы.
Есептеулердің теңсіздігі: applied/rolled_back мәртебесі бар «оқиға → өзгерістер» транзакциялары.
10) Анти-фрод және RG (пайплайнға салынған)
Мінез-құлық скорингі: біркелкі аралықтар, аса жылдамдық, «шусыз» - жалаулар.
Байланыстар бағаны: жалпы девайстар/IP/төлемдер → кластерлер; наградалар холды, қолмен тексеру.
Квоталар және кепiлдiктер: Ең жақсы әрекет/күн N, бiр слотқа/провайдерге квоталар, per spin/day көзiлдiрiктерi.
Бонустық құралдар: коэффициенттер/алып тастау.
RG: көзілдірік ерікті лимиттер шегінде ғана есептеледі (уақыт/депозиттер/ысыраптар); үзілістер туралы ескертулер.
11) Мульти-өңір және істен шығу тұрақтылығы
Өңірлер бойынша актив-актив: өңірлік шарлар + жаһандық жиынтық; жақындығы бойынша бағыттау.
RTO/RPO: RTO <15 мин (снепшоттарға фолбэк), есептеулер үшін RPO = 0 (логтың идемпотенттік репликасы).
Partition-tolerance: желілік үзіліс кезінде - жергілікті көшбасборд, кейіннен шоғырлану және позицияларды жұмсақ түзету.
FX және валюталар: егер сыйлықтар әртүрлі валюталарда болса - айырбастау сәтін белгілейміз, FX-буфер 1-3%.
12) Қауіпсіздік және құпиялылық
Деректер: минимизация (бүркеншік аттары, агрегаторда PII жоқ), «ұшуда» және «тыныштықта» шифрлау.
Қолжетімділік: ең аз артықшылықтар қағидаты, KMS құпиялары, қолжетімділік аудиті.
Т & С/юрисдикциясы: ережелер/нұсқалар логтары, гео-блоктар, жас шектеулері.
13) Бақылау және SRE-практикалар
SLO: UI-лаг ≤ 300 мс p95, Claim-уақыт ≤ 10 мин p95, аптайм ≥ 99. 9%.
Метриктер: events/sec, қосарланған/жарамсыз, late-rate, heap-өсу топ-К, ағым артта қалуы, есептеу қателіктері, claim-rate.
Трейсинг: өтпелі (ingest → scoring → cache → UI).
Алерталар: тоқтату түймесі (disable ауыр эксперименттер/N үздік азайту), авто-деградация.
Post-mortem: RCA 24-48 сағат үшін action items, error-budget policy тізімі.
14) Rewards & Claim
Автонаграда: close-оқиға кезінде - позицияларды есептеу, беру, түбіртек.
Claim-терезе: 72 сағат ≤, жеткізу ретрайлері, детерминирленген төлем тәртібі.
Ашықтық: бейіндегі наградалар тарихы: ереже, уақыты, сомасы, көзі.
Холдингтер: сирек кездесетін/бағалы сыйлықтар үшін KYC/AML дейін.
15) A/B-эксперименттер және схемалардың эволюциясы
Не тестілеу керек: N үздік (10/20), кап per spin (on/off), әртүрлілік үшін бонус (0/50/100), агрегация түрі (сомасы/медиана).
Рандомизация: өңірлер/арналар/кластерлер бойынша - ағындарды болдырмаймыз.
Guardrails: RTP, шағымдар/10k, RG-сигналдары - нашарламайды.
Көші-қон: сақтау схемаларының үйлесімділігі, көші-қон уақытында қос жазба (dual-write).
16) UX-паттерндер real-time рейтингтер
Рейтинг орталығы: жеңіс ережесі, таймер, сіздің шотыңыз, қалған әрекеттер, next reward.
Тірі фидбек: «x3 үшін + 40 ұпай», «20 талпыныстың 2-уі қалды», «сен 3 орынға көтерілдің».
Витриналар: жалпы топ-100, «менің позициям», «топ дня/дивизион», командаға үлес.
A11y: контраст, ірі сандар, фокус-стейттер, прогресті дыбыстау.
Оқшаулау: жергілікті TZ-дегі мерзім/таймерлер, көп тілділік.
17) Жиі істен шығулар және тозу сценарийлері
18) Real-time рейтингтерін іске қосу чеклисті
Ережелер/Экономика
- Формула, Үздік N, тай-брейк, дивизиондар
- RewardRate, төлем ені, вейджерлер, claim ≤ 72 сағ
Техника
- Іспеттес Ingest, Late-window, шардалау
- Stream-Aggregator (топ-K/Top-M), Snapshotter
- Hot Cache/Edge, Health/Status API, тоқтату түймешігі
Қауіпсіздік/RG
- Мінез-құлық скорингі, байланыс бағандары, капалар/квоталар
- RG-лимиттер, ескертулер, ірі сыйлықтар үшін KYC/AML
Деректер/А/В
- Дашбордтар: лаг, late-rate, дубли, fairness-метриктер
- Эксперименттер жоспары және guardrails, көші-қон кезінде dual-write
UX
- Рейтинг орталығы, микро-фидбек, A11y, оқшаулау
- 1 экранда қысқаша ережелер + толық T&C
Нақты уақыттағы сенімді рейтинг - бұл бір ғана қызмет емес, ал тәртіпті экожүйе: демпотенттік қабылдау, нұсқаланатын скоринг, топ-К стрим-агрегациясы, жылдам кэш, күй суреттері және кіріктірілген анти-фрод/RG механизмдері. Қатаң SLO/SLA, түсінікті UX және A/B арқылы өзгерістерді тексеру қосыңыз - және сіз ойыншылар сенетін көшбасшы борттарды аласыз, ал өнім Retention, Stickiness және LTV болжамды өсімін алады.