Jekpot ulgamlarynyň API-leri nähili işleýär
Makalanyň doly teksti
1) Jekpot ulgamy näme we ekosistemada nirede
Jekpot ulgamy, stawkalardan goşantlary ýygnaýan, ýeňişleriň pullaryny we triggerlerini dolandyrýan, baýraklaryň paýlanyşyny hasaplaýan we operatoryň töleg kontury arkaly tölegleri başlaýan aýratyn hyzmatdyr (käte hyzmatlar klasteridir). Ol birleşýär:- RGS (nyrhlar/netijeler we kwalifikasiýa habarlary), platforma/gapjyk (gatançlary hasapdan çykarmak we ýeňişleri karz bermek), agregator (köp studiýalardan/markalardan marşrut), BI/düzgünleşdiriji (telemetriýa we hasabat) bilen.
2) Jekpotlaryň görnüşleri (we API-de näme üýtgeýär)
1. Kesgitlenen (Fixed): baýragyň öňünden belli bolan mukdary. API-de howuz ýok, diňe şertleri we karzy barlamak.
2. Progressive (Progressive): Pul stawka goşantlaryndan ösýär. Goşantyň endpointleri we häzirki ululygyny çap etmek zerurdyr.
3. Köp derejeli (Multi-tier: Mini/Major/Grand): dürli mümkinçilikler we kaplar bilen birnäçe paralel howuzlar.
4. Lokal vs tor: lokal howuz - bir operatorda/markada; tor - köp sanly operatorlar/markalar/sebitler boýunça jemlenen (köplügi we köplügi möhüm).
5. Wagtlaýyn/waka: möhletli ýa-da meýilnama boýunça howuz (taýmerler we awto-çekeleşikler gerek).
3) Pul üýtgeşmeleri
Deňagramlylyk boýunça hakykat çeşmesi - platforma gapjygy/ledger. JP diňe howuzlaryň we borçnamalaryň ýagdaýyny saklaýar.
Ähli pul amallary idempotentdir (açarlar 'jp _ contrib _ id', 'jp _ trigger _ id', 'jp _ payout _ id').
"Ýitirilen/köpeldilen tölegler" = 0. Kompensasiýa - diňe DB-niň el bilen düzedişleri bilen däl wakalar (saglar) bilen.
Öz telemetriýaňyz bilen özbaşdak amallar hökmünde tölegi (contribution), trigger (trigger) we tölegi (payout) bölüň.
4) API-niň salgylanma şertnamalary
4. 1 RGS/agregator → JP (goşantlar we triggerler)
'POST/v1/jp/contributions' - howuza goşantlary hasaba almak
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' - gatnaşmak üçin haýyşnama/şertleri barlamak (goşmaça)
Jogap: 'eligible: true/false', agramy ýa-da mümkinçiligi, düzgünleri.
'POST/v1/jp/triggers' - işleýiş faktyny düzetmek
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 (tölegler/ätiýaçlyklar)
'POST/v1/wallet/reserve' - (goşmaça) geljekki töleg üçin ätiýaçlyk
'POST/v1/wallet/credit' - oýunçy üçin ýeňiş karzy
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 Puluň statusyny çap etmek (frontlar/widjetler üçin)
'GET/v1/jp/pools/{ pool _ id}' → häzirki ululygy, seed, kapp, gatnaşyjylaryň sany, ETA we ş.m.
'GET/v1/jp/pools' → süzgüçli marka/sebit boýunça howuzlaryň sanawy.
5) Waka modeli (Kafka/Pulsar) we shemalary
Esasy topikler:- `jp. contribution. recorded`
- `jp. pool. updated '(ululygy, bäsdeşlik täzelenmeleri)
- `jp. triggered`
Şertnamalar: Euro/JSON Schema + Schema Registry, Partionirlemegiň açarlary 'tenant _ id', 'pool _ id', 'player _ id'. Wersiýa - backward-compatible.
6) Trigger algoritmleri (ýokary derejeli)
Ähtimallyk (p-durnukly): her bir ökde tapgyra 'p' (pula/derejäniň görnüşine bagly) ähtimallygy bilen hit döredýäris.
Aralyk (must-drop): howuz cap-mukdaryna ýa-da möhletine düşmelidir - içerki randomy [min, max] diapazonynda saklaýarys, cap/ETA çap edýäris.
Sid- we entropy-dolandyryş: serwer seed + per-round salt; jekpotlar üçin müşderi oturgyçlaryndan ýüz öwürmek. Seeddäki ähli üýtgeşmeler WORM auditinde.
Dogruçyllyk: trigger oýunçynyň anyk şahsyýetine bagly bolmaly däldir (geo/ygtyýarnama/kwalifikasiýa kadalaryndan başga). Islendik "şahsy" nyşana almak - tabu.
7) SLO we öndürijilik
p95 'contribution' <120 ms, p99 <250 ms.
p95 'trigger → credit' <500 ms (daşarky töleg hoplarsyz).
"Ýitirilen/köpeldilen tölegler" = 0 (şertnama synaglary bilen barlanýar).
Wakalary BI-e eltip bermek ≤ 5 minut.
JP API-iň möhüm ýollar üçin elýeterliligi ≥ 99. 95%.
8) Howpsuzlyk we gabat gelmek
mTLS + gollar (HMAC/EdDSA) ähli S2S jaňlarynda; gysga ömürli tokenler.
Zero-trust: tor syýasaty/mesh, iň az artykmaçlyklar, sebitler boýunça segmentasiýa.
WORM-limit, formula, seed/entropy, howuz konfigurasiýalarynyň üýtgemeleriniň barlagy.
GDPR/Data residency/PCI: PII we logi - sebitde; duýgur meýdanlaryň tokenizasiýasy; sebitleýin okamagy gadagan etmek.
RG/AML: tölegde sinhron durmak signallary; SAR/STR-düşürmek awtomatlaşdyryldy.
9) Sazlaşyk we saga
Töleg ('contribution') - JP-de belleýäris, 'jp. contribution. recorded`.
Trigger ('triggered') - borçnamany döredýär; JP 'payout' sagadyny başlaýar.
Töleg ('payout. requested → wallet. credit. ok ') - saga tamamlaýar; feýle - de-duplikasiýa bilen retra.
Outbox/CDC - wakalary çap etmegiň ýeke-täk usuly; "aýlaw" loggerleri ýok.
10) Telemetriýa we daşbordlar
Iş:- `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; howuzy täzelemegiň gapma-garşylygy.
- 'payout. failed '> X% marka/sebit boýunça,' pool _ size '> cap - Y% wagt (konfigurasiýa ýalňyşlygy), drift' pool _ size 'bilen deňeşdirme goşantlarynyň mukdary arasynda> Z ppm.
11) Multitenantlyk we izolýasiýa
Ähli soraglar we wakalar 'tenant _ id/brand _ id/license/region' bilen bellendi.
Lokal/tor howuzlary dürli ygtyýarnamalarda/sebitlerde fiziki taýdan bölünendir (DB/cluster).
Row-level security (RLS) we BI penjirelerinde gizlemek.
Marka/sebit üçin aýratyn açarlar/syrlar we shematiki giňişlikler.
12) Bonuslar/ýaryşlar bilen integrasiýa
Goşantlar weýjeri gönüden-göni artdyrmaýar; bonusa goşant - goşantdan däl-de, stawkadan gelýär.
Ýaryşlar "JP-e gatnaşmak" ýa-da "top-goýumlara girmek" üçin bal toplap bilerler. Çeşme 'jp. contribution. recorded` и `jp. triggered`.
Hökmany düzgün: jekpot-mehanika esasy RTP oýnuny üýtgetmeýär; ýogsam aýratyn sertifikat gerek.
13) Synag we bulam-bujarlyk amallary
Şertnama synaglary RGS, JP, gapjyk: goşa eltip bermek, gijikdirmek, out-of-order, rollback.
Ýük synaglary: stawkalaryň we triggerleriň tupany, howuzyň workerleriniň masştaby.
Bulam-bujarlyk: JP sebitiniň ýykylmagy, oflayn gapjyk, wagtyň sinhronizasiýasy; outbox we degradasiýalary barlamak (pause triggers/no new contributions).
14) Çek-listler
Studiýa/RGS üçin
- Idempotent 'contribution' we dogry 'round _ id '/' bet _ id'.
- Amallardan aýlanyp geçmek üçin hiç hili ýazgy ýok (diňe outbox/CDC).
- Iki gezek/gaýtalanýan trigger/kompensasiýa synaglary.
- max bet/kwalifikasiýa çäkleri JP-e geçirilýär.
Operator/platforma üçin
- Ledger - hakykat çeşmesi, 'wallet. credit 'babasy bilen.
- RG/AML-aýaklary tölegde işlenilýär; SAR/STR hasabatlary.
- Daşbordlar p95 'trigger → credit', error rate, howuz barlagy.
JP eýesi üçin
- formula/seed/çäklerdäki üýtgeşmeleriň WORM auditi.
- Registry we versioningdäki wakalaryň shemalary.
- DR: RPO ≤ 5 minut, RTO ≤ 30 minut; yzygiderli türgenleşikler.
- RLS/markalar/ygtyýarnamalar boýunça izolýasiýa; açarlar/syrlar per region.
15) Gyzyl baýdaklar (anti-patternler)
DB-de pullaryň we tölegleriň ölçeglerini el bilen düzetmek.
Deňsizligiň ýoklugy → goşa karzlar.
Telemetriýany outbox/CDC → "ýitirilen" gatançlar/triggerler bolmazdan çap etmek.
Dürli sebitleriň PII we pul maglumatlaryny garyşdyrmak.
Täze şahadatnamasyz esasy oýnuň RTP-sine täsir edýän jekpot.
Gapjyk bilen puluň barlagy ýok; hasabatlar ALTP söweş boýunça düzülýär.
Jekpot-ulgamlaryň API-leri studiýanyň, platformanyň we operatoryň arasyndaky pul-waka şertnamasydyr. Onuň esasy: idempotentlik we saga, puluň berk izolýasiýasy, wakalaryň anyk shemalary, howpsuzlyk we WORM-audit, gözegçilik we SLO. Şeýle dizaýnda fix/progressiw we tor howuzlary çak edilip bilner, tölegler dogry, düzgünleşdiriji we işewürlik hasabatlylygy bolsa aç-açan we ygtybarly bolup galýar.
