Leads — Motor de Reservas
Produto do estúdio
Um SaaS que varre empresas brasileiras com presença digital falha — sem site, sem WhatsApp, nota baixa, perfil incompleto — e entrega cada uma como lead exclusivo para quem vende esses serviços. Não vende lista: vende o direito de manter N empresas reservadas só para você.

O desafio
Lista de leads é commodity: a mesma empresa é vendida para dez pessoas e ninguém fecha. O produto só tem valor se a exclusividade for real — e exclusividade real é problema de banco de dados, não de promessa comercial. Duas pessoas pedindo a mesma empresa no mesmo instante não podem levar as duas.
A solução
Um motor de alocação com seis regras — piso de disponibilidade, teto de concentração, cooldown, cláusula de uso, transação e paridade — que decide quem fica com o quê. A reserva acontece dentro de uma transação: ou é sua, ou não existe. Um job periódico expira o que não foi trabalhado, senão a trava anti-acaparamento existiria só no papel.
O que tem dentro
Funcionalidades
Exclusividade que é transação, não promessa
A alocação roda dentro de uma transação de banco. Se duas requisições disputam a mesma empresa, uma ganha e a outra recebe negativa — nunca as duas.
108 testes, com uma suíte só de segurança
Oito arquivos cobrindo regra de negócio, migração, limite de taxa e admin. A suíte de segurança prova que ataques específicos falham, em vez de afirmar que o sistema é seguro.
Limite de taxa que sobrevive a vários processos
Em produção o contador vive no Redis. Sem ele, o limite valeria por processo — com quatro workers, o teto real viraria quatro vezes o configurado. A aplicação avisa no boot quando está nesse modo.
Schema versionado, nunca improvisado
As tabelas vêm de migrações Alembic, e não de um create_all. É o que permite mudar o banco em produção sem perder dado nem adivinhar em que estado ele está.
Stack
- Python
- FastAPI
- SQLAlchemy
- Alembic
- Redis
- React
- TypeScript
Nosso papel
- Produto
- Back-end
- Front-end
- Banco de dados