O Setor de iGaming é um ambiente altamente competitivo, Exigir um back-end de alto desempenho e dimensionável para reter jogadores e garantir uma jogabilidade tranquila. Qualquer tipo de aposta on-line no resultado futuro de um jogo ou evento - como apostas esportivas, cassinos on-line, pôquer e eSports - é considerado parte do iGaming. Essas empresas precisam lidar com grandes volumes de tráfego imprevisível e, ao mesmo tempo, garantir um tempo de atividade ininterrupto. A retenção de usuários é fundamental, e qualquer problema de desempenho pode afastar os jogadores. O banco de dados é a espinha dorsal de qualquer arquitetura de plataforma bem-sucedida, mas geralmente é o maior gargalo. Para lidar com milhões de usuários, ele deve manter um tempo de atividade de 100% durante os horários de pico, proporcionando aos usuários uma experiência responsiva e personalizada em todos os seus dispositivos.
Processamento de transações de baixa latência
Há dois tipos de transações no iGaming: críticas e não críticas. As operações de carteira são transações críticas que devem atender a um SLA de 1 segundo, especialmente para jogos de cassino. Embora as transações de liquidação de apostas esportivas possam ser aceleradas, os jogadores de cassino esperam uma experiência instantânea - pressionar um botão deve deduzir imediatamente o dinheiro de sua carteira.
Alguns provedores de cassino impõem um SLA rigoroso de 1 segundo para que os operadores lidem com transações de débito e crédito quando uma rodada começa ou quando um jogador ganha/perde. Isso garante uma experiência de jogo tranquila para o jogador. As transações que não atendem a esse requisito são interrompidas por tempo limitado. O processamento lento gera atrasos, tempos de espera mais longos para os jogadores e uma experiência de usuário ruim, causando frustração e possível rotatividade de jogadores. Os jogadores precisam de uma jornada tranquila enquanto jogam. Caso contrário, eles perderão a confiança na plataforma.
Com base em minha experiência de trabalho em iGaming, se até mesmo 0,5% de transações ficarem fora do ar durante o horário de pico, o suporte ao cliente será sobrecarregado com reclamações de jogadores, gerando frustração e desconfiança na plataforma.
Durante o processamento da carteira para várias carteiras (por exemplo, dinheiro e bônus), é essencial que os ganhos sejam distribuídos de acordo com a mesma porcentagem do débito. Por exemplo, se um jogador fizer uma aposta de 1 unidade e esse valor for deduzido como 20 centavos da carteira de dinheiro e 80 centavos da carteira de bônus, os ganhos deverão refletir a mesma distribuição percentual. Isso significa que, se o jogador ganhar, 20% dos ganhos deverão ser creditados na carteira de dinheiro e 80% na carteira de bônus.
Esse tipo de informação deve ser armazenado de forma confiável e consistente em todos os momentos. Como os ganhos do cassino são normalmente processados e enviados aproximadamente um segundo depois, uma abordagem eventualmente consistente não será suficiente. Além disso, é comum que os provedores de cassinos enviem transações duplicadas. Portanto, o sistema deve ser projetado para lidar efetivamente com esses cenários e evitar o processamento duplo.
É nesse ponto que ter um banco de dados NoSQL como o Couchbase se torna essencial. O Couchbase armazena todos os dados em seu cache e, em seguida, grava-os de forma assíncrona no disco em milissegundos. Com sua arquitetura de vários mestres, o Couchbase oferece maior desempenho em comparação com o MongoDB em ambientes de produção. Por exemplo, se você tiver um cluster de dados com três nós, todos os três nós poderão processar transações simultaneamente. Isso garante que as transações de carteira sejam processadas muito mais rapidamente, permitindo que os usuários vejam os saldos de suas carteiras atualizados com rapidez e precisão. Isso resulta em uma melhor experiência para o usuário e, ao mesmo tempo, reduz os custos de infraestrutura.
Tempo de inatividade zero
Uma das principais vantagens do Couchbase é sua capacidade de realizar atualizações e manutenção sem causar tempo de inatividade. Esse é um recurso essencial para as plataformas de iGaming, em que milhares de jogadores ainda podem estar jogando ativamente, mesmo fora do horário de pico. Sua arquitetura de vários mestres permite atualizações em um nó enquanto outros nós mestres continuam processando transações sem problemas. Isso significa que os jogadores podem continuar jogando, apostando e gerenciando carteiras sem interrupções, mantendo uma experiência suave e responsiva o tempo todo.
Consulta de transações
Para as empresas de iGaming, 90% das transações de carteira são baseadas no ID da aposta ou no ID da rodada para apostas esportivas e cassinos, respectivamente - o que é adequado para o armazenamento de valores-chave. Os outros 10% de transações envolvem reversões, exigindo pesquisas por ID de transação. Isso se torna um caso de uso perfeito para um banco de dados orientado a documentos como o Couchbase, em comparação com armazenamentos de valores-chave como o Redis. Com o Couchbase, mais informações podem ser adicionadas conforme necessário. Por exemplo, as apostas esportivas às vezes exigem até 20 parâmetros diferentes e os jogos de cassino têm seus próprios tipos diferentes de dados associados.
A arquitetura de vários mestres do Couchbase Capella permite que você dimensione com eficiência e processe um volume maior de documentos. Um cluster de 3 nós pode lidar com um número significativo de documentos por IDs em comparação com outros bancos de dados mestre-escravo orientados a documentos.
Os níveis de tráfego nos horários de pico podem aumentar cinco vezes mais do que nos horários fora de pico, e isso pode ocorrer diariamente. O escalonamento automático tem dificuldades para lidar com picos repentinos de tráfego, pois o tráfego costuma ir e vir muito rapidamente. O Couchbase Capella permite que você implemente o dimensionamento baseado em tempo por meio de sua API, possibilitando um gerenciamento de recursos mais eficiente durante padrões de tráfego imprevisíveis. Certas demandas de tráfego são constantes e podem ser previstas, enquanto outras aumentam e diminuem com base em outros fatores - e uma empresa de iGaming precisa estar preparada para lidar com ambos os cenários.
Conclusão
De modo geral, se você estiver procurando uma plataforma para lidar com 2 mil solicitações por minuto, o MongoDB poderá ser capaz de lidar com isso. No entanto, se você quiser preparar sua solução para o futuro e se preparar para lidar com alta taxa de transferência com uma meta de mais de 30 mil solicitações por minuto, o Couchbase é a opção que eu recomendaria em termos de custos, confiabilidade e escalabilidade.
Do ponto de vista do usuário, a principal métrica que eu observava era o número de transações que estávamos processando por minuto e se havia uma queda. Por exemplo, se estivéssemos processando 20 mil solicitações por minuto e depois caíssemos para 10 mil, isso seria um indicador de que algo está errado e que há um grande impacto financeiro nisso. Na maioria das vezes, o problema estava relacionado ao banco de dados. O Couchbase oferece desempenho, confiabilidade e disponibilidade muito melhores a um custo total de propriedade mais baixo.