Failover, Replicação e Planos Dr. para Casino
1) Objetivos de negócios: RTO/RPO e flow críticos
RTO (quanto tempo o serviço pode não estar disponível): login/taxa/depósito - segundos/minutos; relatórios são relógios.
RPO (quantos dados podem ser perdidos): carteira/transação - £0-30 segundos; Telemetria - minutos.
Flow crítico: login, depósito/retirada, taxa/setlment, KYC/AML salsichas, webhooks PSP/provedores de jogos.
2) Pattern arquitetônicos de resistência a falhas
Ativo-ativo (multi-region): ambas as regiões processam o tráfego; RTO/RPO baixo, consistência complexa.
Ativo-Standby: uma região em funcionamento, a outra quente; mais fácil, RTO minutos.
Cell-based: isolação por «celas» (market/brand), incidentes locais não acabam com tudo.
Edge-pastel: Anycast CDN/WAF → passarelas regionais → clusters de app → BD/cachês replicados.
3) Gestão de tráfego e feedback de rede
Anycast + CDN/WAF: absorção L3/4/7, health cheque por origin.
Um feelover DNS (TTL baixo, multi-value), um gestor Traffic/GSLB por métricas de saúde.
Um anúncio BGP através do provedor anti-DDoS para uma mudança rápida de caminho.
Cheque Health (exemplo de lógica):
if p95_latency>threshold          5xx_rate>threshold          synthetic_login_fail:
drain(region_A); shift(traffic->region_B, ramp=5min)4) Dados: carteira, encomendas, apostas
A origem da verdade é um registro de cabos (ledger): apenas append, idempotidade por 'operation _ id'.
Alinhamento: recorrência periódica-jobs entre ledger, PSP e provedores de jogos.
Anti-tomada: idempotency-chaves para depósitos/salsichas/pagamentos; Deduplicação em outbox/inbox.
5) Replicação da base de dados: opções e compromissos
Sincronizado físico (semi-sync): RPO mínimo, risco de atrasos - usar pontualmente (carteira).
Asincrona: maior produtividade/simplicidade, RPO segundos-minutos - sob metadados de jogo, guias.
Lógico (CDC) para outra região: Seletividade flexível, fácil para cruzadores e analistas.
Cash (Redis/Memcached): não como fonte da verdade; réplicas/esmaltes, lançamentos quentes.
PITR: Registros contínuos (WAL/redo) em armazenamento off-site, janela de recuperação ≥ 7 a 30 dias.
6) Consistência e modelos de concordância
Saga + Outbox: transações de negócios como uma cadeia de passos, publicação de eventos atômico com gravação no banco de dados.
Exactly-once «sentido»: Idempotidade das operações, controle das versões do balanço (otimístico locking).
Eventual consistency em flow não duráveis (liderbord, analista); strong para dinheiro.
7) Componentes e seus feelowers
API/Backend
Contêineres de estado, scale automático, blue-green/canary; configs por armazenamento (versionizado).
Filas/striptease
Clusters quórum (N = 3/5), réplica cross-AZ; políticas de repetição e fila de dlt.
BD carteira
Praimari em Region A, réplica sincronizada em A (outro AZ), asincrona em Region B; O promote automático para split-brain é proibido - apenas por meio de folha de cheque manual/violão.
Ficheiros/artefatos CUS
Armazenamento de objeto versionizado, réplica cruzada/CRR, chaves em KMS.
WebSocket/Real-time
Charding por chave (mesa/game/market), sticky-routing; no feedback - resubscribe com rejoin-token.
8) Pagamentos e provedores de jogos: muitas fontes de verdade
Fewer PSP: pelo menos 2 provedores por método (cartão, carteiras, cripto).
Itinering percentual de SLA/custo/banlists BIN; desligar a máquina PSP degradada.
Provedores de jogos: canais de reserva/ASN allow-list, chaves individuais para regiões, isolamento de horários.
9) Webhooks e salsichas: recepção sustentável e reprodução
Inbox-pattern: Aceitando webhook → verificando a assinatura/NMAS → escrevendo em imutable-inbox → processando worker idempotadamente.
Retrações de provedores: backoff + deadup por 'event _ id '/' signatura'.
Para DR.: réplicas de inbox com controle de ordem (txn → masslement).
10) Bacapes: estratégia 3-2-1 e testes de recuperação
3 cópias/2 mídia/1 off (e 1 off/WORM para revistas críticas).
Horários: Diárias súplicas + revistas constantes; Um teste-restore semanal para um estande «escuro».
Catálogos de recuperação: «Como levantar a carteira no momento do T-2».
11) Plano Dr.: papéis, cenários, comunicações
Роли: Incident Commander, Comms, DB Lead, App Lead, Payments/Game PM, SRE Oncall.
Os canais são war-room, status-página, modelos de mensagem safort/parceiro/afiliada.
Cenários (mínimo):- Perda de AZ, perda de região, indisponibilidade PSP, queda do cluster BD, degradação do provedor de jogos, fuga de chaves, 5xx em massa.
12) Exemplo de matriz de script DR
13) Runbook 'e e automação
Botão «DR.-cutover»: sequência de passos com validação (freeze writes → promote → warm caches → ramp traffic).
Controles de integridade: combinação de somas por ledger/carteira, equilíbrio não compatível.
Função-flags: Reporte rápido disable/exportação/dashboards pesados durante o acidente.
14) Observabilidade para o feelover
As métricas SLO como triggers, login, depósito, aposta, iniciar o jogo.
Технические: replication-lag, WAL-shipping, queue-lag, 5xx, p95, SYN backlog, WebSocket disconnects.
Cenários de sintético de outras regiões: login/depósito/taxa de cada minuto.
Traçados end-to-end, marcas 'region', 'psp', 'game _ provider'.
15) Chaos/Doutor-exercício
GameDay trimestral: desativação do AZ, degradação do PSP, «perda» do nó do banco de dados, paragem da fila.
Retrospectiva: tempo de decisão, alertas que faltam, ruídos, estreitos.
Ajustar RTO/RPO e automação com base em factos e não «sensações».
16) Segurança e complacência
Chaves/segredos em KMS/HSM (cruzadas-regionais), rotação e dual-controle.
O WORM/imutability para registros de auditoria e transações.
DPA/contratos com os provedores PSP/SLA/DR. compromissos e pontos de contato 24 x 7.
17) Exemplo de política mínima de feelover (pseudocode)
on Incident(type="REGION_DOWN"):
freeze_non_critical_writes()
promote_db(region=B)
verify_ledger_consistency()
warm_caches(region=B)
route_traffic(region=B, ramp=10%)
for step in [25%, 50%, 100%]:
if SLO_green(): ramp(step) else rollback()
announce_statuspage()18) Folha de cheque pronta (prod-ready)
- RTO/RPO definidos para cada flow; aceite pelo negócio.
- Multi-AZ mínimo; Multi-region para carteira, login e pagamentos.
- Ledger + idempotidade (keys) + outbox/inbox; reconciação programada.
- Replicação de BD: sync local, async em DR.; PITR ativado, restore testado.
- Dois PSP por método, política de routing e chaves de teste; provedores de jogos são alternativas.
- DNS/GSLB/Anycast, cheques health e sintético, TTL baixo.
- Runbook 'e' botão DR.-cutover ', função-flags para degradação.
- SLO/alertas/trailing; painel de status DR.
- Exercício DR. trimestral + retrô; contatos atualizados 24 x 7.
Currículos
Uma plataforma iGaming confiável é construída em torno de um circuito de dinheiro, como um registro de cabos de idoneidade, um feedback previsível, uma replicação verificável e exercícios DR regulares. Divida o sistema em células e regiões, automatize o cutover, mantenha dois PSP e provedores de jogos de reposição, siga o SLO e a holística ledger - e mesmo um grande acidente será um evento controlado sem perda de credibilidade e dinheiro.
