カジノがモジュラーアーキテクチャに切り替わる理由
カジノのモジュール性
歴史的なモノリスは成長を遅らせます。それぞれの変更は、システム全体のリリース、プロバイダとPSPの統合、SLOのヒット、コンプライアンスアップデートをコード全体で引き出します。モジュラーアーキテクチャ(ドメイン駆動+コントラクトAPI+イベント)では、
「みんなとみんな」を調整することなく、機能をすばやく表示し、プロバイダを接続します。
選択的にスケール(キャッシュレジスタとは別にライブビデオ、ゲームカタログとは別に財布)。
リスクを特定します(プロモーションのエラーがウォレットをダウンさせません)。
ライセンス(ドメイン境界内のログ/バージョン/ポリシー)に準拠する。
明確な契約、再利用、自動化によってTCOを削減します。
ドメインマップ(内訳例)
財布/元帳-お金、通貨ヘッジ、ボーナス残高、PITR、監査。
キャッシャー/決済-PSP、オンランプ/オフランプ、KYT、 idempotent webhook。
ゲーミングブリッジ-プロバイダアダプタ、ラウンド/ベット正規化。
カタログ/ロビー-ゲーム、プロバイダ、機能と表示ルール。
プロモーション/ボーナス-ストックルール、バウチャー、賭け。
KYC/AML/RG-本人確認、制裁/PEP、制限、自己排除。
経験-フロントエンド、CDN、 i18n、 A/B、 Telegram WebApp。
テレメトリー/アナリティクス-イベント、ショーケース、ML/AI。
コンプライアンスと監査-MGA/UKGCレポート、WORMアーカイブ。
モジュラーアーキテクチャの原則
1.DDD境界(境界コンテキスト)。データと論理の明確な知識。
2.API-first+イベント。OpenAPI/AsyncAPI、 JSON-Schema、契約テスト。
3.バージョン管理と互換性。'v1→v1。1→v2'(展開→移行→契約)。
4.Idempotency&正確に一度の意図。要求キー、イベント重複除外。
5.デフォルトのセキュリティ。mTLS、 HMAC署名、短いJWT、 RBAC/ABAC。
6.独立したリリース。カナリア/ブルーグリーン展開、「ツーライター」移行は禁止されています。
7.観測可能性。エンドツーエンドの'traceId'、モジュールあたりのSLOメトリック。
8.Fichaの旗。トラフィック/地理/ユーザーセグメント、安全なロールバック。
統合レイヤー: プロバイダとPSPを接続する方法
アダプター/ブリッジパターン:各ゲーム/決済プロバイダは、単一のプラットフォーム契約を持つプラグインです。
ゲーム:正規化'roundId/betId/status'、エラーマッピング、制限キャッシュ。
支払い:単一のインターフェイス「authorize/capture/refund/payout」、 idempotencyのwebhook。
切断性-故障したアダプタは、他に影響を与えることなくメンテナンスに移動します。
サンプルコントラクト(OpenAPIフラグメント):yaml post/wallet/debit:
requestBody:
コンテンツ:
application/json:
スキーマ:
$ref: '#/components/schemas/DebitRequest@v1'
応答:
'200':{$ref: '#/components/schemas/DebitResult@v1'}
'409':{説明:IDEMPOTENT_REPLAY}
「循環システム」としてのイベント"
バス(Kafka/NATS)イベント→:- 'ベット。'、'roundを配置しました。決済'、'ペイアウト。要求された/承認された'、'kyc。verified/failed'、'rg。limit_set'、ボーナス。発行/消費'、'キャッシャー。webhook。'、'ウォレットを受け取った。hold/release'、'alert。 。 。
- イベントは過去をキャンセルしません。調整-別々の補償イベントによって。
- 各モジュールは、元のイベント、デリバティブのみを新しいトピックとして書き出します。
データ: 画層と整合性
モジュールごとのOLTP: Postgres/MySQL/KeyDB-分離トランザクション。
OLAP/storefronts: ClickHouse/BigQueryはイベントから構築されます。OLTPとアナリティクスは混在しません。
Feature Store/ML: featureとTTLバージョンのOLTP独立レイヤー。
一貫性:モジュール間で戦略的に最終的に、そしてお金のために-国境でローカルACID+idempotentアクション。
展開とスケーリング
コンテナ(Docker/K8):オートスケールモジュロ(ウォレット-CPU/IO;ライブビデオ-ネットワーク;ブリッジ-RPS)。
境界分離:ネットワークポリシー、モジュールごとの個々の秘密/鍵、異なるPII/money/telemetryストア。
トラフィックシェーピング:特徴フラグ、カナリアシェア、地域ルート。
DR/HA:複数のAZ;お金のための資産責任、読書/メディアのための資産資産。
コンプライアンスはモジュールに「縫製」されています
KYC/AML/RGは、ポリシーとソリューションログ('policyVer')を備えた独自のモジュールです。
監査/WORM-お金/ラウンド/支払いイベントの不変ストア。
報告-管轄区域(MGA/UKGC)による輸出、完全性/適時性のためのSLA。
サンプルストリーム
レート→計算→支払い
1.'gaming-bridge'は'bet。 played' (idempotent)を送信します。
2.'wallet'は'hold'を作り、'wallet'を公開します。待ってください。
3.'gaming-bridge'は→'round providerの結果を取得します。「落ち着いた」
4.'wallet'は'settle' (release/payout)→'walletを考慮します。「落ち着いた」
5.'promo'はイベントを消費し、ボーナス→'ボーナスを発生させます。発行されました。
キャッシュデスク(デポジット)
1.'cashier'は'payment'を作成します。intent'-'Idempotency-Key'。
2.PSPはwebhook→'cashierを呼び出します。webhook。「受け取った」
3。ウォレット。credit'→アナリティクスとRGのイベント。
ダウンタイムなしの変更(展開→移行→契約)
1.展開:'v1にフィールド/エンドポイントを追加しました。1'、古い顧客は壊れません。
2.移行:消費者は新しいものを読み、両方のバージョンで書き込みます(非金銭のためのデュアル書き込みのみ)。
3.契約:EOL 'v1を発表しました。0'、予定通りN週間後に削除されます。
プラットフォームエンジニアリング
ゴールデンパス:モジュールテンプレート(レポaskeleon、 CI/CD、アラート、SLO、シークレット)。
契約テスト:CIのPact/AsyncAPIテスト;偽のプロバイダとの統合環境。
サービスカタログ(バックステージ):所有者は誰ですか、SLA、 APIバージョン、インシデントブック。
モジュール性の成功指標
アイデアから生産リリースまでのリードタイムX時間。
Release frequency by→module (per day/week)、 change-fail rate (change-fa。
MTTR (MTTRオンインシデント)(孤立による)。
インフラコスト/GGRは安定しているか、トラフィックが増加しているか(選択的スケール)。
プロバイダ/PSP統合時間(ブリーフィングからprodまで)
アンチパターン
マイクロサービスのためのマイクロサービス。明確なデータ境界がないと、接続性と複雑さが増しています。
モジュール間の一般的なDB/ダイアグラム。隔離と独立したリリースを殺す。
バージョン/契約のないイベント。消費者を「静かに」壊す。
お金のためのデュアルライト。矛盾のリスクは、1人のライターを通して唯一の無力なステップです。
すべてを備えたグローバルな「ユーティリティレイヤー」。隠されたモノリスに変わります。
フィーチャーフラグやキルスイッチはありません。すべての間違いはすぐに誰もがヒットします。
OLTP/OLAPミックス。レポートは速度/財布を遅くします。
観測不能。SLOを測定し、インシデントをリンクするものはありません。
モジュラーアーキテクチャの移行チェックリスト
戦略とドメイン
- 制限付きコンテキスト、所有者、およびモジュールKPIが定義されています。
- インタラクションマップ:API/イベント、 criticality、 SLO。
契約とセキュリティ
- OpenAPI/AsyncAPI+JSON-Schema;バージョンとライフサイクル。
- mTLS/HMAC、短いJWT、国境でのRBAC/ABAC。
データ
- Split OLTP;イベントはOLAPのソースです。
- API/webhookのIdempotency、メッセージ重複除外。
CI/CD&リリース
- カナリア/ブルーグリーン、フィーチャーフラグ、オートスケールモジュロ。
- CIでの契約テスト;偽のプロバイダーとの環境。
観測可能性
- 'traceId'を使用したログ/メトリック/トレイル;SLOダッシュボード。
- ビジネスメトリックによるアラート(VOID、 reject、 payout lag)。
コンプライアンス
- WORMマネー/ラウンドのアーカイブ、規制レポートのエクスポート。
- KYC/AML/RGをソリューションログ付きの個別モジュールとして使用します。
Mini-examples(ミニサンプル)
イベントのラウンド。setted@v1':json
{
"event":"round。決済、""v":"1"、"roundId":"R-2025-10-17-evo-23"、"gameId":"evo_blackjack_23"、"bets': [{"betId": "b_92f"、 "playerId": "p_1"、 "stake": "10。00「、「ペイアウト」:」15。00、""結果":"WIN"}]、"ts': "2025-10-17T14: 23:13。120Z," "traceId":"tr_5f1"
}
Idempotentウォレット:
http: http
POST/wallet/settle
X-Idempotency-Key: 9a7f-2b1c
{
「roundId」: 「R-2025-10-17-evo-23」、 「operations':[{」playerId「:」p_1「、」delta「:」5。00、 ""currency":" EUR"}]
}
モジュラーアーキテクチャは、カジノプラットフォームを「壊れやすいコンバイン」から信頼できるドメインの構成に変えます。それぞれに独自の契約、データ、SLOがあります。これにより、統合とリリースを高速化し、選択的なスケーリングを提供し、コンプライアンスを簡素化し、インシデントリスクを低減します。まず、ドメインの境界、契約、イベントを強調し、セキュリティと可視性を織り込んで、製品とともに成長するプラットフォームを手に入れます。