Casino core體系結構:圖層、模塊、數據總線
文章全文
1)完整圖片: 賭場核心由什麼組成
Casino core是一組域服務,提供玩家註冊/識別,收取/保存,費率計算,獎金經濟性,風險控制和合規性。在自上而下的圖中:1.邊緣層(外部周長):API網關、WAF/機器人保護、等級限制、無縫服務、地理/法律過濾器。
2.Domain-слой (бизнес-логика): PAM, Wallet/Ledger, Bonus Engine, Cashier/PSP Orchestration, Game Sessions, Risk/Anti-Fraud, RG, Jackpot/Tournaments, Affiliates, CRM/Notifications, Compliance/Reporting.
3.數據/集成層:事件總線(Kafka/Pulsar),隊列(SQS/Rabbit),CDC/Outbox,ETL/ELT(在BI店面中),功能商店/ML,緩存(Redis),OLTP DB(Postgres/Oracle),OLAP(ClickHouse/BigQuery)。
4.Observability&SecOps: metrics/tracing/logs, SIEM/SOAR, secrety (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)。
活躍的背部/回合下的丘陵;頭獎過境賬戶。
僅通過命令(command API)進行交互,通過投影(CQRS)進行讀取。
2.3 Cashier / PSP Orchestration
地理/比恩範圍/得分付款漫遊;故障級聯。
3-DS/AVS/velocity規則;卡的令牌化;on/off-ramp用於加密。
SLO套件:授權≤ 3 s p95,總存款成功率≥地質的85%。
2.4 Game Sessions(與提供商集成)
創建遊戲環節(token handshake),驗證國家/貨幣/年齡。
stavka→iskhod→settlment事件在輪胎上進行;RNG和計算在提供商方面。
反Abuse:min bet,自旋頻率,禁止「在三輪車內」更改面額。
2.5 Bonus Engine
獎金(issued/locked/active/forfeit),vager,遊戲貢獻,max bet/max cashout,截止日期。
任務/任務,飛盤,現金返還;與錦標賽/頭獎的兼容性。
投註時規則的嚴格有效性;不變的故事。
2.6 Risk / Anti-Fraud
行為信號(投註速度,多帳戶,共享設備/地圖)。
Velocity規則,圖形鏈接檢查,chargeback防禦。
反應:柔和(限制),堅硬(AML中的塊/升級)。
2.7 Responsible Gambling (RG)
存款/損失/利率/時間限制,超時,自我約定。
「現實支票」和強制暫停;保存同意書和日誌。
2.8 Jackpots & Tournaments
本地/網絡,虛構/進步;與每個投註共享費用。
公共領導層;獨立驗證結果;反機器人。
2.9 Affiliates & CRM
跟蹤子圖ID,歸屬(CPA/RevShare/Hybrid),後退。
分段,觸發器,suppression規則,omnikanal(push/e-mail/SMS)。
2.10 Compliance & Reporting
監管卸貨,稅務報告,SAR/STR;WORM審核日誌。
按司法管轄區劃分的數據駐留(EU/UK/BR等)。
3)事件模型和數據總線
3.1基本拓撲(Kafka-neiming示例)
`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`
合同:Avro/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
所有域事務都在相同的DB的outbox中編寫事件→背景公用事業將發送到總線。
CDC(Debezium和類似物)-用於DWH中的次要流,而沒有OLTP負載。
4)一致性,傳奇性和冪等
長過程傳奇(存款/現金,驗證,錦標賽獎勵)。
所有命令的相容性:「Idempotency-Key」+服務端重復數據消除。
一致性策略:嚴格在錢包中(ACID),否則在事件中(通過投影)。
補償:個別領域事件,禁止在Ledger中進行「手動編輯」。
5)數據: OLTP/OLAP,緩存,投影
OLTP:用於錢包,PAM,獎金的Postgres/Oracle(p95 <150 ms)。
Cashi: Redis用於會議、限制、熱門的領導板投影。
OLAP: ClickHouse/BigQuery — витрины KPI (FTD, NGR, ARPPU, Retention, LTV, Wager progress, Risk flags).
投影(CQRS):快速搜索玩家/交易(<2c),實時RG面板/風險。
6)收費編排: 更詳細
路由規則:地理,BIN,風險,負荷,成本。
級聯:PSP1 → PSP2而不丟失籃子;帶有指數暫停的回放。
對賬:PSP日報→錢包登記冊;自動差異→字幕。
7)與遊戲提供商集成
網關模式:單一Game API, mapping/fichs,健康支票降級。
設置:即將到來的提供商collback →域名小袋命令。帶有等速鍵的設置。
鎖定:最低;投註/贏得-原子對布線。
8)可觀察性和SLO
Метрики: p95/p99 latency per service, error rate, saturation, business KPIs (bets/min, settle lag, deposit success).
跟蹤:trace_id端到端(edge→domeny→shina→konsyumery)。
Logs:結構化,帶有PII編輯。
SLO最低:- 內核Uptime ≥ 99.95%
- p95錢包<150 ms
- 丟失/重復設置=0
- BI之前的事件延遲時間<5分鐘
9)安全性和合規性
零信任:mesh內的mTLS,短壽命令牌,RBAC/ABAC,最小權利原則。
保密:Vault/HSM,按鍵旋轉,KMS加密「at rest」數據。
PCI DSS/GDPR/本地對應物:環境細分,PAN令牌,DLP,訪問日誌(WORM)。
WAF/機器人保護:行為提示過濾器,設備指紋打印。
數據駐留:按地區劃分;禁止跨區域PII。
10)可用性、DR和版本版本
按地區劃分的資產/資產;RPO ≤ 5分鐘,RTO ≤ 30分鐘。
金絲雀發行/功能標誌,回滾;DB遷移-通過ghost/次要索引。
混沌工程:定期進行網絡/PSP/提供商偽造以驗證退化。
11)圖形和數據質量管理
數據合同:事件轉換(semver),生產者/消費者的合同測試。
Goverance:數據目錄(數據目錄),源信任級別,店面更新SLA。
質量:重復數據消除、後期事件(late arrivals)、OLAP中的idempotent upserts。
12)角色和可用性(後臺)
RBAC:明確的角色(金融,風險,劄幌市場,市場營銷,合規性)。
克裏特島行動:確認「4眼」,不變操作日誌。
PII屏幕:屏蔽;完全訪問-通過申請/臨時令牌。
13)賭場核心成熟度量標準(自我評估)
1.可靠性:錢包/收銀機/會話的SLO ≥ 99%天內完成。
2.數據:事件發生在BI ≤ 5分鐘;ledgers vs PSP的一致性≥ 99.99%。
3.獎金:無需編輯DB的規則設計者;審核更改。
4.RG/AML:實時信號;報告/卸載是自動化的。
5.事件:MTTR <30分鐘;帖子在公司內部公開。
6.測試:合同,負載,混沌測試;提供商/PSP測試沙盒。
14)架構審核員支票清單
- 有outbox/CDC,該事件以原子方式與事務一起發布。
- Ledger實現為不可更改的布線書;與PSP進行對賬。
- 所有團隊都是偶然的;按鍵重復數據消除。
- 由OLTP和OLAP分開;投影不會擊中戰鬥數據庫。
- RG限制在費率下同步適用;現實檢查是強制性的。
- Game gateway 在事件中降級為僅讀取/」no new sessions」。
- DR-plan定期練習;備份由恢復檢查。
- 鑰匙/保密策略及其輪換已記錄在案。
- Compliance報告自動收集(沒有Excel手工)。
- 審計邏輯-WORM,最小權限訪問。
15)反模式(「紅旗」)
在DB中手動編輯資產負債表和獎金。
公共和私有API的混合,沒有API網關。
記錄「繞過」域事務的事件(不通過outbox)。
整體錢包和獎金,沒有偶發性和傳奇。
單個DB「全部」+戰鬥方案下的BI請求。
缺乏對事件和合同測試的審查。
沒有更改獎金規則和錦標賽公式的註冊表。
沒有級聯的付款故障;「稍後嘗試」作為一種策略。
沒有「開箱即用」RG工具;信托許可證。
Casino core是一項活動,嚴格限制服務的「網絡」權利,其中金錢和責任是主要的。強大的體系結構保持在三個支柱上:
1.強硬的金錢完整性(ledger,等效性,傳奇,outbox/CDC),2。事件性和可觀察性(合同,跟蹤,SLO,BI店面),3。默認安全和合規性(零信任,PCI/GDPR,RG/AML)。
通過建立這些基礎,運營商可以擴展內容,獎金經濟和營銷,而主要內容是玩家金錢和品牌聲譽。
