Architektura rdzenia kasyna: warstwy, moduły, busy danych
Pełny artykuł
1) Cały obraz: jaki rdzeń kasyna składa się z
Kasyno core to zestaw usług domeny, które zapewniają rejestrację/identyfikację graczy, akceptację/przechowywanie pieniędzy, obliczanie zakładów, gospodarkę bonusową, kontrolę ryzyka i zgodność z przepisami. Na wykresie od góry do dołu:1. Warstwa krawędzi (obwód zewnętrzny): brama API, ochrona WAF/bot, ograniczenie stawki, wnikanie siatki serwisowej, filtry geo/prawne.
2. Domain-слова (бидне,-ловика): PAM, Wallet/Ledger, Bonus Engine, Cashier/PSP Orchestrate, Sesje gier, Risk/Anti-Fraud, RG, Jackpot/Tournaments, Podmioty stowarzyszone, CRM/Powiadomienia, Zgodność/Sprawozdawczość.
3. Warstwa danych/integracji: autobusy imprezowe (Kafka/Pulsar), kolejki (SQS/Rabbit), CDC/Outbox, ETL/ELT (w prezentacjach BI), Sklep funkcyjny/ML, bufory (Redis), OLTP DB (Postgres/Oracle), OLAP (ClickHouse/اQuery).
4. Obserwability & SecOps: metryki/śledzenie/logi, SIEM/SOAR, sekrety (Vault/HSM), klawisze i tokeny, RBAC/ABAC, dziennik audytu (WORM).
2) Moduły domeny (minimalny wymagany skład)
2. 1 PAM (Zarządzanie kontem gracza)
Rejestracja/logowanie, SSO, sesja i zarządzanie urządzeniami, KBA/2FA.
Profil: wiek/geo/waluta/segmenty, RG/statusy samodzielnego wykluczenia.
Ograniczenia: dostęp do gier według jurysdykcji, zakaz, „kontrola rzeczywistości”.
2. 2 Portfel/Księga (obwód pieniężny)
Konta wielokrotności, podwójny wpis (debet/kredyt), niezmienne transakcje.
Zakłady atomowe i wygrane transakcje (klucze idempotencji, dokładnie raz w domenie).
Trzyma pod aktywnymi plecami/rundami; rachunki tranzytowe jackpot.
Interakcja tylko poprzez polecenia (command API), czytanie - przez projekcje (CQRS).
2. 3 Kasjer/PSP Orkiestra
Płatności routingowe według pasm geo/bin/punktacji; kaskadowanie w przypadku awarii.
3-DS/AVS/velocity-rules; tokenizacja kart; on-/off-rampa do krypty.
Zestaw SLO: autoryzacja ≤ 3c p95, całkowity sukces depozytu ≥ 85% geo.
2. 4 Sesje gier (integracje ISP)
Tworzenie sesji gier (token handshake), walidacja kraju/waluty/wieku.
stavka → iskhod → wydarzenia osiedlowe idą w autobusie; RNG i rozrachunek są po stronie dostawcy.
Anty-nadużycie: min zakład, częstotliwość spin, zakaz zmiany wartości nominalnej „wewnątrz sztuczki”.
2. 5 Bonus Engine
Stany bonusowe (wydane/zablokowane/aktywne/przepadkowe), vager, wkład w grę, maks.
Misje/zadania, freespins, cashback; kompatybilność turnieju/jackpota.
Ścisła ważność przepisów w momencie zakładu; niezmienna historia.
2. 6 Ryzyko/Zwalczanie nadużyć finansowych
Wskazówki behawioralne (stawka, wielofunkcje, urządzenia/karty udostępnione).
Zasady prędkości, sprawdzenie połączeń, obrona obciążenia zwrotnego.
Reakcje: miękkie (limity), twarde (blok/eskalacja w AML).
2. 7 Odpowiedzialny hazard (RG)
Depozyt/strata/zakład/terminy, terminy, samodzielne wykluczenie.
„Kontrola rzeczywistości” i przymusowe przerwy; przechowywanie zezwoleń i kłód.
2. 8 jackpotów i turniejów
Lokalne/sieciowe, fix/progresywne; opłata za udział w każdej stawce.
Publiczne tablice liderów; niezależną weryfikację wyników; anty-bot.
2. 9 Oddziały & CRM
Śledzenie subID, przypisanie (CPA/RevShare/Hybrid), powrotne.
Segmentacja, wyzwalacze, zasady tłumienia, omnichannel (push/e-mail/SMS).
2. 10 Zgodność i sprawozdawczość
obciążenia regulacyjne, sprawozdania podatkowe, SAR/STR; Dziennik audytu WORM.
Miejsce zamieszkania danych według jurysdykcji (UE/UK/BR itp.).
3) Model zdarzenia i autobusy danych
3. 1 Podstawowe tematy (przykład nazewnictwa Kafka)
"player. zarejestrowany „,” gracz. kyc. status. zmieniony "
'portfel. debet. requested/committed/failed ',' portfel. kredytu ".
'gra. sesja. started/ended ',' bet. umieszczone ',' zakład. rozliczenie "- 'bonus. wydane/zużyte/utracone „,” zakład. postęp. zaktualizowany "
- 'rg. limit. trafienie ',' rg. timeout. rozpoczęte/zakończone "
- 'cashier. depozyt. wystąpił/odniósł sukces/nie powiódł się „,” withdrawal. zgłoszony/sent. "
- 'risk. alarm. podniesiony/zamknięty ',' aml. sprawa. otwarte "
- 'jackpot. contribution/triggered ',' turniej. wynik. zaktualizowany "
Kontrakty: Avro/JSON Schema + Schema Registry, wersioning (kompatybilny z wstecznym), ścisłe klucze idempotencji.
3. 2 Szablon zdarzeń (uproszczony)
json
{
„ :” uuid „,” : „bet. settled”, „ :”  „ :” marka-1 „,” : „ ”: „ ”: „ ” „ładunek użytkowy”: {
„game_id": „provider:slot_777,” „bet_amount": {„kwota”: 2. 00, "waluta": "EUR"}, "win_amount": {"kwota": 36. 40, "waluta": "EUR"} ", bonus_impacted": true
}
}Zasada: wydarzenia są niezmienne; korekty - poprzez oddzielne zdarzenia kompensacyjne.
3. 3 Skrzynka odbiorcza i CDC
Wszystkie transakcje domeny zapisać zdarzenie do skrzynki zewnętrznej w tej samej bazie danych → tło wydawca wysyła go do autobusu.
CDC (Debezium i analogi) - dla wtórnych przepływów w DWH bez obciążenia OLTP.
4) Spójność, sagi i idempotencja
Sagi dla długich procesów (depozyt/wypłata, weryfikacja, nagrody turniejowe).
Idempotencja wszystkich poleceń to 'Idempotence-Key' + service-side deduplication.
Strategia spójności: w portfelu - ściśle (ACID), w przeciwnym razie - ewentualne (poprzez projekcje).
Kompensacje: pojedyncze zdarzenia domeny, zakaz „ręcznych edycji” w księdze.
5) Dane: OLTP/OLAP, bufory, projekcje
OLTP: Postgres/Oracle dla portfela, PAM, bonusy (p95 <150ms).
Bufory: Redis na sesje, limity, gorące projekcje liderów.
OLAP: ClickHouse/اQuery - Витрина KPI (FTD, NGR, ARPPU, Retention, LTV, Wager progress, Flagi ryzyka).
Projekcje (CQRS): szybkie odtwarzanie/wyszukiwanie transakcji (<2c), panel RG/ryzyko w czasie rzeczywistym.
6) Orkiestra płatności: bardziej szczegółowe
Zasady routingu: geo, BIN, wskaźnik ryzyka, obciążenie, koszt.
Kaskada: PSP1 → PSP2 bez utraty koszyka; rekolekcje z wykładniczą przerwą.
Uzgodnienia: dzienne raporty PSP → rejestr portfela; auto rozbieżności → bilety.
7) Integracja z dostawcami gier
Wzór bramy: pojedynczy API gry, mapowanie waluty/funkcji, kontrola stanu zdrowia z degradacją.
Rozliczenie: przychodzący dostawca collback → polecenie domeny portfela. rozliczyć się z kluczem idempotencji.
Blokady: minimalne; bet/win - atomowa para transakcji.
8) Obserwowalność i SLO
Метрика: p95/p99 latency per service, error rate, saturate, business KPI (bets/min, settle lag, deposit success).
Ślad trace_id end-to-end (krawędź → domena → shina → konsyumery).
Dzienniki: ustrukturyzowane, z edytowaniem PII.
Minimum SLO:- Czas uptime rdzenia ≥ 99. 95%
- portfel p95 <150 ms
- Zagubione/powielone osiedla = 0
- Czas opóźnienia zdarzenia do BI <5 min
9) Bezpieczeństwo i zgodność
Zero-trust: mTLS wewnątrz siatki, krótkotrwałe żetony, RBAC/ABAC, zasada najmniejszych praw.
Sekrety: Skarbiec/HSM, rotacja klucza, szyfrowanie danych KMS „w spoczynku”.
Analogi PCI DSS/RODO/lokalne: segmentacja środowisk, tokenizacja PAN, DLP, dziennik dostępu (WORM).
Ochrona WAF/bot: filtry na sygnałach behawioralnych, odciski palców urządzenia.
Miejsce zamieszkania danych: nieostrożność w podziale na regiony; międzyregionalny zakaz PII.
10) Dostępność, DR i wersja wydania
aktywa/aktywa-zobowiązania według regionów; RPO ≤ 5 min, RTO ≤ 30 min.
Kanaryjskie wydania/feature-flags, rollbacks; migracje bazy danych - za pośrednictwem indeksów duchów/indeksów wtórnych.
Inżynieria chaosu: regularne pliki sieciowe/PSP/dostawca, aby sprawdzić degradację.
11) Schemat i zarządzanie jakością danych
Umowy na dane: wersioning zdarzeń (semver), testy umów producentów/konsumentów.
Zarządzanie: katalog danych, poziom zaufania źródłowego, aktualizacja sklepu SLA.
Jakość: deduplikacja, późne przyjazdy, idempotent upserts w OLAP.
12) Role i dostęp (Back-office)
RBAC: wyraźne role (finansowanie, ryzyko, wsparcie, marketing, zgodność).
Działania kredy: potwierdzenie „4 oczu”, dziennik niezmiennych operacji.
Ekran PII: maskowanie; pełny dostęp - przez aplikację/tymczasowe żetony.
13) Podstawowe wskaźniki dojrzałości kasyna (samoocena)
1. Niezawodność: portfel/kasa/sesja SLO są wykonywane ≥ 99% dni.
2. Dane: zdarzenia dotknęły BI ≤ 5 min; księgi konsystencji vs PSP ≥ 99. 99%.
3. Bonusy: projektant reguł bez edycji bazy danych; audyt zmian.
4. RG/AML: sygnały w czasie rzeczywistym; raporty/przesyłki są zautomatyzowane.
5. Incydenty: MTTR <30 min; Poczty są publiczne wewnętrznie.
6. Badanie: kontrakt, obciążenie, testy chaosu; dostawca/PSP piaskownice testowe.
14) Lista kontrolna audytora architektury
- Istnieje outbox/CDC, wydarzenie jest publikowane atomowo z transakcją.
- Księga jest wdrażana jako niezmienna księga pocztowa; istnieje pojednanie z PSP.
- Wszystkie polecenia są idempotentne; Istnieje deduplikacja kluczy.
- Oddzielne OLTP i OLAP; projekcje nie trafiają w bazy danych walki.
- Limity RG są stosowane synchronicznie w tempie; Kontrola rzeczywistości jest egzekwowana.
- Brama gry degraduje się tylko do odczytu/” brak nowych sesji” w incydentach.
- Plan DR jest regularnie realizowany; kopie zapasowe są sprawdzane przez odzyskiwanie.
- Kluczowa/tajna polityka i rotacja są udokumentowane.
- Raporty zgodności są zbierane automatycznie (bez pracy ręcznej Excel).
- Dzienniki kontroli - WORM, najmniejszy dostęp do praw.
15) Anty-wzory („czerwone flagi”)
Ręczne edycje sald i bonusów w bazie danych.
Mieszanie publicznych i prywatnych API, brak bramy API.
Rejestrowanie zdarzeń „omijających” transakcje domeny (nie poprzez skrzynkę odbiorczą).
Monolityczny portfel i bonusy bez idempotencji i sagi.
Ujednolicona baza danych „za wszystko” + wnioski BI zgodnie z programem walki.
Brak weryfikacji zdarzeń i testów kontraktowych.
Nie ma rejestru zmian w zasadach premii i formułach turnieju.
Awarie płatności bez kaskady; „spróbuj później” jako strategia.
Brak narzędzi RG poza pudełkiem; licencja na zaufanie.
Kasyno rdzeń jest oparte na wydarzeniach, ściśle ograniczone prawami „sieć” usług, gdzie pieniądze i odpowiedzialność są podstawowe. Silna architektura opiera się na trzech filarach:
1. Twarda integralność pieniędzy (księga, idempotencja, sagi, outbox/CDC), 2. Impreza i obserwowalność (kontrakty, odwzorowanie, SLO, prezentacje BI), 3. Domyślne zabezpieczenie i zgodność (zero zaufania, PCI/RODO, RG/AML).
Po zbudowaniu tych fundamentów operator skaluje treść, ekonomię bonusową i marketing bez ryzyka dla najważniejszego - pieniędzy graczy i reputacji marki.
