Como funciona a arquitetura backend do casino
1) Quadro inteiro: domínios e fluxos de dados
Domínios-chave:- Identity & Accounts - inscrição, autenticação, papéis, dispositivos, sessões.
- Wallet & Ledger - contas em dinheiro, carteiras de bónus, transações, legers (append-only).
- Gaming & Bets - sessões de jogos, apostas, rodadas, cálculo de resultados, integração (RNG/Live/Crash etc.).
- Bonuses & Promoções - freixos, cashback, vales, wagering, anti-abuse.
- Payments (Cashier) - Rampe/off-ramp: mapas, APM, criptas/styblocoins, lição KYC.
- KYC/AML/KYT & RG - Verificação de identidade/endereço/rendimento, screening de transações, limites e horários.
- Risk & Compliance - limites de taxas/pagamentos, listas de sanções, geo-bloqueio, auditoria.
- Catalog & Lobby - lista provedores, jogos, categorias, limites; Opções A/B.
- Reporting & BI - P&L, GGR/NGR, retenção, ciclo de vida do jogador, afiliados.
- Observabilidade & Ops - logs, métricas, traçados, alertas, sinais de frod.
Orquestração: uma plataforma moderna é construída com event-driven: os serviços são trocados através de um pneu (Kafka/NATS), as operações críticas são linearizadas (carteira/ledger), os subsistemas laterais são assinados e respondem de forma assincrona (bónus, BI, notificações).
2) Modelo de camadas
Camada Edge: entrada API, WAF/bot-proteção, rate limits, geo/IP filtros, feições-bandeiras.
Camada de serviço: microsserviços autônomos por domínios; contratos sincronizados - apenas onde você precisa de consistência instantânea (por exemplo, o débito da carteira na aposta).
Pneu de evento: Eventos principais de negócios ('bet. placed`, `round. settled`, `bonus. issued`, `kyc. verified`, `payout. requested`).
Dados: OLTP (Postgres/MySQL) para transações; KV/Cachê (Redis) para sessões/limites; armazenamento de objetos (S3) para logs e exportação; OLAP (ClickHouse/BigQuery) para analistas.
3) Carteira e candeeiro: coração da plataforma
Princípios:- Append-only Ledger: Cada transação financeira é um registro com tipo, valor, moeda, referência de origem (taxa, bônus, depósito).
- Os balanços em dinheiro e bónus estão espalhados. Não se pode misturar dinheiro e bónus; é usada uma política de fontes de fundos.
- Atômico debet→kredit: taxa = débito da carteira de dinheiro ou bónus + criação hold; O cálculo da rodada retira hold e faz o crédito/débito do resultado.
- `LEDGER: HOLD` (−10. 00 EUR, source: cash, ref: betId)
- `LEDGER: SETTLE_DEBIT` (−10. 00 EUR) + `LEDGER: PAYOUT` (+36. 00 EUR) - se WIN
- `LEDGER: HOLD_RELEASE` (+10. 00 EUR) - se VOID/PUSH
- Operações Idumpotentes (chaves de idempotação por 'requestId').
- Versioning do balanço (otimístico locking) para proteção contra corridas.
- Câmbio de cálculo claro e fixação de cursos em conversões.
4) Integração com provedores de jogos
Carteiras de carteira:- Seamless - balanço da operadora; a aposta/cálculo vai através da nossa API em tempo real.
- Transfer - depósito para o banco de jogo do provedor; mais atrito, mas menor exigência para a farmácia da carteira.
- `bet. place '→ pré-auth na carteira (hold) →' aceited/rejected '.
- `round. setle 'do provedor (webhook/WS) → setle no candeeiro → evento no pneu → relatório/bónus.
Normalização por bridge: padrão de evento e identificadores de 'roundId/betId', tabela de mupping de limites e side-bets, normalização de erros.
5) Bônus, wagering e anti-abws
Modelos: bónus de depósito, frevo, devoluções (cashback), missões, torneios.
Wagering: o progresso do otoksha é armazenado separadamente; regra de «quais apostas contam» (juros por categoria de jogo).
A prioridade de cancelamento é primeiro os fundos de bónus, depois os reais - ou vice-versa - estritamente por política.
Anti-pattern do jogador: Apostas em resultados opostos, apostas mínimas para o progresso da farma, transferência entre jogos com pesos diferentes - apanhados por regras e estudos.
6) KYC/AML/KYT и Responsible Gaming (RG)
KYC: verificação de ID/endereço/idade; estatais controlam limites (deposit/withdraw/betMax).
AML/KYT: screening de canais de pagamento e on-chain (para criptas), listas de sanções, fontes de fundos.
RG: limites diurnos/semanais, horários, auto-exclusão; verificações de bloqueio até 'bet. place` и `payout. request`.
7) Caixa: depósitos e pagamentos
Depósitos: provedores de cartões/ARM, criptas/stable, métodos locais; confirmação webhook; protecção contra riscos de charjback.
Pagamentos: filas, limites, princípio de 4 olhos para grandes quantias; fontes de fundos → «apenas um balanço cash».
Ele-ramp/off-rampas de cripta: conversão automática, endereços KYT, exposição de hedge.
8) Limites, riscos e regras regionais
Perfis de limite («DEFAULT», «VIP _ A», «VIP _ B», «ULTRA») por país/moeda/CUS.
Geo-blocking IP/GPS/documento.
Sobreposições de jogos/categorias, proibições de provedores em jurisdições.
Resposta a anomalias: saltos de apostas, correlação de dispositivos/pagamentos, muitos «VOID» de um único usuário.
9) Observabilidade e exploração
Métricas: atrasos na carteira, desistência de apostas, hora de negociação da rodada, conversão de depozita→stavka, GGR/NGR, pagamento da SLA, taxa de bónus.
Logs e traçados: «traceId» correlacionados em todos os eventos; armazenamento de eventos crus em um armazém «frio».
Alerts: degradação da resposta da carteira, eclosão de 'VOID', erro de recôncil de relatórios, crescimento de 'RG _ BLOCKED'.
Runbooks: procedimentos nítidos de incidentes (queda do provedor, desabastecimento, cancelamento de rodadas).
10) Segurança e privacidade
Auth: short-lived JWT/opaque tocens, rotação de chaves ('kid'), mTLS a integração crítica.
Políticas de acesso: separação rigorosa de papéis (operações, finanças, safort), 2FA; para os grandes pagamentos, está bem para a segunda pessoa.
Data private: criptografia PII, tocanização de dados de pagamento, minimização do armazenamento; GDPR/remoção por solicitação.
Auditoria: registros imutáveis, assinatura de eventos críticos, exportação para o regulador.
11) Escala e resistência a falhas
Serviços de estágio atrás do skailer automático; shard horizontal para tabelas quentes (apostas, logs de eventos).
Ledger - reserva vertical + replicação para leitura/relatório; «congelamento» de esquemas de migração através de shadow tables.
Redis com TTL e estratégias de «dois» (read-through + invalidate por evento).
DR./HA: multi-AZ, bacapes de recuperação regular, RPO/RTO no nível de exigências regulatórias.
Regimes de Degradation: caixa autônoma, desligamento de bônus «pesados», transferência de jogos ao vivo para maintenance quando o pneu não estiver disponível.
12) Contratos e exemplos
Aposta (sync, JSON/REST ou gRPC):json
POST /bets/place
{
"requestId": "9a7f-…", "playerId": "p_123", "wallet": "cash",
"roundId": "R-2025-10-17-19:20:05-PRAGM-Table12", "gameId": "pragm_live_roulette", "selection": [{"market":"straight","value":"17"}], "stake": {"amount":"10. 00","currency":"EUR"}, "device": {"ip":"203. 0. 113. 5","ua":"Mozilla/..."}
}
Resposta:
json
{
"status": "ACCEPTED", "betId": "bet_8cd…", "balanceAfter": "245. 30", "hold": "10. 00", "limits": {"maxBet":"5000. 00"}
}
Evento de pneu (async):
json
{
"event":"round. settled", "roundId":"R-2025-10-17-19:20:05-PRAGM-Table12", "bets":[{"betId":"bet_8cd…","outcome":"WIN","stake":"10. 00","payout":"360. 00"}], "playerId":"p_123", "ts":"2025-10-17T19:20:09. 231Z", "traceId":"tr_5f1…"
}
13) Anti-pattern (que quebra a plataforma)
Misturar bónus e dinheiro em uma transação sem origem.
Tokens de longa vida e armazená-los no cliente.
Não há idempotidade em operações críticas (duplicações de débito).
Relatório monolítico SQL por base de combate (OLAP vs. OLTP).
Procuração cega ao provedor sem recôncil ou limites.
Não há padrão Timson (UTC em todo o lado!) nas identificações de rodadas e relatórios.
Chamadas sincronizadas em domínios não financeiros (bónus/notificações) bloqueiam a taxa.
14) Folha de cheque de lançamento backend casino
Finanças e carteira
- Ledger append-only, idempotidade, versão do balanço.
- Divisão de cash/bónus, política de origem.
- Cursos/conversão são registrados durante a operação.
Integração de jogos
- Contrato único de apostas/pagamentos, formato 'roundId/betId'.
- Carteira de trabalho padrão de Seamless; O Transfer é apenas onde está justificado.
- O VOID/REFUND automático.
KYC/AML/RG
- Políticas anteriores à permissão de taxa/pagamento; estados KYC ↔ limites.
- KYT para on-chain, screening de sanções, armazenamento de base de provas.
Caixa
- Webhooks/assinaturas, duplos/retais, recôncil com PSP/cripto-provedores.
- 4-eyes para grandes pagamentos, registro de ações das operadoras.
Observabilidade
- As métricas da carteira, round-setle latency, renúncia de taxas, pagamento SLA.
- Traçados de passagem (traceId), alertas, runbooks.
Segurança
- mTLS/HMAC, JWT com TTL curto, rotação de chaves.
- Papéis/direitos, 2FA, torneização de dados de pagamento.
Dados
- Divisão OLTP/OLAP, CDC em DWH, S3 para eventos crus.
- Bacapes e testes regulares de recuperação.
15) Resultado
A arquitetura backend do casino é um núcleo rigoroso de dinheiro e apostas com consistência linear e uma periferia flexível em eventos, como bônus, analistas, comunicações. O sucesso não é determinado pelo número de microsserviços, mas pela disciplina: limites de domínio nítidos, ledger sem «magia», idempotidade, observabilidade e complacência padrão. Com esta base, a plataforma é dimensionada por países/moedas/provedores e aguenta a carga sem compromissos de segurança e dinheiro.