カジノコアアーキテクチャ:レイヤー、モジュール、データバス
完全な記事
1)全体像: カジノの中心が成っているもの
カジノコアは、プレイヤーの登録/識別、お金の受け入れ/保管、賭けの計算、ボーナスエコノミー、リスク管理、規制の遵守を提供するドメインサービスのセットです。上から下への図で:1.エッジ層(外周):APIゲートウェイ、WAF/ボット保護、レート制限、サービスメッシュ入力、地理/法的フィルタ。
2.ドメインCOM -COM (RG): PAM、ウォレット/元帳、ボーナスエンジン、キャッシャー/PSPオーケストレーション、ゲームセッション、リスク/詐欺防止、RG、ジャックポット/トーナメント、アフィリエイト、CRM/通知、コンプライアンス/報告。
3.データ/統合レイヤー:イベントバス(カフカ/パルサー)、キュー(SQS/ラビット)、 CDC/Outbox、 ETL/ELT (BIショーケース内)、フィーチャーストア/ML、キャッシュ(Redis)、 OLTP DB (Postgres/Oracle)、 OLAP (ClickHouse/BigQuery)。
4.Observability&SecOps:メトリクス/トレース/ログ、SIEM/SOAR、シークレット(Vault/HSM)、キーとトークン、RBAC/ABAC、監査ログ(WORM)。
2)ドメインモジュール(最低必要な構成)
2.1 PAM(プレイヤーアカウント管理)
登録/ログイン、SSO、セッションおよびデバイス管理、KBA/2FA。
プロフィール:年齢/地理/通貨/セグメント、RG/自己排除ステータス。
制限:管轄権によるゲームへのアクセス、禁止、「リアリティチェック」。
2.2財布/元帳(通貨回路)
マルチカレンシーアカウント、二重エントリ(デビット/クレジット)、不変トランザクション。
アトミック賭けと勝つトランザクション(idempotencyキー、ドメイン内で正確に1回)。
アクティブな背中/ラウンドの下に保持します。ジャックポットトランジットアカウント。
コマンド(コマンドAPI)、読み取り-投影(CQRS)を介してのみインタラクション。
2.3 キャッシャー/PSPオーケストレーション
地理/ビンバンド/スコアリングによる支払いのルーティング。失敗の場合のカスケード。
3-DS/AVS/velocity-rules;カードのトークン化;cryptのオン/オフランプ。
SLOセット:承認≤ 3c p95、総預金の成功≥ 85%地理。
2.4ゲームセッション(ISP統合)
ゲームセッションの作成(トークンハンドシェイク)、国/通貨/年齢の検証。
stavka→iskhod→決済イベントはバスに行きます;RNGと決済はプロバイダの側にあります。
反乱用:最小ベット、スピン周波数、顔の値を変更することの禁止「トリックの中」。
2.5ボーナスエンジン
ボーナス状態(発行/ロック/アクティブ/没収)、ベージャー、ゲーム貢献、最大賭け/最大キャッシュアウト、期限。
ミッション/クエスト、フリースピン、キャッシュバック。トーナメント/ジャックポットの互換性。
賭け時のルールの厳格な有効性。変わらない歴史。
2.6リスク/詐欺対策
行動の手がかり(ベットレート、マルチアカウント、共有デバイス/カード)。
速度規則、接続のグラフチェック、チャージバック防御。
反応:ソフト(限界)、ハード(AMLのブロック/エスカレーション)。
2.7責任あるギャンブル(RG)
入金/損失/賭け/時間制限、タイムアウト、自己除外。
「リアリティチェック」と強制的な一時停止。同意とログの保存。
2.8ジャックポット&トーナメント
ローカル/ネットワーク、修正/プログレッシブ;各レートでシェア手数料。
パブリックリーダーボード;結果の独立した検証;アンチボット。
2.9アフィリエイト&CRM
サブID追跡、アトリビューション(CPA/RevShare/Hybrid)、ポストバック。
セグメンテーション、トリガー、抑制ルール、オムニチャネル(プッシュ/メール/SMS)。
2.10コンプライアンス&レポート
規制オフロード、税務報告、SAR/STR;WORM監査ログ。
管轄区域(EU/UK/BRなど)によるデータ居住。
3)イベントモデルとデータバス
3.1基本的なトピック(Kafka命名例)
「プレイヤー」登録された'、'プレーヤー。KYC。ステータス。変更されました'- 'wallet。デビットだ。リクエスト/コミット/失敗した'、'ウォレット。「クレジット」
- 'ゲーム。セッション。started/ended'、'bet。'、'betを置きました。settled'
- 「ボーナス」発行/消費/没収された'、'賭け。進歩しています。更新されました'
- 'RG。限界。'、'rgを押してください。タイムアウトだ。開始/終了'
- 「レジ係」沈殿物。requested/succeeded/failed'、'detailed。リクエストされた/sent'
- 「リスク」警告してくれ。register/closed'、'aml。事件だよ。開いています'
- 'jackpot。contribution/triggered'、'トーナメント。スコア。更新されました'
契約:Avro/JSONスキーマ+スキーマレジストリ、バージョン管理(下位互換)、厳格なidempotenceキー。
3.2イベントテンプレート(簡略化)
json
{
" :" uuid""、 : "bet。 settled""、 :" ""、brand-1""、 : " ""、 :" ""、payload":{
「game_id": 「provider:slot_777,」 「bet_amount":{「量」:2。00、 「currency」: 「EUR」}、 「win_amount":{」amount': 36。40、 "currency": "EUR"}"、bonus_impacted": true
}
}ルール:イベントは不変です。調整-別々の補償イベントによって。
3.3アウトボックス&CDC
すべてのドメイントランザクションは、同じデータベースのアウトボックスにイベントを書き込み→バックグラウンドパブリッシャーがバスに送信します。
CDC (Debeziumおよびアナログ)-OLTPの負荷のないDWHの二次フローのため。
4)一貫性、サガおよびidempotency
長いプロセスのためのサガ(入金/キャッシュアウト、検証、トーナメント賞)。
すべてのコマンドのidempotencyは'Idempotency-Key'+service-side deduplicationです。
一貫性の戦略:財布で-厳密に(酸)、そうでなければ-最終的な(投影を通じて)。
補償:個々のドメインイベント、レジャー内の「手動編集」の禁止。
5)データ: OLTP/OLAPのキャッシュ、投影
OLTP: Postgres/Oracleウォレット、PAM、ボーナス(p95 <150ms)。
キャッシュ:セッション、制限、リーダーボードのホットプロジェクションのRedis。
OLAP: ClickHouse/BigQuery-KPI (FTD、 NGR、 ARPPU、 Retention、 LTV、 Wager progress、リスクフラグ)。
投影(CQRS):クイックプレーヤー/トランザクション検索(<2c)、 リアルタイムRGパネル/リスク。
6)支払のオーケストレーション: より詳しい
ルーティングルール:地理、BIN、リスクレート、負荷、コスト。
カスケード:バスケットを失うことなくPSP1→PSP2;指数的な一時停止で後退します。
和解:毎日のPSPレポート→ウォレットレジスタ;自動不一致→チケット。
7)ゲームプロバイダーとの統合
ゲートウェイパターン:単一のゲームAPI、通貨/フィーチャーマッピング、劣化したヘルスチェック。
決済:受信プロバイダのcollback→walletドメインコマンド。idempotencyキーで解決します。
インターロック:最小;bet/win-アトミック・ペアのトランザクション。
8)観察可能性およびSLO
サービスごとのp95/p99レイテンシ、エラー率、飽和、ビジネスKPI(ベット/分、ラグを解決、デポジット成功)。
エンドツーエンドtrace_idトレース(edge→domeny→shina→konsyumery)。
ログ:構造化、PII編集。
SLO最小:- コアアップタイム≥ 99。95%
- P95ウォレット<150 ms
- 紛失/複製された和解=0
- BIへのイベント遅延時間<5分
9)安全性とコンプライアンス
ゼロトラスト:メッシュ内mTLS、短命トークン、RBAC/ABAC、最低権利原理。
秘密:Vault/HSM、キー回転、KMSデータ暗号化「at rest」。
PCI DSS/GDPR/ローカルアナログ:環境のセグメンテーション、PANトークン化、DLP、アクセスログ(WORM)。
WAF/ボット保護:振る舞い信号のフィルタ、デバイス指紋印刷。
データレジデンシー:地域ごとの遅延;地域横断的PII禁止。
10)可用性、DRおよびリリースバージョン
地域別の資産/資産責任;RPO ≤ 5分、RTO ≤ 30分。
カナリアリリース/フィーチャーフラッグ、ロールバック;データベースの移行-ゴースト/セカンダリインデックスを介して。
カオスエンジニアリング:劣化をチェックするための通常のネットワーク/PSP/プロバイダファイル。
11)スキーマとデータ品質管理
データ契約:イベントバージョニング(semver)、プロデューサー/コンシューマー契約テスト。
ガバナンス:データカタログ、ソース信頼レベル、店頭更新SLA。
品質:重複排除、遅着、OLAPでのidempotentアップサート。
12)役割とアクセス(バックオフィス)
RBAC:明確な役割(金融、リスク、サポート、マーケティング、コンプライアンス)。
クレタ島のアクション:「4つの目」の確認、変更できない操作のログ。
PIIスクリーン:マスキング;フルアクセス-アプリケーション/一時的なトークン。
13)カジノコア成熟度の指標(自尊心)
1.信頼性:ウォレット/キャッシュレジスタ/セッションSLOは、99%の日数≥実行されます。
2.データ: イベントのヒットBI ≤ 5分;一貫性レジャーとPSP ≥ 99。99%.
3.ボーナス:データベース編集なしのルールデザイナー;変更の監査。
4.RG/AML:リアルタイム信号;レポート/アップロードは自動化されます。
5.インシデント:MTTR <30分;死後は社内で公開されています。
6.テスト:契約、負荷、カオステスト;プロバイダ/PSPテストサンドボックス。
14)アーキテクチャ監査人チェックリスト
- outbox/CDCがあり、イベントはトランザクションでアトミックに公開されます。
- 台帳は不変の投稿帳として実装されています。PSPとの和解があります。
- すべてのコマンドはidempotentです。重要な重複排除があります。
- 別のOLTPとOLAP;投影は戦闘データベースにはヒットしません。
- RG制限はレートで同期的に適用されます。リアリティチェックが実施されます。
- ゲームゲートウェイは、インシデントで読み取り専用/」新しいセッションなし」に劣化します。
- DR計画は定期的に実施される;バックアップはリカバリによってチェックされます。
- キー/シークレットポリシーとローテーションが文書化されています。
- コンプライアンスレポートは自動的に収集されます(Excelの手動作業なし)。
- 監査ログ-WORM、最低権利アクセス。
15)アンチパターン(「赤い旗」)
データベース内の残高とボーナスの手動編集。
パブリックAPIとプライベートAPIの混在、APIゲートウェイの欠如。
イベントの記録「バイパス」ドメイントランザクション(アウトボックス経由ではありません)。
モノリシックなウォレットとボーナスは、idempotencyとsagasなし。
「すべてのための」統一されたデータベース+戦闘スキームに応じたBIリクエスト。
イベントバージョニングと契約テストの欠如。
ボーナスルールやトーナメント公式への変更の登録はありません。
カスケードなしの支払の失敗;戦略として「後で試してみてください」。
箱からのRG用具無し;信託のライセンス。
カジノコアはイベントベースであり、お金と責任が主要なサービスの権利「ネットワーク」によって厳密に制限されています。強い建築は3つの柱にかかっています:
1.お金のハードインテグリティ(元帳、idempotence、 sagas、 outbox/CDC)、 2。イベントと観測(契約、トレース、SLO、 BIショーケース)、3。デフォルトのセキュリティとコンプライアンス(ゼロトラスト、PCI/GDPR、 RG/AML)。
これらの基盤を構築したオペレータは、コンテンツ、ボーナス経済、マーケティングを主なもの-プレイヤーのお金とブランドの評判へのリスクなしにスケーリングします。
