Como funciona o failover e o backups em iGaming
Por que iGaming disciplina especial DR./BCP
A plataforma de cassinos é dinheiro em tempo real (carteira/ledger), rodadas vivas (RNG/Live), pagamentos, afiliações e compliance rigorosa. Qualquer «buraco» de disponibilidade rapidamente se transforma em riscos financeiros e legais. Por isso, a arquitetura é construída em torno de uma recuperação previsível, como objetivos conhecidos, cenários conhecidos, procedimentos ensaiados.
Objetivos e termos básicos
RTO (Recovery Time Objective): tempo de restabelecimento do serviço.
Para carteira/ledger: ≤ 60-300 segundos (feelover intrarregional), ≤ 15 min (DR. interregional).
RPO (Recovery Point Objective): perda de dados válida.
Para ledger: 0-5 segundos (replicação sincronizada/quase incrona), para relatório: ≤ 15 min
SLA e Erro Budet: formalizam compromissos entre a velocidade das mudanças e a estabilidade.
Camadas de resistência a falhas
1) Infraestrutura: Multi-AZ/Multi-Region
Multi-AZ (mínimo de 3 zonas): Todos os serviços críticos estão distribuídos em áreas, o feedback automático BD/pneus.
Multi-Region DR: «Ativo-ativo» ou «ativo-quente» (Ativo-Passive) a segunda região com isolamento por jurisdição (data residency).
A solução é quando o modo:- Ativo-Ativo: baixa latência para jogadores em duas regiões, cross-region leder através da sincronização de eventos + um «local de verdade» rigoroso para cálculos.
- Ative-Passive (warm): mais fácil e barato; o passivo mantém as instâncias quentes + réplicas de BD, mas o tráfego não atende.
2) Rede e perímetro
Impress duplicado/WAF, Anycast ou feedback DNS com verificações de saúde.
Passarelas egress individuais para caixa e provedores, listas de IP permitidas em ambas as regiões.
3) Dados e filas
BD relacional (Postgres): Patronee/Managed HA, réplicas sincronizadas em AZ, réplica asíncrona para a região DR. (monitorada por lajes). PITR com snapshots a cada N minutos + arquivo WAL.
OLAP (ClickHouse/BigQuery): replicação/charding; a perda é maior (RPO de 15 a 30 min).
Cash (Redis): cluster com failover, mas não a origem da verdade; Quando se muda, aquece quente.
Pneu de evento (Kafka/NATS): clusters espelhados e/ou cross-cluster-mirroring, garantia de «at-least-once», controle de idempotação nos consumidores.
4) Aplicativos e domínios
Portfólio/ledger: Núcleo stateful com consistência rigorosa, um «mestre-reitor» para a região; para DR. interregional - procedimento «electred writer» com bloqueio de duplo registro.
Bridge de jogo/API: stateless, feedback horizontal por cheques health; Para todos os caminhos financeiros.
Bónus/notificações/ETL: permite processamento adiado, reiniciado das filas.
Caixa (PSP/cripta): estratégia multifuncional (mínimo de 2 trilhos por país), mudança rápida de merchant/endpoint.
5) Live striptease
WebRTC/LL-HLS Gateway com edge-nódulos regionais; rotas fallback em LL-HLS com degradação de WebRTC.
Manter a lógica de apostas fora do leitor para que o reinício do striam não afete o cálculo.
Failover-pattern
Ativo-ativo (duas regiões)
Benefícios: RTO/RPO mínimo, proximidade com os jogadores.
Contras: Complexidade e conflitos de gravação, grade cara.
Prática: «um escritor por domínio» + event surcing para reproduzir estados na região ao lado.
Ativo passivo (quente)
Vantagens: equilíbrio preço/dificuldade.
Contras: RTO superior, precisa de um plano de promoção da região passiva.
Prática: automação + confirmação manual (princípio de 4 olhos) na mudança de carteira.
Intrarregional (Multi-AZ)
Fale automático BD/dinheiro/ingress.
Sem alteração DNS/Anycast, RTO segundo a minuto.
Backups por classe de dados
Princípios:- O Backap é encriptado em paz e transito, e as chaves em KMS/HSM.
- Modo imutável (WORM) para bacapes críticos (proteção contra apagar/criptografar).
- Catálogo de bacapes com metadados (versão do esquema, janela WAL, somas de controle).
- A PITR é obrigatória.
Dados e Idempotidade: como evitar «buracos» no feelover
"IdempotencyKey nos pedidos de 'bet. place`, `payout. request`, `cashier. webhook`.
Ledger - Apenas append-only: a redescoberta sensle criará uma gravação de ajuste em vez de «reiniciar».
Fechaduras transaccionais/versionização do balanço protegem contra corridas quando você muda de papel de escritor.
Deduplicação de eventos (consumer-side, hash em campos-chave).
Caixa, PSP e cripta: plano B sempre incluído
Pelo menos dois provedores para o método de pagamento (cartão/ARM), contas merchant preestabelecidas em ambas as regiões.
Duas redes (por exemplo, TRC-20 e ERC-20) e duas on/off-ramp.
Roteador de pagamento: Quando falha, o PSP alterna instantaneamente para o sistema de reserva, apresentando um registro de razões.
Os fluxos KYT/AML são duplicados; se o serviço externo não estiver disponível - «modo degraded» com escalação manual.
Procedimentos operacionais (Runbooks)
Automático
Health-cheque da cadeia ingress API carteira BD provedor.
Funções «pesadas» (torneios/missões) quando a carteira é degradada.
Temporizações/retraias com pausas exponenciais e deadline rigorosos.
Manual (com confirmação)
Promoção da região DR. para o ativo: Checlists por passo, Revistas, Modelos Comm (Safort/Parceiros/Regulador).
Compensações/VOID por rodada: códigos de causa, links de vídeo, assinaturas de responsáveis.
Descongelamento de pagamento duplamente controlado.
Exercícios e testes de prontidão
Game Day/Chaos Drill mensalmente: desligamento do AZ, degradação do banco de dados, queda do provedor.
Full DR. Rehearsal trimestral: elevar a região de DR. «em pleno crescimento», pesquisar cenários reais de taxas/pagamento.
Testes Restore: Restabelecer o candeeiro no momento T, cruzando com P&L e hash.
Tabela-top com complicações: Quem e quem notifica quais relatórios são formados (regulador, PSP, afiliados).
Observabilidade e sinais do feelover
Métricas SLO: p95 latency da carteira, porção 'bet. rejected ', tempo de round setle, pagamento SLA, replicação de BD de liga, Kafka-consoadores.
Eventos de alteração: alertas «role mudança», «replicação lag> X», «object-lock violation».
Dashboards DR.: rol atual de nós, avaliação RPO (minutos WAL), status da janela PITR.
Segurança e Complacência
Isolamento de dados de jurisdição (EU/UK/CA/...): replicação dentro do limite legal.
Os registros são imutáveis (S3 Object Lock/WORM), os registros são regulatórios.
Segredos: rotação de chaves, divisão de responsabilidades (dual-controle) para operações de DR..
O trailer de todas as mudanças e restaurações.
Anti-pattern que quebram DR
Um PSP/uma rede de stylcoina para o país - sem um roteiro de reserva.
OLTP e OLAP em um BD - recuperação bloqueia operações «vivas».
Sem idempotencyKey - Duplos de débito/pagamento de retalhos.
Os bacapes sem um teste de restore regular são «Bacap Schrodinger».
Falta de WORM/imutability - Vulnerabilidade à exclusão/malware.
Um feelover DNS sem TTL curto ou endpoint aquecidos.
Um único escritor em duas regiões é ao mesmo tempo um estado de fragmentação.
Folha de cheque pronta para acidentes
Arquitetura
- Multi-AZ para todos os serviços críticos, topologia documentada.
- A região DR. com o papel descrito (Ativo-Ativo/Passive) e o orçamento.
Dados
- Postgres: PITR, snapshots, monitoramento em linha, testes regulares de recuperação.
- Kafka/NATS: espelhamento/arquivo, replay-plano.
- ClickHouse/OLAP: Bacapes de partição, restauração de amostras.
- S3: Object Lock (WORM), versões, região cruzada.
Aplicativos
- Idempotency em dinheiro, append-only leder, versionização do balanço.
- Auto-função-degrade em incidentes (torneios/missões off).
- Verificações de canais antes de mudar de região.
Caixa e cripta
- Dois provedores por método e duas redes para bifes.
- Rotação e registro das razões das mudanças.
- KYT/AML em modo degrade escalado.
Operações
- Runbooks com RACI e telefones de serviço.
- Dias Chaos mensais e exercícios Full-DR. trimestrais.
- Modelos de comunicação (safort, parceiros, regulador).
Observabilidade
- Dashboards RTO/RPO, alertas de papel BD, laje, recusas de taxas/pagamentos.
- Auditoria-logs de mudanças e restaurações.
A confiabilidade não é um «botão do feelover», mas sim um sistema de hábitos: isolamento geográfico, RTO/RPO previsível, dinheiro idumpotente, caixa multirreligiosa, imutable-bacapes, exercícios regulares e comunicação transparente. Esta disciplina permite passar por falhas sem perdas no candeeiro, sem rodadas «engordadas» e sem impactos na confiança dos jogadores e reguladores.