Gerador Lotofácil
motor que carrega centenas de milhares de combinações em memória e aplica filtros estatísticos configuráveis sobre o histórico real de sorteios.
gerar jogo aleatório é trivial; o interessante é filtrar um universo enorme de combinações por critérios estatísticos — quantidade de primos, dezenas de moldura, repetição do último sorteio, atraso de cada dezena — sem esperar minutos por resposta.
a base de combinações é lida uma única vez do disco e mantida em memória no processo; cada requisição é só uma varredura com os filtros escolhidos. as estatísticas de atraso e repetição vêm de uma tabela PostgreSQL com o histórico dos concursos.
como as peças se conectam
- Navegadorpainel de filtros
- Next.jsrota de API deste site
- Memóriabase de combinações carregada uma vez
- PostgreSQLhistórico dos concursos
o que existe dentro
Engine de geração
implementadocache em memória da base e aplicação dos filtros configuráveis.
Estatísticas
implementadoconsultas de último sorteio, frequência e atraso por dezena.
Painel
em construçãointerface de configuração dos filtros e visualização dos jogos gerados.
o que foi usado
decisões técnicas e o porquê
memória em vez de banco
carregar a base inteira uma vez e filtrar em memória ficou mais simples e mais rápido do que empurrar a combinatória para o SQL.
histórico no PostgreSQL
o que muda a cada concurso fica no banco; o que é imutável, no arquivo.
o que ficou
- nem todo dado precisa de banco. o que não muda e cabe na memória do processo pode simplesmente ficar lá.
- cache de processo tem um custo escondido: o primeiro acesso depois do restart paga a conta inteira — vale aquecer no boot.