Como garantir a escalabilidade da plataforma do casino
Texto completo do artigo
1) O que exatamente deve ser escalado
Tráfego e sessões: saltos de SEO/striptease/torneios (dezenas de milhares de RPS por leitura, milhares de RPS por gravação).
Contorno monetário: apostas/setlems/depósitos/cachês - prioridade de integridade e latência.
Pagamentos: rotação PSP, cascatas, geo e merchantes diferentes.
Conteúdo: centenas de provedores, dezenas de milhares de sessões de jogos paralelas.
Dados: real-time vitrine KPI e relatório sem bloquear OLTP.
Complaens: RG/AML/KYC em tempo real.
2) Fundamentos arquitetônicos da escalabilidade
2. 1 Camadas e divisão de responsabilidades
Edge: API-gateway, WAF/bot-proteção, rate-limit, geo-filtros.
Serviços de domínio: Wallet/Ledger, Cashier, Game Gateway, Bônus, RG, Risk/AML, PAM, Affiliates, CRM.
Camada de dados: pneu de evento (Kafka/Pulsar), filas (SQS/Rabbit), cachê (Redis), OLTP (Postgres/Oracle), OLAP (ClickHouse/BigQuery).
Observability/SecOps: métricas/trailers/logs, SIEM/SOAR, Vault/HSM.
2. 2 Modelo de evento + CQRS
Comandos (gravações): estritamente via API de domínio;
Leitura - através de projeções (visualizações indexadas/cachês/OLAP).
Outbox/CDC: cada evento é publicado atômicamente com transação; O analista ouve um pneu, não um BB de combate.
2. 3 Sagas e Idempotação
Processos longos (depósito, caixa, bônus, prémios de torneio) - são orquestrados por sagas.
Todos os comandos em dinheiro e bónus são idempotentes (Idempotency-Key + Deduplicação).
3) Escalar caminhos de dinheiro (número 1 de prioridade)
3. 1 Ledger como um serviço separado
ACID-BD duplo (debit/credit), fios imutáveis, auditoria de logs do WORM.
p95 carteiras <150 ms, «setlems perdidos/duplicados» = 0.
3. 2 Suporte em dinheiro, mas não «verdade»
Redis para limites, balanços-projeções, locais em áreas curtas; a carteira continua a ser a fonte da verdade.
Proteção contra cachê estampede (TTL + jitter, single-flight).
3. 3 Escala Horizontal
Charding por player _ id/brand _ id/region, chardes quentes por nódulos individuais.
Read-replicas para projeções/back office; OLTP ↔ OLAP estão separados.
4) Pagamentos e orquestração PSP em crescimento
Roting: por BIN/geo/escrutínio/valor; reavaliação dinâmica dos canais.
Cascadura: PSP1 → PP2 falhando sem perda de cesta.
Regras 3-DS/AVS/velocity na entrada; antifrode com ligações gráficas de mapas/dispositivos.
Compasso automático de registos PSP e ledger diários; Alertas de divergência.
5) Game Gateway e «explosões» de carga
Uma única entrada para provedores (tocen-handshake, cheque health, degradação «no new sessions»).
Back-pressure e filas para o setlment, para que os picos de provedor não coloquem a carteira.
Rate-limit para nível de jogador/mesa/provedor; protecção contra «Tricks intra-jogos».
6) Dados e analista sem estrangulamento de produção
Outbox/CDC → estirpe em DWH, SLA de entrega de vitrines ≤ 5 min
Проекции KPI (FTD, NGR, ARPPU, Retention, LTV, Wager Progress, Risk flags) — в OLAP.
RLS/camuflagem PII no armazenamento; O PII é mantido regionalmente (data residency).
7) Multi-region / Multi-brand
7. 1 Sustentabilidade geográfica
Ativo-ativo/ativo-passivo por região, RPO ≤ 5 min, RTO ≤ 30 min
Geo-charding PII/dinheiro (EU/UK/BR/...); a proibição de pedidos cruzados-regionais ao PII.
7. 2 Multiplicidade
Integrações gerais (Game Gateway, Bônus, Affiliates) + isolados Ledger/Cashier/PII por licença/região.
No pneu de evento, as chaves obrigatórias são 'tenant _ id/brand _ id/license'.
8) Observabilidade, confiabilidade, caos-engenharia
Métricas: p95/p99 latency per service, error rate, saturação, métricas de negócios (bets/min, setle lag, deposit sucess).
Tracing: um único 'trace _ id' através de edge → domínios → pneu → consoante.
Alerting SLO: orçamento SLO de erros e degradação gerida (congelamento de bónus, stop-new-sessions).
Práticas de caos: feeds regulares PSP/provedores/redes, verificação de cascatas e sagas.
9) RG/AML/KYC em escala
Sinalizações de stop sincronizadas na taxa (limite de depósito/perda/tempo, auto-exclusão).
Fluxo de sinais comportamentais (sessões longas, escalação da aposta), notação proativa.
AML: Sanclists/REER, Fonte de Fundos, SAR/TR - Pipinas Automatizadas.
10) Segurança «padrão»
Zero-trust: mTLS, tokens curtos, RBAC/ABAC, o princípio dos direitos mais baixos.
Segredos - Vault/HSM; Criptografia KMS at-rest, tocenização PAN (PCI DSS).
WAF/bot-proteção, device-fingerprinting, DLP; auditoria inalterável (WORM).
11) FinOps para escalabilidade sem ruína
Scale automático por métricas de negócios (bets/min, setle lag), não apenas por CPU.
As instâncias de Spot/interrupção são para consoadores de asincrona e ETL.
Limites de quotas, alertas orçamentárias; mapeamento de custos de serviço e marca.
Perfilando solicitações/índices; Políticas TTL em logs/métricas.
12) Mapa de trânsito da evolução (se começar com monolítico)
1. Digite um pneu de evento e um único dicionário ('bet. placed`, `bet. settled`, `wallet. debit/credit`, `deposit. succeeded`).
2. Levar o Ledger para um serviço separado/BD com outbox e idumpotência.
3. Separar Cashier (orquestra PSP, cascatas, croquis).
4. Colocar Game Gateway e degradar «no new sessions».
5. Traduzir Bónus/RG para subscrição de eventos; proibir a edição manual.
6. Espalhar OLTP/OLAP e ajustar os fluxos CDC para DWH.
7. Activar observabilidade (SLO-dashboard, rastreamento) e ensinamentos de caos.
8. Preparar multi-region (dados/chaves/merchantes/PII) - sobre as prioridades geo.
13) SLO-mínimo para plataforma madura
A farmácia do núcleo (Wallet/Cashier/Game Gateway) ≥ 99,95%.
p95 Ledger <150 ms; Autorização Cashier <3 s; Um depósito bem-sucedido ≥ 85% na geo-alvo.
«Setlems perdidos/duplicados» = 0.
Entrega de eventos até BI ≤ 5 min
MTTR incidentes de núcleo <30 min
14) Folha de cheque do arquiteto escalável
- Os domínios estão separados; dinheiro - um Ledger separado com outbox/CDC.
- Os comandos são idimpotentes; as chaves de dedução estão por todo o lado.
- Game Gateway com back-pressure e modo de degradação.
- Cashier: Cascatas PSP, retais, croquis, telemetria de falha.
- CQRS/projeções; OLTP e OLAP estão separados fisicamente.
- Pneu de evento com Schema Registry; versionização dos contratos.
- RG/AML - sinais de pare sincronizados; Os logs e relatórios são automatizados.
- Observabilidade: métricas/trailers/logs com 'trace _ id' e marcas de marca/tenant.
- Plano Dr. ativo/passivo, RPO ≤ 5 min, RTO ≤ 30 min; exercícios regulares.
- Segurança: mTLS, Vault/HSM, PCI/GDPR, WAF/bot-proteção, auditoria WORM.
- FinOps: scale automático de métricas de negócios, orçamento-alertas, marcas de custo.
15) Anti-pattern (bandeiras vermelhas)
Uma base de dados única, a BI bate nas tabelas de combate.
Edição manual de balanços/bônus em banco de dados.
Publicar eventos «contornando» a transação (sem outbox).
Não há degradação, «ou tudo ou caímos».
Recusas de pagamento sem cascatas ou telemetria.
Não há idempotidade; Retraias criam duplicações de setlems.
Falta de geo-isolamento PII e chaves de merchant.
Rastreamento zero, as investigações duram horas.
A escalabilidade da plataforma de cassinos não é «mais servidores», mas sim os limites certos e o modelo operacional de evento: circuito de dinheiro isolado e rápido, camada de pagamento sustentável, entrada para jogos de degradação controlada, divisão OLTP/OLAP, observabilidade e disciplina de SRE/FinOps. Com estas bases, a plataforma viverá tranquilamente os picos dos torneios, os novos geo e dezenas de marcas - sem risco para o dinheiro dos jogadores e reputação.
