Casino core архитектурасы: қабаттар, модульдер, деректер шиналары
Мақаланың толық мәтіні
1) Толық сурет: casino core неден тұрады
Casino core - бұл ойыншыларды тіркеуді/сәйкестендіруді, ақшаны қабылдауды/сақтауды, мөлшерлемелерді есептеуді, бонустық экономиканы, тәуекелдерді бақылауды және реттеушіге сәйкестікті қамтамасыз ететін домендік қызметтер жиынтығы. Жоғарыдан төмен сызбада:1. Edge-қабат (сыртқы периметр): API-шлюз, WAF/бот-қорғау, rate limiting, сервис-mesh ingress, гео/заңды сүзгілер.
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-қабат: оқиға шиналары (Kafka/Pulsar), кезектер (SQS/Rabbit), CDC/Outbox, ETL/ELT (BI витриналарына), Feature Store/ML, кэштер (Redis), OLTP ББ Д (Postgres/Oracle), OLAP (ClickHouse/BigQuery).
4. Observability & SecOps: metrics/tracing/logs, SIEM/SOAR, құпиялар (Vault/HSM), кілттер мен токендер, RBAC/ABAC, audit log (WORM).
2) Домендік модульдер (ең аз қажетті құрам)
2. 1 PAM (Player Account Management)
Тіркеу/логин, SSO, сессияларды және құрылғыларды басқару, KBA/2FA.
Бейіні: жасы/гео/валюта/сегменттер, RG/өзін-өзі жою мәртебесі.
Шектеулер: юрисдикция бойынша ойындарға қол жеткізу, тыйымдар, «шындық-чектер».
2. 2 Wallet/Ledger (ақшалай контур)
Мультивалюталық шоттар, қосарлы жазба (debit/credit), өзгермейтін сымдар.
Ставкалар мен ұтыстардың атомарлық транзакциялары (idempotency keys, домен ішіндегі exactly-once).
Белсенді арқалыққа арналған холдтар/раундтар; джекпоттың транзиттік шоттары.
Өзара әрекеттесу тек командалар арқылы (command API), оқу - проекциялар арқылы (CQRS).
2. 3 Cashier / PSP Orchestration
Гео/бин-диапазондар/скоринг бойынша төлемдердің роутингі; істен шығу кезінде каскадтау.
3-DS/AVS/velocity ережелері; карталарды токенизациялау; on-/off-ramp үшін.
SLO жиынтығы: авторизация ≤ 3с p95, депозиттің жалпы табысы геоға 85% ≥.
2. 4 Game Sessions (провайдерлермен интеграция)
Ойын сессияларын құру (token handshake), елді/валютаны/жасты валидациялау.
Оқиғалар ставка → нәтиже → сеттлмент шинамен жүреді; RNG және есептеу - провайдер жағында.
Анти-абьюз: min bet, спиндердің жиілігі, «трик ішінде» номиналын ауыстыруға тыйым салу.
2. 5 Bonus Engine
Бонустың стейттері (issued/locked/active/forfeit), вейджер, ойындар бойынша салым, max bet/max cashout, мерзім.
Миссиялар/квесттер, фриспиндер, кэшбэк; турнирлермен/джекпоттармен үйлесімділігі.
Мөлшерлеме сәтіндегі ережелердің қатаңдығы; өзгермейтін тарих.
2. 6 Risk / Anti-Fraud
Мінез-құлық сигналдары (ставкалардың жылдамдығы, мульти-аккаунттар, жалпы құрылғылар/карталар).
Velocity ережелері, байланыстарды графикалық тексеру, chargeback defense.
Реакциялар: жұмсақ (лимиттер), қатты (AML-дегі блок/эскалация).
2. 7 Responsible Gambling (RG)
Депозиттер/ысыраптар/ставкалар/уақыт лимиттері, тайм-ауттар, өздігінен алып тастау.
«Шындық-чектер» және мәжбүрлі үзілістер; келісімдер мен логтарды сақтау.
2. 8 Jackpots & Tournaments
Жергілікті/желілік, фикс/прогрессив; әрбір ставкамен үлестік алым.
Жария көшбасшы борттар; қорытындыларды тәуелсіз верификациялау; анти-бот.
2. 9 Affiliates & CRM
Трекинг суб-ID, атрибуция (CPA/RevShare/Hybrid), постбэки.
Сегментация, триггерлер, suppression-ережелер, омниканал (push/e-mail/SMS).
2. 10 Compliance & Reporting
Реттеуші түсімдер, салық есептері, SAR/STR; WORM аудит-журналы.
Юрисдикциялар бойынша Data residency (EU/UK/BR және т.б.).
3) Оқиға моделі және деректер шинасы
3. 1 Базалық топиктер (Кафка-нейминг мысалы)
`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`
Келісімшарттар: Euro/JSON Schema + Schema Registry, versioning (backward compatible), қатаң теңсіздік кілттері.
3. 2 Оқиға үлгісі (жеңілдетілген)
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
}
}Ереже: оқиғалар - өзгермейтін; түзетулер - жекелеген өтемдік оқиғалармен.
3. 3 Outbox & CDC
Барлық домендік транзакциялар оқиғаны outboxқа сол ДБ-ға жазады → фондық паблишер шинаға жібереді.
CDC (Debezium және аналогтар) - DWH-дегі OLTP жүктемесіз қайталама ағындар үшін.
4) Консистенттілік, сағалар және іспеттілік
Ұзақ процестерге арналған сағаттар (депозит/кэшаут, верификация, турнирлік наградалар).
Барлық командалардың ұқсастығы: 'Idempotency-Key' + сервис жағында дедупликация.
Келісу стратегиясы: әмиянда - қатаң (ACID), қалғаны - eventual (проекциялар арқылы).
Өтемақы: жекелеген домендік оқиғалар, леджерде «қолмен түзетуге» тыйым салу.
5) Деректер: OLTP/OLAP, кэштер, проекциялар
OLTP: Postgres/Oracle әмиян, PAM, бонустар үшін (p95 <150 мс).
Кэштер: Сессиялар, лимиттер, лидбордтардың ыстық проекциялары үшін Redis.
OLAP: ClickHouse/BigQuery — витрины KPI (FTD, NGR, ARPPU, Retention, LTV, Wager progress, Risk flags).
Проекциялар (CQRS): ойыншылар/транзакциялар бойынша жылдам іздеу (<2с), RG/тәуекел панелінің нақты уақыты.
6) Ақылы оркестр: егжей-тегжейлі
Роутинг қағидалары: гео, BIN, тәуекел-жылдамдық, жүктеме, құн.
Каскад: PSP1 → PSP2 себетсіз; экспоненциалды үзілісті ретрайлер.
Салыстыру: күнделікті есеп PSP → әмиян тізілімі; авто-айырмашылықтар → тикеттер.
7) Ойын провайдерлерімен интеграция
Gateway-паттерн: бірыңғай Game API, валюта/фич маппингі, тозуы бар health-чек.
Сеттлмент: провайдердің кіріс коллбегі → wallet домендік командасы. теңсіздік кілті бар settle.
Бұғаттау: ең аз; ставка/ұтыс - сымдардың атомарлық жұбы.
8) Бақылау және SLO
Метрики: p95/p99 latency per service, error rate, saturation, business KPIs (bets/min, settle lag, deposit success).
Трассировка: өтпелі trace_id (edge → домендер → шина → консьюмерлер).
Логи: құрылымдалған, PII редакцияланған.
SLO минимумы:- Ядро аптаймы ≥ 99,95%
- p95 әмиян <150 мс
- Жоғалған/қайталанған сеттлменттер = 0
- Оқиғаның кідіру уақыты BI <5 мин дейін
9) Қауіпсіздік және сәйкестік
Zero-trust: mesh ішіндегі mTLS, қысқа өмір сүретін токендер, RBAC/ABAC, ең аз құқықтар қағидаты.
Құпиялар: Vault/HSM, кілттерді ротациялау, «at rest» деректерін KMS-шифрлау.
PCI DSS/GDPR/жергілікті аналогтар: ортаның сегментациясы, PAN, DLP токенизациясы, кіру журналы (WORM).
WAF/бот-қорғау: мінез-құлық сигналдары бойынша сүзгілер, device-fingerprinting.
Data residency: өңірлер бойынша шардалау; кросс-өңірлік PII тыйым салу.
10) Қолжетімділік, DR және релиздер нұсқасы
Өңірлер бойынша актив-актив/актив-пассив; RPO ≤ 5 мин. RTO ≤ 30 мин.
Канареялық релиздер/feature-жалаулар, сырғанаулар; ДБ көші-қоны - ghost/қайталама индекстер арқылы.
Хаос-инжиниринг: тозуды тексеру үшін желілердің/PSP/провайдерлердің тұрақты фейлдері.
11) Схемаларды және деректер сапасын басқару
Data contracts: оқиғаларды нұсқалау (semver), продюсерлердің/консультанттардың келісімшарттық тестілері.
Говеранс: деректер каталогы (data catalog), көздерге деген сенім деңгейі, витриналарды жаңарту SLA.
Сапасы: дедупликация, кеш оқиғалар (late arrivals), OLAP-тегі idempotent upserts.
12) Рөлдер мен қолжетімділіктер (Back-office)
RBAC: айқын рөлдер (қаржы, тәуекел, саппорт, маркетинг, комплаенс).
Крит-әрекеттер: «4 көзді» растау, өзгермейтін операциялар журналы.
PII-экран: бүркемелеу; толық қолжетімділік - өтінім/уақытша токендер бойынша.
13) Жетілу өлшемдері casino core (өзін-өзі бағалау)
1. Сенімділік: SLO әмиян/кассалар/сессиялар 99% күнге ≥ орындалады.
2. Деректер: оқиғалар BI ≤ 5 минутқа түседі; консистенттігі ledgers vs PSP ≥ 99,99%.
3. Бонустар: ДБ түзетулерсіз ереже құрастырушысы; өзгерістер аудиті.
4. RG/AML: real-time сигналдары; есептер/жүктер автоматтандырылған.
5. Инциденттер: MTTR <30 мин; постмортемалар компания ішінде жария.
6. Тестілеу: келісімшарттық, жүктемелік, хаос-тестілер; провайдерлердің/PSP тестілік құмсалғыштары.
14) Сәулет аудиторының чек-парағы
- outbox/CDC бар, оқиға транзакциямен бірге жарияланады.
- Леджер өзгермейтін өткізу кітабы ретінде іске асырылған; PSP-мен салыстыру бар.
- Барлық командалар икемді; кілттерде дедупликация бар.
- ALTP және OLAP бөлінген; проекциялар жауынгерлік ДБ-ға соқпайды.
- RG-лимиттер ставка кезінде ілеспе қолданылады; reality-check мәжбүрлі.
- Game gateway оқиғалар кезінде read-only/» no new sessions» дегенге дейін төмендейді.
- DR-жоспар үнемі жаттығады; бэкаптар қалпына келтірумен тексеріледі.
- Кілттер/құпиялар және оларды ротациялау саясаты құжатталған.
- Compliance есептері автоматты түрде жиналады (Excel-қол еңбегінсіз).
- Аудит логтары - WORM, ең аз құқықтар қағидаты бойынша қол жеткізу.
15) Анти-паттерндер («қызыл жалаулар»)
Баланстар мен бонустарды ДБ-да қолмен түзету.
Көпшілік және жеке API араластыру, API-шлюздің болмауы.
Домен транзакцияларын «айналып өту» оқиғаларын жазу (outbox арқылы емес).
Монолитті әмиян және іспеттілігі жоқ бонустар және сағдар.
Бірыңғай «барлығына» ДБ + жауынгерлік схема бойынша BI-сұраулар.
Оқиғалар мен келісімшарттық тестілерді нұсқалаудың болмауы.
Бонустар мен турнирлік формулалар ережелерін өзгерту тізілімі жоқ.
Каскадсыз төлеуден бас тарту; «кейінірек» стратегиясы ретінде көріңіз.
«Қораптан» RG құралдары жоқ; сенім білдірілген лицензия.
Casino core - бұл ақша мен жауапкершілік бастапқы болатын оқиғалық, құқықтары бойынша қатаң лимиттелген сервистердің «желісі». Мықты сәулет үш бағанға сүйенеді:
1. Ақшаның қатаң тұтастығы (ledger, теңсіздік, сағалар, outbox/CDC); 2. Оқиғалық және байқалушылық (келісімшарттар, трассировка, SLO, BI-витриналар); 3. Қауіпсіздік және әдепкі комплаенс (zero-trust, PCI/GDPR, RG/AML).
Осы негіздерді құра отырып, оператор контентті, бонустық экономиканы және маркетингті ең бастысы - ойыншылардың ақшасы мен брендтің беделіне қауіп төндірмей кеңейтеді.
