A Vero é organizada em torno de um núcleo transacional em Laravel com MySQL e Redis. O nginx entrega os dois aplicativos React como arquivos estáticos e encaminha a API e o WebSocket. Toda ordem passa por uma fase curta e síncrona de validação e reserva de saldo e por uma fase de casamento executada em fila, serializada por resultado. Um motor em Go recebe cópia das ordens por Redis Streams, casa em memória e compara cada resultado com o do motor principal. A custódia fica em um serviço Node.js separado, acessível apenas pelo servidor da aplicação, que assina transações na Polygon com chaves decifradas por KMS e opera contratos de custódia com aprovação dupla e travas de tempo. São 113 migrações, 51 tabelas criadas por migração, cerca de 290 rotas de API, 27 tarefas agendadas e sete processos permanentes.
- Backend
- PHP 8.3 com Laravel 12, Sanctum (tokens com escopo distinto para aplicativo e painel), Socialite (login com Google), Reverb (WebSocket), web push e Sentry. Cerca de 20,7 mil linhas de código de aplicação: 38 modelos, 30 serviços de domínio, 32 comandos de console, 20 notificações e 13 middlewares. Login por carteira com verificação de assinatura Ethereum no servidor.
- Casamento e risco
- Livro único por resultado em que NÃO a p equivale a SIM a 100 − p: compras opostas criam o par, vendas opostas o destroem e ordens do mesmo lado transferem cotas. Fase síncrona curta com bloqueio do usuário e do resultado; fase de casamento em fila, idempotente e serializada, com ordem determinística de bloqueios para evitar impasse no banco. Venda descoberta bloqueada, ordens a mercado convertidas em limite quando não há contraparte, suspensão de negociação em torno de lances ao vivo, limites de posição por formador de mercado e invariante de conservação que desfaz a operação inválida.
- Motor Go
- Go 1.26 com go-redis e driver MySQL. Uma goroutine por resultado consome as ordens por Redis Streams com grupos de consumidores, casa em memória com as mesmas três semânticas do motor principal (transferência, criação e destruição de par) e compara cada execução. No arranque, carrega posições e ordens abertas do banco para começar com o mesmo estado.
- Interface
- Aplicativo do usuário em React 19, TypeScript 5.9 e Vite, com Tailwind CSS, Radix UI, TanStack Query, Zustand, i18next em 20 idiomas, lightweight-charts e Recharts para preço e probabilidade, Laravel Echo para tempo real e wagmi, viem, RainbowKit e WalletConnect para carteiras (cerca de 21,8 mil linhas e 29 páginas). Painel administrativo em React separado (cerca de 14,8 mil linhas e 32 telas) com exportação em PDF e mapa de usuários.
- Dados e filas
- MySQL 8 com valores em centavos inteiros e Redis 7 para filas de casamento e gerais, cache de API pública, streams do motor Go e janela antirrepetição de webhooks. Instantâneos de probabilidade alimentam os gráficos e são expurgados após 30 dias. Supervisor mantém três workers, o WebSocket, o recálculo de probabilidades, a captura de jogos ao vivo e o motor Go.
- Custódia e blockchain
- Serviço Node.js 22 com Express 5, ethers 6 e AWS KMS, isolado em servidor próprio e aceito apenas pela aplicação. Nove contratos Solidity 0.8.24 com OpenZeppelin 5 e Hardhat: custódia de USDC com aprovação dupla acima de um limite, cofre com trava de tempo de 24 a 48 horas para mudanças de configuração e teto diário, depósito sem gás por assinatura EIP-2612, token ERC-20 de oferta fixa e trava de liquidez.
- Resolução e conteúdo
- Máquina de estados por mercado esportivo que mapeia o jogo na API de esportes, acompanha o status real e resolve pelo placar. Mercados gerais usam IA com busca na web e só pagam com três ou mais fontes confiáveis independentes concordando; sem isso, vão para a fila do painel. Importação de mercados da Polymarket e da Kalshi três vezes ao dia, agregador de notícias com filtro de conteúdo e tradução automática.
- Qualidade e operação
- Cerca de 190 casos de teste de backend com Pest e PHPUnit em 27 arquivos, 25 cenários ponta a ponta em Playwright e GitHub Actions para testes e implantação. nginx atrás da Cloudflare, cabeçalhos de segurança e CSP, backups diários do banco, monitoramento de processos e de workers e rotinas de retenção de logs e de auditoria.