Casino core arxitekturası: qatlar, modullar, məlumat şinləri
Məqalənin tam mətni
1) Bütün şəkil: casino core nədən ibarətdir
Casino core - oyunçuların qeydiyyatı/identifikasiyası, pulların qəbulu/saxlanması, bahislərin hesablanması, bonus iqtisadiyyatı, risk nəzarəti və tənzimləyiciyə uyğunluğu təmin edən domen xidmətləri toplusudur. Sxemdə yuxarıdan aşağıya:1. Edge qat (xarici perimetri): API-şluz, WAF/bot-qorunması, rate limiting, xidmət-mesh ingress, geo/hüquqi filtrlər.
2. Domain-слой (бизнес-логика): PAM, Wallet/Ledger, Bonus Engine, Cashier/PSP Orchestration, Game Sessions, Risk/Anti-Fraud, RG, Jackpot/Tournaments, Affiliates, CRM/Notifications, Compliance/Reporting.
3. Data/Integration Layer: Hadisə Şinləri (Kafka/Pulsar), Növbələr (SQS/Rabbit), CDC/Outbox, ETL/ELT (BI vitrinlərinə), Feature Store/ML, Caches (Redis), OLTP BP D (Postgres/Oracle), OLAP (ClickHouse/BigQuery).
4. Observability & SecOps: metrics/tracing/logs, SIEM/SOAR, sirləri (Vault/HSM), açarları və tokenləri, RBAC/ABAC, audit log (WORM).
2) Domen modulları (minimum tələb olunan tərkib)
2. 1 PAM (Player Account Management)
Qeydiyyat/giriş, SSO, seansların və cihazların idarə edilməsi, KBA/2FA.
Profil: yaş/geo/valyuta/seqmentlər, RG statusları/özünü istisna.
Məhdudiyyətlər: yurisdiksiya oyunlarına giriş, qadağalar, «reallıq-çeklər».
2. 2 Wallet/Ledger (pul konturu)
Multivalyuta hesabları, ikiqat qeyd (debit/credit), dəyişməz naqillər.
Atomik bahis əməliyyatları (idempotency keys, domen daxilində exactly-once).
Aktiv spins/raundlar altında Holds; jackpot tranzit hesabları.
Yalnız komandalar vasitəsilə qarşılıqlı əlaqə (command API), oxu - proyeksiyalar vasitəsilə (CQRS).
2. 3 Cashier / PSP Orchestration
Geo/Bin/Skorinq üzrə ödənişlərin marşrutlaşdırılması; uğursuzluqlar zamanı kaskadlaşdırma.
3-DS/AVS/velocity qaydaları; kartların tokenlaşdırılması; kriptovalyutası üçün on-/off-ramp.
SLO dəsti: avtorizasiya ≤ 3s p95, ümumi depozit müvəffəqiyyəti ≥ geo 85%.
2. 4 Game Sessions (provayderlərlə inteqrasiya)
Oyun sessiyalarının yaradılması (token handshake), ölkənin/valyutanın/yaşın validasiyası.
Hadisələr mərc → nəticə → settlment şin gedir; RNG və hesablama provayderin tərəfindədir.
Anti-sui-istifadə: min bet, spin tezliyi, «trik daxilində» nominalının dəyişdirilməsini qadağan edir.
2. 5 Bonus Engine
Bonus steytləri (issued/locked/active/forfeit), vajer, oyunlar üzrə əmanət, max bet/max cashout, deadline.
Missiyalar/kvestlər, frispins, cashback; turnirlər/cekpotlar ilə uyğunluq.
Bahis anında qaydaların sərt etibarlılığı; dəyişməz tarix.
2. 6 Risk / Anti-Fraud
Davranış siqnalları (bahis sürəti, multi-hesablar, ümumi cihazlar/kartlar).
Velocity qaydaları, qrafik əlaqə yoxlamaları, chargeback defense.
Reaksiyalar: yumşaq (limitlər), sərt (AML-də blok/eskalasiya).
2. 7 Responsible Gambling (RG)
Depozitlər/itkilər/dərəcələr/vaxt limitləri, zaman-aut, özünü istisna.
«Reallıq-çeklər» və məcburi fasilələr; razılıq və log saxlamaq.
2. 8 Jackpots & Tournaments
Lokal/şəbəkə, fiks/proqressiv; hər bahis ilə paylı rüsum.
İctimai Liderbordlar; nəticələrin müstəqil yoxlanılması; anti-bot.
2. 9 Affiliates & CRM
Tracking alt ID, atributiya (CPA/RevShare/Hybrid), post-beki.
Seqmentasiya, tetikləyicilər, suppression-qaydalar, omnikanal (push/e-mail/SMS).
2. 10 Compliance & Reporting
Tənzimləyici endirimlər, vergi hesabatları, SAR/STR; WORM audit-log.
Yurisdiksiyalar üzrə data residency (EU/UK/BR və s.).
3) Hadisə modeli və məlumat şinləri
3. 1 Əsas topiklər (Kafka-neyminq nümunəsi)
`player. registered`, `player. kyc. status. changed`- `wallet. debit. requested/committed/failed`, `wallet. credit.`
- `game. session. started/ended`, `bet. placed`, `bet. settled`
- `bonus. issued/consumed/forfeited`, `wager. progress. updated`
- `rg. limit. hit`, `rg. timeout. started/ended`
- `cashier. deposit. requested/succeeded/failed`, `withdrawal. requested/sent`
- `risk. alert. raised/closed`, `aml. case. opened`
- `jackpot. contribution/triggered`, `tournament. score. updated`
Müqavilələr: Avro/JSON Schema + Schema Registry, versioning (backward compatible), ciddi idempotentlik açarları.
3. 2 Hadisə şablonu (sadələşdirilmiş)
json
{
"event_id": "uuid",  "event_type": "bet. settled",  "occurred_at": "2025-10-23T16:09:12Z",  "tenant_id": "brand-1",  "player_id": "p_123",  "session_id": "s_456",  "trace_id": "t_abc",  "payload": {
"game_id": "provider:slot_777",   "bet_amount": {"amount": 2. 00, "currency": "EUR"},   "win_amount": {"amount": 36. 40, "currency": "EUR"},   "bonus_impacted": true
}
}Qayda: hadisələr - dəyişməz; düzəlişlər - ayrı-ayrı kompensasiya tədbirləri.
3. 3 Outbox & CDC
Bütün domen əməliyyatları eyni DB-də outbox hadisəsini yazır → fon ictimaiyyəti şinə göndərir.
CDC (Debezium və analoqları) - OLTP yükü olmadan DWH-də ikincil axınlar üçün.
4) Tutarlılıq, dastanlar və idempotentlik
Uzun proseslər üçün dastanlar (depozit/cashout, yoxlama, turnir mükafatları).
Bütün komandaların idempotentliyi: 'Idempotency-Key' + servis tərəfində deuplikasiya.
Uyğunluq strategiyası: cüzdanda - ciddi (ACID), qalan hissəsi - eventual (proyeksiyalar vasitəsilə).
Kompensasiya: ayrı-ayrı domen hadisələri, ledcerdə «əl düzəlişlərinin» qadağan edilməsi.
5) Məlumatlar: OLTP/OLAP, caches, proyeksiyalar
ALTP: cüzdan, PAM, bonuslar üçün Postgres/Oracle (p95 <150 ms).
Cashes: Seanslar, limitlər, isti liderbord proyeksiyaları üçün Redis.
OLAP: ClickHouse/BigQuery — витрины KPI (FTD, NGR, ARPPU, Retention, LTV, Wager progress, Risk flags).
Proyeksiyalar (CQRS): oyunçular/əməliyyatlar üçün sürətli axtarış (<2s), real vaxt paneli RG/risk.
6) Ödəniş orkestrasiyası: daha ətraflı
Routing qaydaları: geo, bin, risk-skor, yük, dəyəri.
Cascade: PSP1 → PSP2 səbət itkisi olmadan; eksponensial fasilə ilə retralar.
Müqayisə: gündəlik hesabatlar PSP → cüzdan reyestri; avtomatik fərqlər → biletlər.
7) Oyun provayderləri ilə inteqrasiya
Gateway-pattern: vahid Game API, valyuta/sikkə mappinqi, deqradasiya ilə sağlamlıq çeki.
Settlement: daxil olan provayder kollbeki → wallet domen komandası. idempotentlik açarı ilə settle.
Bloklama: minimal; bahis/uduş - atom cüt naqillər.
8) Müşahidə və SLO
Метрики: p95/p99 latency per service, error rate, saturation, business KPIs (bets/min, settle lag, deposit success).
Tracking: trace_id keçmək (edge → domen → şin → konsumer).
Log: strukturlaşdırılmış, PII redaktə ilə.
SLO minimum:- Aptime nüvə ≥ 99.95%
- p95 cüzdan <150 ms
- İtirilmiş/dublyaj edilmiş settlementlər = 0
- Hadisələrin gecikmə müddəti BI <5 dəq
9) Təhlükəsizlik və uyğunluq
Zero-trust: mesh daxilində mTLS, qısa ömürlü tokenlər, RBAC/ABAC, ən kiçik hüquqlar prinsipi.
Secrets: Vault/HSM, açar rotasiyası, KMS-şifrələmə məlumatları «at rest».
PCI DSS/GDPR/yerli analoqları: mühit seqmentasiyası, PAN tokenizasiyası, DLP, giriş jurnalı (WORM).
WAF/bot qorunması: davranış siqnalları ilə filtrlər, device-fingerprinting.
Data residency: regionlar üzrə şardlaşdırma; cross-regional PII qadağası.
10) Mövcudluq, DR və buraxılış versiyası
Bölgələr üzrə aktiv-aktiv/aktiv-passiv; RPO ≤ 5 dəq, RTO ≤ 30 dəq.
Kanarya relizləri/feature-bayraqlar, geri dönüşlər; DB miqrasiyaları - ghost/ikincil indekslər vasitəsilə.
Xaos mühəndisliyi: deqradasiyanı yoxlamaq üçün şəbəkələrin/PSP/provayderlərin müntəzəm saxtakarlığı.
11) Sxemlərin və məlumatların keyfiyyətinin idarə edilməsi
Data contracts: hadisələrin versiyalaşdırılması (semver), prodüser/konsumerlərin müqavilə testləri.
Version: məlumat kataloqu (data catalog), mənbələrə inam səviyyəsi, vitrin yeniləmələri SLA.
Keyfiyyət: deuplikasiya, gec hadisələr (late arrivals), OLAP idempotent upserts.
12) Rollar və çıxışlar (Back-office)
RBAC: aydın rollar (maliyyə, risk, sapport, marketinq, komplayens).
Krit hərəkətləri: «4 göz» təsdiqləri, dəyişməz əməliyyatlar jurnalı.
PII ekran: maskalanma; tam giriş - ərizə/müvəqqəti tokenlər üzrə.
13) Yetkinlik göstəriciləri casino core (özünə hörmət)
1. Etibarlılıq: SLO cüzdan/kassalar/sessiyalar günün 99% ≥ yerinə yetirilir.
2. Məlumatlar: hadisələr BI ≤ 5 dəq; ledgers vs PSP ≥ 99.99%.
3. Bonuslar: DB düzəlişləri olmadan qaydaların dizayneri; dəyişikliklərin auditi.
4. RG/AML: real vaxt siqnalları; hesabatlar/boşaltmalar avtomatlaşdırılmışdır.
5. Hadisələr: MTTR <30 min; postmortemlər şirkət daxilində açıqdır.
6. Test: müqavilə, yük, xaos testləri; provayder/PSP test qum qutuları.
14) Memarlıq auditor çek siyahısı
- Outbox/CDC var, hadisə əməliyyat ilə atomik olaraq dərc olunur.
- Ledger dəyişməz məftillər kitabı kimi həyata keçirilir; PSP ilə müqayisə var.
- Bütün komandalar idempotent; açarlarda duplikasiya var.
- ALTP və OLAP bölünür; projeksiyalar döyüş DB vurmaq deyil.
- RG limitləri bahis zamanı sinxron tətbiq olunur; reality-check məcburidir.
- Game gateway hadisələr zamanı read-only/» no new sessions» deqradasiya edir.
- DR planı mütəmadi olaraq məşq olunur; backaps bərpa yoxlanılır.
- Açar/sirr siyasəti və onların rotasiyası sənədləşdirilmişdir.
- Compliance hesabatları avtomatik olaraq toplanır (Excel əl əməyi olmadan).
- Audit qeydləri - WORM, ən kiçik hüquqlar prinsipi ilə giriş.
15) Anti-nümunələr («qırmızı bayraqlar»)
DB-də balans və bonusların əl ilə düzəldilməsi.
Ictimai və özəl API qarışdırılması, API şlüzünün olmaması.
Domen əməliyyatları (outbox vasitəsilə deyil) «yan keçərək» hadisələri qeyd.
Monolit cüzdan və idempotentlik və saqa olmadan bonuslar.
Vahid DB «hər şey üçün» + döyüş sxemi üzrə BI sorğuları.
Hadisə versiyası və müqavilə testlərinin olmaması.
Bonus qaydalarında və turnir düsturlarında dəyişiklik reyestri yoxdur.
Kaskadsız ödəniş imtinaları; strategiya kimi «sonra cəhd».
RG alətləri «qutudan» yoxdur; etimad lisenziyası.
Casino core - pul və məsuliyyətin əsas olduğu hadisəli, ciddi məhdudlaşdırılmış xidmətlər şəbəkəsidir. Güclü memarlıq üç sütuna əsaslanır:
1. Ciddi pul bütövlüyü (ledger, idempotentlik, dastanlar, outbox/CDC), 2. Hadisə və müşahidə (müqavilələr, izləmə, SLO, BI-vitrinlər), 3. Təhlükəsizlik və standart uyğunluq (zero-trust, PCI/GDPR, RG/AML).
Bu əsasları quraraq, operator əsas şey üçün risk olmadan məzmun, bonus iqtisadiyyatı və marketinqi genişləndirir - oyunçuların pulu və marka nüfuzu.
