Arquitetura casino core: camadas, pods, pneus de dados
Texto completo do artigo
1) Pintura inteira: de que consiste casino core
Casino core é um conjunto de serviços de domínio que fornecem registro/identificação de jogadores, recepção/armazenamento de dinheiro, negociação de taxas, economia de bónus, controle de risco e conformidade regulatória. No esquema de cima para baixo:1. Camada Edge (perímetro externo): entrada API, WAF/bot-proteção, rate limiting, serviço-mesh insress, geo/filtros legais.
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/Camada de Integração: pneus de eventos (Kafka/Pulsar), filas (SQS/Rabbit), CDC/Outbox, ETL/ELT (nas vitrines de BI), Função Store/ML, cachês (Redis), OLTP BD (Postgres/Oracle), OLAP (ClickHouse/BigQuery).
4. Observabilidade & SecOps: metrics/tracing/logs, SIEM/SOAR, segredos (Vault/HSM), chaves e tokens, RBAC/ABAC, monitor de dados (WORM).
2) Pods de domínio (composição mínima necessária)
2. 1 PAM (Player Account Management)
Registro/login, SSO, gerenciamento de sessões e dispositivos, KBA/2FA.
Perfil: idade/geo/moeda/segmentos, estados RG/auto-exclusão.
Restrições: acesso a jogos de jurisdição, banhos, cheques realidade.
2. 2 Wallet/Ledger (contorno em dinheiro)
Contas multivalentes, gravação dupla (debit/credit), cabos imutáveis.
Transações atômicas de taxas e ganhos (idempotency keys, exactly-once dentro do domínio).
Colinas de costas ativas/rodadas; Contas em trânsito do jackpot.
Interação somente através de comandos (command API) e leitura através de projeções (CQRS).
2. 3 Cashier / PSP Orchestration
Roteamento de pagamentos de geo/bin-intervalo/varredura; cascagem em caso de falha.
regras 3-DS/AVS/velocity-regras; Toquenização de cartões; on-/off-ramp para criptas.
Conjunto SLO: autorização de ≤ 3s p95, sucesso total de depósito ≥ 85% para geo.
2. 4 Game Sessions (integração com provedores)
Criar sessões de jogos (token handshake), validar país/moeda/idade.
Os acontecimentos seguem o pneu; RNG e processamento estão do lado do provedor.
Anti-Abuse: min bet, frequência de spin, proibição de mudança de «dentro da banda».
2. 5 Bonus Engine
Bónus (issued/locked/ativo/forfeit), vager, contribuições de jogos, max bet/max cashout, deadline.
Missões/buscas, frisas, cachê; compatibilidade com torneios/jackpots.
A validade rígida das regras no momento da aposta; uma história imutável.
2. 6 Risk / Anti-Fraud
Sinais comportamentais (velocidade das apostas, contas multi, dispositivos compartilhados/mapas).
Regras de velocity, verificação gráfica de ligações, chargeback defense.
Reações: suaves (limites), rígidas (bloco/escalação em AML).
2. 7 Responsible Gambling (RG)
Limites de depósito/perda/taxa/hora, tempo, auto-exclusão.
«Cheques realidade» e pausas forçadas; armazenamento de consoantes e logs.
2. 8 Jackpots & Tournaments
Local/rede, fix/progressivo; taxa de participação de cada aposta.
Liderbordes públicas; verificação independente de resultados; anti-bot.
2. 9 Affiliates & CRM
Rastreamento sub-ID, atribuição (CPA/RevShare/Hybrid), pós-back.
Segmentação, desencadeadores, supressão-regras, ominicanal (push/e-mail/SMS).
2. 10 Compliance & Reporting
Downloads regulatórios, relatórios fiscais, SAR/TR; auditoria de logos do WORM.
Data residency por jurisdição (EU/UK/BR etc.).
3) Modelo de evento e pneus de dados
3. 1 Topics básicos (exemplo de Kafka-Neurming)
`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`
Contratos: Avro/JSON Schema + Schema Registry, versioning (backward compatível), chaves de idempotação rigorosas.
3. 2 Modelo de evento (simplificado)
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
}
}Regra: eventos - imutáveis; os ajustes são eventos compensatórios individuais.
3. 3 Outbox & CDC
Todas as transações de domínio escrevem um evento em outbox na mesma base de dados → envia o pablicher de fundo para o pneu.
CDC (Debezium e similares) - para fluxos secundários em DWH sem carga de OLTP.
4) Consistência, sagas e idempotação
Sagas para processos longos (depósito/cachê, certidão, prémios de torneio).
Idempotidade de todos os comandos: 'Idempotency-Key' + Deduplicação do lado do serviço.
Estratégia de coerência: na carteira, rigorosamente (ACID), além de eventual (através de projeções).
Compensações: eventos de domínio individuais, proibição de «redações manuais» no candeeiro.
5) Dados: OLTP/OLAP, cachês, projeções
OLTP: Postgres/Oracle para carteira, PAM, bônus (p95 <150 ms).
Redis para sessões, limites, projeções quentes de liderbordes.
OLAP: ClickHouse/BigQuery — витрины KPI (FTD, NGR, ARPPU, Retention, LTV, Wager progress, Risk flags).
Projeções (CQRS): pesquisa rápida por jogador/transação (<2s), real-time painel RG/risco.
6) Orquestra de pagamento: mais detalhado
Regras de roteamento: geo, BIN, risco, carga, custo.
Cascata: PSP1 → PP2 sem perda de cesta; Retraí com pausa exponencial.
Relatórios diários PSP → registro de carteira; divergências automáticas → tíquetes.
7) Integração com provedores de jogos
Gateway-pattern: um único game API, mapping de moedas/fichas, cheque health degradado.
Setlment: Coleback de entrada do provedor → comando de domínio wallet. setle com a chave de idempotação.
Bloqueios: mínimos; aposta/ganho - par atômico de fios.
8) Observabilidade e SLO
Метрики: p95/p99 latency per service, error rate, saturation, business KPIs (bets/min, settle lag, deposit success).
Traçado: trace _ id de edge→domeny→shina→konsyumery.
Logs: estruturados com edição PII.
SLO-mínimo:- Farmácia do núcleo ≥ 99,95%
- p95 carteira <150 ms
- Setlems perdidos/duplicados = 0
- Tempo de atraso para BI <5 min
9) Segurança e conformidade
Zero-trust: mTLS dentro de mesh, tokens curtos, RBAC/ABAC, o princípio dos direitos mais baixos.
Segredos Vault/HSM, rotação de chaves, criptografia de dados KMS «at rest».
PCI DSS/GDPR/similares locais: segmentação de ambientes, tocenização PAN, DLP, registro de acesso (WORM).
WAF/bot-protecção: filtros por sinais comportamentais, device-fingerprinting.
Data residency: charding por região; a proibição dos PII cruzados.
10) Disponibilidade, DR. e versão de lançamentos
Ativo-ativo/ativo-passivo por região; RPO ≤ 5 min, RTO ≤ 30 min
Lançamentos canários/feições-bandeiras, reversões; migração de BD - através de ghost/índice secundário.
Engenharia de Caos - feeds regulares de redes/PSP/provedores para verificar a degradação.
11) Gerenciamento de esquemas e qualidade de dados
Data contracts: versionização de eventos (semver), testes contratuais de produtores/consoadores.
Howerans: catálogo de dados (data catalog), nível de confiança nas fontes, SLA atualização de vitrines.
Qualidade: Deduplicação, eventos tardios (late arrivals), idempotent upserts em OLAP.
12) Papéis e acessibilidade (Back-office)
RBAC: papéis nítidos (finanças, risco, safort, marketing, complacência).
Ação Crita: confirmação de 4 olhos, registro de operações invariáveis.
Tela PII: camuflagem; Acesso total por solicitação/tóquio temporário.
13) Métricas de maturidade casino core (autoestima)
1. Confiabilidade: SLO carteira/caixa/sessão são executados ≥ 99% dos dias.
2. Dados: Eventos entram em BI ≤ 5 min; consistência ledgers vs PSP ≥ 99,99%.
3. Bónus: Construtor de regras sem edição de banco de dados; auditoria de alterações.
4. RG/AML: sinais real-time; relatórios/descarregamentos são automatizados.
5. Incidentes: MTTR <30 min; Os resultados são públicos dentro da empresa.
6. Testes contratuais, de carga, testes de caos; canais de teste de provedores/PSP.
14) Folha de cheque do auditor da arquitetura
- Há outbox/CDC, evento publicado atômico com transação.
- Ledger é implementado como um livro de fios imutável; Há um acordo com o PSP.
- Todos os comandos são idepotentes; Há dedução nas chaves.
- Separados por OLTP e OLAP; projeções não batem em BB de combate.
- Os limites RG são aplicados sincronicamente na taxa; reality-check é forçado.
- Game gateway é degradado para read-only/» no new sessions» em incidentes.
- O plano DR. é praticado regularmente; os bacapes estão a ser verificados pela recuperação.
- A política de chaves/segredos e rotatividade está documentada.
- Relatórios Compliance são coletados automaticamente (sem trabalho manual Excel).
- Logs de auditoria - WORM, acesso com os menores direitos.
15) Anti-pattern («bandeiras vermelhas»)
Edição manual de balanços e bônus em banco de dados.
Mistura de API público e privado, falta de API.
Gravar eventos «contornando» transações de domínio (não por outbox).
Carteira monolítica e bónus sem idempotidade e sagas.
Uma base de dados única para todos os pedidos de BI.
Não há versionagem de eventos ou testes contratuais.
Não há registro de alterações nas regras de bónus ou fórmulas de torneio.
Recusas de pagamento sem cascata; «tente mais tarde» como estratégia.
Não há ferramentas RG de caixa; Licença de confiança.
O Casino Core é uma rede de serviços estritamente limitada, onde o dinheiro e a responsabilidade são primários. A arquitetura forte mantém-se em três pilares:
1. Integridade dura do dinheiro (ledger, idempotidade, sagas, outbox/CDC), 2. Evento e observabilidade (contratos, rastreamento, SLO, vitrines BI), 3. Segurança e complicação padrão (zero-trust, PCI/GDPR, RG/AML).
Ao construir estes fundamentos, a operadora escala conteúdo, economia de bônus e marketing sem risco para o principal - dinheiro dos jogadores e reputação da marca.
