Optimus
Plataforma de Chatbots AI para Milhões de Usuários
O Problema
Uma empresa precisava de uma plataforma de chatbots que atendesse clínicas, e-commerces, escritórios de advocacia — qualquer vertical de negócio. O sistema precisava escalar pra milhões de usuários, manter contexto de conversas longas, e isolar completamente os dados entre clientes.
Chatbots genéricos não resolvem. Eles esquecem o que você disse 5 mensagens atrás e não entendem que "dente 36" numa clínica é informação crítica que não pode sumir.
A Solução
Arquitetura de microserviços do zero, pensada pra produção desde o dia um:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ WhatsApp │ │ Web/Mobile │ │ Outros │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
└────────────────┼────────────────┘
│
┌────────────▼────────────┐
│ Backend Orchestrator │
│ Rate limiting, cache │
└────────────┬────────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
┌───▼───┐ ┌─────▼─────┐ ┌─────▼─────┐
│ AI │ │ Memory │ │ Rules │
│Engine │ │ Engine │ │ Engine │
└───────┘ └───────────┘ └───────────┘- Backend Orchestrator — Gateway único. Rate limiting, cache, circuit breaker.
- AI Engine — Processa conversas com LangChain. Zero acesso a banco.
- Memory Engine — Dono do PostgreSQL. Memória hierárquica (hot/warm/cold).
- Rules Engine — Automações de negócio por vertical.
Multi-Tenancy de Verdade
Cada cliente tem seu próprio schema no PostgreSQL (t_clinica_abc, t_loja_xyz). Não é só um tenant_id numa tabela compartilhada — é isolamento real. Um bug no código de um tenant não vaza dados de outro.
O Problema do "Esquecimento"
Chatbots perdem contexto. Depois de 50 mensagens, esquecem que você marcou consulta pra terça às 14h.
Resolvi com memória em três camadas:
- Hot — Redis, últimas mensagens, acesso instantâneo
- Warm — Redis, contexto recente, TTL maior
- Cold — PostgreSQL, histórico completo
Quando um operador humano devolve pro bot, o sistema gera resumo via GPT-4 com templates específicos por vertical. Numa clínica, ele sabe que "dente 36" e "amoxicilina 500mg" são críticos.
Números
<500ms
Latência P95
~90%
Cache hit
99.9%
Uptime
3k/s
Throughput
Stack
O que aprendi
Separação de responsabilidades não é frescura. Depois de 6 meses, quando você precisa mudar o cache sem quebrar o AI Engine, agradece.
Multi-tenancy precisa ser pensado desde o dia um. Schema por tenant no PostgreSQL é mais trabalho inicial, mas dorme tranquilo.
Memória de chatbot é subestimada. Todo mundo foca no modelo. Ninguém fala do que acontece com 200 mensagens.
Interessado em construir algo parecido?
Vamos conversar