Реалдуу убакыт рейтинги: техникалык архитектура
Реалдуу убакыт рейтинги - чынчылдыгын, угуу жөндөмдүүлүгүн жана экономикалык башкарууну сактоо менен жүздөгөн миллисекунд үчүн жаңылануучу позицияларга миллиондогон оюн окуяларын айландырган кызматтардын бир тобу. Төмөндө - практикалык иштеп чыгуу үчүн талаптарга чейин.
1) Талаптар жана максаттуу көрсөткүчтөр
UI чейин Latentity: ≤ 200-300 ms p95 иш-чаранын келишинен тартып абалын тактоо үчүн.
Тактык: "Эң мыкты N "/дивизиондордун/тай-брейктердин жүктөмдө жана мүчүлүштүктөрдө туура эсеби.
Жеткиликтүү: ≥ 99. 9% турнир мезгилинде; бүтүндүгүн жоготпостон деградация.
Идемпотенттүүлүк: "так бир жолу" эсептөө деңгээлинде, транспортто "жок дегенде бир жолу".
Масштабы: аймактар/дивизиондор/командалар боюнча горизонталдуу өсүү (топ-К).
Аудит: эрежелердин, окуялардын, эсептөөлөрдүн жана чыгаруулардын өзгөрүлбөс логдору.
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 _ uuid' бар; текшерүү "көрдү/эсептелди".
Жеткирүү семантикасы: транспорт - ат-least-once, көз айнек эсепке алуу - exactly-once.
Backpressure: динамикалык партиялары менен кезек; ашыкча жүктөөдө - "активдүү" турларга артыкчылык берүү.
Убактылуу терезелер: late events жол (мисалы, 90 секундга чейин) - "кайра эсептөө терезесине" багыт.
Убакыт: UTC Server, кардар - бир гана жергиликтүү көрсөтүү.
4) Упай саноо (Scoring Engine)
Принциптер: версиялануучу эрежелер, анти-төлөө-to-win, жеңил артка кайтаруу.
Version: 'rule _ set _ id' + feature-flags per-region/division.
Моделдер: multiplier ('Score = round (100log2 (Win/Bet + 1))'), логикалык ийри сызык менен win-based, wager-based (фон мета катары гана).
"Мыкты N "эсеби: оюнчу/күн/тур боюнча Top-N түзүмүн кармап; формат боюнча жалпылоо/медиана.
Өзгөчөлүктөр: бонустук каражаттар 'coef _ bonus ≤ 0. 5 'же' 0 '; cap per spin/day; провайдерге квоталар.
Тай-брейк: 1) акыркы ылдамдыкка мурда жетишүү; 2) көп түрдүүлүк; 3) аныктоо seed.
5) агымы-агрегация жана жогорку K
Максаты: бардык көптүгүн сканерлебестен позицияларды тез саноо.
6) Сактоо: write vs read
Write-optimized store: эсептер журналы, "best-N" абалы, тай-брейк, метадеректер (бир гана жазуу/апдейт).
Read-optimized store (Query): UI үчүн денормализацияланган "витриналар": жогорку 100, "менин позициям", "күндүн/дивизиондун жогорку", командага салым.
Сүрөттөр (Snapshotter): саат "Snapshots" leadboard; тез rollback/replay, отчеттор жана аудит.
ырааттуулук: eventual кенен тизмелер үчүн, read-your-writes үчүн "менин орду".
7) Кэш жана Edge
Hot Cache: акыркы орундар жана оюнчулардын эсеби; TTL 1-5 сек; окуя боюнча майыптык.
Edge-катмары/CDN: статикалык блоктор, "муздак" жыйынтык барактар, бирок эсептөө логикасы эмес.
Fallback: деградацияда - "коло режими": ар бир X секунд сайын UI жаңылоо + оор виджеттердин блогу.
8) Убакыт, терезелер жана убакыт зоналары
Бирдиктүү "чыныгы" убакыт: UTC кызматтарда; UTC мөөнөтү.
Локализация: кардарга убакыт которуу (колдонуучунун убакыт зонасы).
Чек: "жумшак терезе" жабуу үчүн 1-3 мин (T&C).
Келгиле, ворд-класс: clock-skew мониторинг, NTP-алерт, дрейф өлчөө.
9) Кеч жана кайталанган окуялар менен күрөшүү
Late events: кармап "reconciliation window"; жергиликтүү кайра эсептөө + "тынч" билдирме лента менен орду тууралоо.
Дубли: 'event _ uuid' + (player, game, bet, ts) тар терезеде; журнал "seen".
Эсептөөлөрдүн ыктымалдыгы: applied/rolled_back статусу менен "окуя → өзгөртүү" транзакциялары.
10) Анти-Frod жана RG (Pipline камтылган)
Жүрүм-турум эсеби: бирдей аралыктар, өтө тез, "ызы-чуу жок" - желектер.
Байланыш тилкеси: жалпы түзмөктөр/IP/төлөмдөр → кластерлер; сыйлыктар, кол менен текшерүү.
Квоталар жана капкалар: N мыкты аракет/күн, бир слот/провайдер үчүн квота, көз айнек капкагы per spin/day.
Бонустук каражаттар: коэффициенттер/өзгөчөлүктөр.
RG: упай ыктыярдуу лимиттердин чегинде гана эсептелет (убакыт/депозиттер/жоготуулар); эскертүүлөр.
11) Көп аймак жана бузулууга туруктуулук
Региондор боюнча актив-актив: аймактык шарлар + глобалдык курам; жакын багыттоо.
RTO/RPO: RTO <15 мин (snepshots боюнча folback), RPO = 0 эсептөөлөр үчүн (Идемпотенттик үн репликасы).
Partition-tolerance: тармактык ажырым - жергиликтүү лидборд, кийинки консолидация жана позицияларды жумшак оңдоо.
FX жана валюталар: эгерде ар кандай валютада сыйлыктар болсо - конвертация учурун каттайбыз, FX-буфер 1-3%.
12) Коопсуздук жана купуялык
Маалыматтар: минималдаштыруу (каймана ат, агрегатордо PII жок), "учууда" жана "тынч" шифрлөө.
Жеткиликтүүлүк: эң аз артыкчылыктар принциби, KMSдеги сырлар, жеткиликтүүлүк аудити.
T & C/юрисдикциялар: эрежелер/версиялар, гео-блоктор, курактык чектөөлөр.
13) Байкоо жана SRE-практикасы
SLO: UI-лаг ≤ 300 ms p95, Claim-убакыт ≤ 10 мин p95, жылуулук ≥ 99. 9%.
Метрика: events/sec, эки эсе көп/четке кагылган, late-rate, heap-өсүш жогорку K, артта агымы, ката эсептөө, claim-rate.
Trace: аркылуу (ingest → scoring → cache → UI).
Alerty: stop баскычы (disable оор эксперименттер/N мыкты азайтуу), auto деградация.
Post-mortem: 24-48 саат үчүн RCA, action items тизмеси, error-budget policy.
14) Rewards & Claim
Autonagrad: close-окуяда - позицияларды эсептөө, берүү, квитанциялар.
Claim-терезе: ≤ 72 саат, жеткирүү retry, белгиленген төлөм тартиби.
Ачык-айкындуулук: профилдеги сыйлыктардын тарыхы: эреже, убакыт, сумма, булак.
Hold: сейрек/баалуу байгелер үчүн KYC/AML чейин.
15) A/B-эксперименттер жана эволюция схемалар
Эмне тестирлөө керек: N мыкты (10/20), cap per spin (on/off), ар түрдүүлүк үчүн бонус (0/50/100), агрегация түрү (суммасы/mediana).
Рандомизация: региондор/каналдар/кластерлер боюнча - агымдардан качабыз.
Guardrails: RTP, даттануулар/10k, RG сигналдары - начарлап жок.
Миграциялар: сактоо схемаларынын шайкештиги, миграция учурунда кош жазуу (dual-write).
16) UX-үлгүлөрү реалдуу убакыт рейтинги
Рейтингдин борбору: жеңиш эрежеси, таймер, сиздин эсебиңиз, калган аракеттер, кийинки кайтаруу.
Live Fidbek: "+ 40 x3 үчүн упай", "калган 2 аракет 20", "Сен 3-орунга чыкты".
Showrooms: жалпы жогорку 100, "Менин орду", "жогорку күнү/бөлүмү", команда салым.
A11y: контраст, чоң сандар, фокус-стейттер, прогресстин үндөрү.
Локализация: Жергиликтүү TZ, көп тилдүүлүк мөөнөтү/таймери.
17) Тез-тез бузулуулар жана деградация жагдайлар
18) Чеклист ишке киргизүү реалдуу убакыт рейтинги
Эрежелер/Экономика
- Formula, N мыкты, тай-брейк, бөлүмдөрү
- RewardRate, төлөм туурасы, Veyjers, claim ≤ 72 саат
Техника
- Idempotent Ingest, Late-window, Charding
- Stream-Aggregator (топ-K/Top-M), Snapshotter
- Hot Cache/Edge, Health/Status API, токтоо баскычы
Коопсуздук/RG
- Жүрүм-турум эсеби, байланыш тилкеси, капка/квота
- RG-чеги, эскертүүлөр, KYC/AML үчүн ири байгелер
Маалымат/A/B
- Dashboard: лаг, late-rate, double, fairness-метрика
- Эксперимент планы жана guardrails, эки-write көчүрүү
UX
- Рейтинг борбору, микро-фидбек, A11y, локализация
- 1 экран + толук T&C кыскача эрежелери
Ишенимдүү реалдуу убакыт рейтинги - бул бир гана кызмат эмес, тартиптүү экосистема: демпотенттик кабыл алуу, версиялануучу скоринг, жогорку K стрим-агрегациясы, тез кэш, абалдын сүрөттөрү жана орнотулган анти-фрод/RG механизмдери. Катуу SLO/SLA, түшүнүктүү UX жана A/B аркылуу өзгөрүүлөрдү текшерүүнү кошуңуз - ошондо сиз оюнчулар ишенген алдыңкы такталарды аласыз жана продукт Retention, Stickiness жана LTV болжолдонгон өсүштү алат.