Jekpot tizimlarining APIlari qanday ishlaydi
Maqolaning to’liq matni
1) Jekpot tizimi nima va u ekotizimda qayerda turadi
Jekpot tizimi - bu alohida xizmat (ba’zan servislar klasteri) bo’lib, u stavkalardan badallar yig’adi, yutuqlar pullari va triggerlarini boshqaradi, sovrinlarni taqsimlashni hisoblaydi va operatorning to’lov konturi orqali to’lovlarni boshlaydi. U integratsiyalashadi:- RGS (stavkalar/natijalar va malakalar to’g "risidagi xabarlar), platforma/hamyon (badallarni hisobdan chiqarish va yutuqlarni kreditlash), agregator (ko’plab studiyalar/brendlardan routing), BI/regulyator (telemetriya va hisobot) bilan.
2) Jekpot turlari (va APIda nima o’zgaradi)
1. Belgilangan (Fixed): oldindan ma’lum bo’lgan mukofot summasi. APIda faqat shartlar va kredit tekshiruvi mavjud emas.
2. Progressiv (Progressive): pul stavkalar badallari bilan o’sadi. Badalning endpointlari va joriy miqdorini chop etish zarur.
3. Ko’p darajali (Multi-tier: Mini/Major/Grand): turli imkoniyatlar va kaplar bilan bir nechta parallel pullar.
4. Lokal vs tarmoq: lokal pul - bitta operator/brendda; tarmoq - ko’plab operatorlar/brendlar/mintaqalar bo’yicha jami (multitenantlik va replikatsiya tanqidiy).
5. Vaqtinchalik/event: muddati belgilangan yoki jadval bo’yicha pul (taymerlar va avto-o’yinlar kerak).
3) Pul invariantlari
Haqiqat manbai - platforma hamyoni/ledger. JP faqat pullar va majburiyatlarning holatini saqlaydi.
Barcha pul operatsiyalari idempotentdir (’jp _ contrib _ id’,’jp _ trigger _ id’,’jp _ payout _ id’kalitlari).
«Yo’qotilgan/dublyaj qilingan to’lovlar» = 0. Kompensatsiya - faqat voqealar (sagalar), qo’lda tahrir qilinmagan DQ.
To’lov (contribution), trigger (trigger) va to’lovni (payout) o’z telemetriyangiz bilan mustaqil tranzaksiya sifatida taqsimlang.
4) API etalon kontraktlari
4. 1 RGS/agregator → JP (badallar va triggerlar)
’POST/v1/jp/contributions’ - pulga badal hisobi
json
{
"jp_contrib_id": "uuid-1",  "tenant_id": "brand-42",  "pool_id": "grand-eu-01",  "player_id": "p_abc",  "game_id": "studio:slot_777",  "round_id": "r_123",  "bet": {"amount": 2. 00, "currency": "EUR"},  "contrib": {"amount": 0. 02, "currency": "EUR"},  "occurred_at": "2025-10-23T15:12:05Z",  "idempotency_key": "round_r_123"
}’POST/v1/jp/candidates’ - ishtirok etish uchun buyurtmanoma/shartlarni tekshirish (ixtiyoriy)
Javob:’eligible: true/false’, vazn yoki imkoniyat, qoidalar.
’POST/v1/jp/triggers’ - ishga tushirish faktini qayd etish
json
{
"jp_trigger_id": "uuid-2",  "pool_id": "grand-eu-01",  "reason": "random_hit",  "selector": {"player_id": "p_abc", "round_id": "r_123"},  "occurred_at": "2025-10-23T15:12:06Z",  "idempotency_key": "jp_t_grand_r_123"
}4. 2 JP → platforma (to’lovlar/zaxiralar)
’POST/v1/wallet/reserve’ - (ixtiyoriy) kelgusi to’lov zaxirasi
’POST/v1/wallet/credit’ - o’yinchiga yutuq krediti
json
{
"jp_payout_id": "uuid-3",  "tenant_id": "brand-42",  "player_id": "p_abc",  "pool_id": "grand-eu-01",  "amount": {"amount": 500000. 00, "currency": "EUR"},  "meta": {"tax": "withheld=false", "tier": "grand"},  "idempotency_key": "jp_p_grand_r_123"
}4. 3 Pula maqomini e’lon qilish (frontlar/vidjetlar uchun)
’GET/v1/jp/pools/{ pool _ id}’ → joriy hajmi, seed, kaps, ishtirokchilar soni, ETA va boshqalar.
’GET/v1/jp/pools’ → filtrli marka/mintaqa bo’yicha pullar ro’yxati.
5) Hodisa modeli (Kafka/Pulsar) va sxemalar
Asosiy topiklar:- `jp. contribution. recorded`
- `jp. pool. updated’(o’lchami, raqobat yangilanishlari)
- `jp. triggered`
Kontraktlar: Euro/JSON Schema + Schema Registry, partiyalashtirish kalitlari’tenant _ id’,’pool _ id’,’player _ id’. Version - backward-compatible.
6) Trigger algoritmlari (yuqori darajali)
Ehtimollik (p-barqaror): har bir malakali raundga’p’(darajaning puli/turiga bog’liq) ehtimollik bilan hit hosil qilamiz.
Oraliq (must-drop): Pool cap-summa yoki muddatga tushishi shart - ichki randomni [min, max] oralig’ida saqlaymiz, cap/ETA ni e’lon qilamiz.
Sid va entropy boshqaruvi: server seed + per-round salt; jekpotlar uchun mijoz sidlaridan voz kechish. Barcha seed oʻzgarishlari WORM auditi ostida.
Halollik: trigger futbolchining aniq shaxsiga bog’liq bo’lmasligi kerak (geo/litsenziya/malaka qoidalaridan tashqari). Har qanday «shaxsiy» maqsadlar - tabu.
7) SLO va unumdorlik
p95’contribution’<120 ms, p99 <250 ms.
p95’trigger → credit’<500 ms (tashqi to’lov xoplarisiz).
«Yo’qotilgan/dublyaj qilingan to’lovlar» = 0 (kontrakt testlari bilan tekshiriladi).
Voqealarni BIga yetkazish ≤ 5 daqiqa
JP API ning kritik yo’llar uchun mavjudligi ≥ 99. 95%.
8) Xavfsizlik va komplayens
mTLS + barcha S2S-chaqiruvlarda imzolar (HMAC/EdDSA); qisqa umr ko’ruvchi tokenlar.
Zero-trust: tarmoq siyosati/mesh, minimal imtiyozlar, mintaqalar bo’yicha segmentatsiya.
Limitlar, formulalar, seed/entropy, pullar konfiguratsiyalari o’zgarishining WORM auditi.
GDPR/Data residency/PCI: PII va logi - mintaqada; sezgir maydonlarni tokenlashtirish; kross-mintaqaviy o’qishlarni taqiqlash.
RG/AML: to’lovdagi sinxron to’xtash signallari; SAR/STR-tushirishlar avtomatlashtirilgan.
9) Uyg’unlik va dostonlar
Badal (’contribution’) - JPda qayd etamiz, jp. contribution. recorded`.
Trigger (’triggered’) - majburiyatni yaratadi; JP’payout’saga boshlaydi.
Toʻlov (’payout. requested → wallet. credit. ok’) - dostonni yakunlaydi; fele - deduplikatsiya bilan retrada.
Outbox/CDC - voqealarni nashr etishning yagona usuli; «aylanma» loggerlar yo’q.
10) Telemetriya va dashbordlar
Biznes:- `pool_size`, `contrib_rate`, `avg_contrib_per_bet`, `time_to_drop`, `payouts_count/sum`, `tier_distribution`.
- p50/p95/p99 по `contribution`, `trigger`, `payout`;
- error rate с типами (5xx/4xx/business), retry storms, queue lag;
- `wallet. credit` latency/ok-rate; hovuzni yangilashning ziddiyatliligi.
- ’payout. failed’> X% brend/mintaqa bo’yicha,’pool _ size’> cap - Y% vaqt (konfiguratsiya xatosi), drift’pool _ size’va solishtirma badallar summasi o’rtasida> Z ppm.
11) Multitenantlik va izolyatsiya
Barcha soʻrovlar va hodisalar’tenant _ id/brand _ id/license/region’bilan belgilangan.
Lokal/tarmoq pullari turli litsenziyalar/hududlarda fizik jihatdan ajratilgan (DB/cluster).
Row-level security (RLS) va BI vitrinalarida niqoblash.
Brend/mintaqa uchun alohida kalitlar/sirlar va sxematik makonlar.
12) Bonuslar/turnirlar bilan integratsiya qilish
Badallar to’g «ridan to’g» ri veyjerni ko’paytirmaydi; bonusga ulush - badaldan emas, stavkadan kelib chiqadi.
Turnirlar «JPda ishtirok etish» yoki «top-omonatlarga kirish» uchun ochkolar hisoblashi mumkin. Manba’jp. contribution. recorded` и `jp. triggered`.
Majburiy qoida: jekpot-mexanika asosiy RTP o’yinini o’zgartirmaydi; aks holda alohida sertifikatlash kerak.
13) Test va xaos-amaliyot
Kontrakt testlari RGS, JP, hamyon: dubl-yetkazib berish, kechikish, out-of-order, rollback.
Yuklash testlari: stavkalar va triggerlar bo’roni, hovuz vorkerlarini ko’paytirish.
Xaos-mashqlar: JP mintaqasining qulashi, oflayn hamyon, vaqtni sinxronlashtirish; outbox va degradatsiyalarni tekshirish (pause triggers/no new contributions).
14) Chek-varaqlar
Studiya/RGS uchun
- Idempotent’contribution’va toʻgʻrilari’round _ id ’/’ bet _ id’.
- Tranzaksiyalarni chetlab oʻtish uchun hech qanday nashr yoʻq (faqat outbox/CDC).
- Dubl/takroriy trigger/kompensatsiya testlari.
- max bet/malaka limitlari JPga o’tkaziladi.
Operator/platforma uchun
- Ledger - haqiqat manbai,’wallet. credit’bobosi bilan.
- RG/AML-oyoqlari to’lovda qayta ishlanadi; SAR/STR hisobotlari.
- Dashbordlar p95’trigger → credit’, error rate, pullarni solishtirish.
JP egasi uchun
- Formulalar/seed/limitlar o’zgarishining WORM auditi.
- Registry va versioningdagi voqealar sxemalari.
- DR: RPO ≤ 5 daqiqa, RTO ≤ 30 daqiqa; muntazam o’quv mashg’ulotlari.
- RLS/brendlar/litsenziyalar bo’yicha izolyatsiya; per region kalitlari/sirlari.
15) Qizil bayroqlar (anti-patternlar)
DBda pullar va to’lovlar o’lchamlarini qo’lda tuzatish.
O’zgaruvchanlik yo’qligi → ikki baravar kreditlar.
Telemetriyani outbox/CDC → «yoʻqotilgan» badallar/triggerlarsiz nashr etish.
Turli mintaqalarning PII va pul ma’lumotlarini aralashtirish.
Yangi sertifikatlashsiz asosiy o’yinning RTP’siga ta’sir qiladigan jekpot.
Hamyon va pulning solishtirmasi yoʻq; hisobotlar OLTP jangovar bo’yicha tuziladi.
Jekpot tizimlarining API - bu studiya, platforma va operator o’rtasidagi pul-tadbir shartnomasidir. Uning poydevori: idempotentlik va dostonlar, pulni qattiq izolyatsiya qilish, aniq voqealar sxemalari, xavfsizlik va WORM-audit, kuzatuv va SLO. Bunday dizaynda fix/progressiv va tarmoq pullari oldindan aytib bo’lmaydigan darajada ko’payadi, to’lovlar to’g’ri, tartibga solish va biznes hisobotlari esa shaffof va ishonchli bo’lib qoladi.
