RRodrigo M. Reis
ConsultoriaMétodoRobôsMateriaisBlogSobre
Área do ClienteMaterial grátis
R

Rodrigo Munhoz Reis

Vibecoding com Engenharia. Construir com IA, rápido — mas com rigor de engenheiro.

ConsultoriaMétodoRobôsMateriaisBlogSobreÁrea do Cliente
LinkedInInstagram
© 2026 Rodrigo Munhoz Reis. Todos os direitos reservados.Política de Privacidade

Vibecoding

Load Balancer e Redis no seu sistema: tutorial pra pedir pra IA e validar

Load Balancer e Redis são 2 mudanças que transformam MVP em produto sério. Não são luxo, são sinal de que você tá levando a sério. Este tutorial mostra pra que serve cada um, quando ativar, como pedir pra IA em prompts P.R.O.M.P.T.E.R. estruturados e como validar em 3 comandos.

Rodrigo Munhoz Reis· 06 de julho de 2026· 8 min de leitura
Load Balancer e Redis no seu sistema: tutorial pra pedir pra IA e validar

Resumo em 3 linhas

Load Balancer distribui tráfego entre várias instâncias do seu servidor (se cair uma, o site fica no ar). Redis é memória rápida em RAM pra cache, sessão e rate limit (cai latência de 800ms pra 30ms). Este tutorial mostra quando ativar, prompts P.R.O.M.P.T.E.R. prontos pra pedir pra IA em Next.js/Vercel/Firebase, e como validar em 3 comandos.

Neste artigo

  • O que é Load Balancer (LB)
  • Quando ativar Load Balancer
  • O que é Redis
  • Quando ativar Redis
  • Como pedir pra IA fazer isso: 4 prompts P.R.O.M.P.T.E.R. prontos
  • Como validar se tá funcionando
  • Custo aproximado (07/07/2026)
  • Vale o ponto
  • Conclusão

Load Balancer e Redis são as 2 mudanças que separam MVP de produto sério. Não são luxo. São o momento em que você para de rezar pra o servidor não cair e começa a projetar pra ele não cair.

Este tutorial é o que eu ensino pra founder que começou no vibecoding e chegou no ponto de "o site travou de novo com 200 usuários".

O que é Load Balancer (LB)

Imagina que seu site é uma padaria. Se você tem 1 balconista e chega uma fila de 20 pessoas, cria gargalo. Load Balancer é você ter 5 balconistas, com um segurança na porta distribuindo:

  • Cliente A → balconista 1
  • Cliente B → balconista 2
  • Cliente C → balconista 3

Se balconista 2 falta ou fica doente, o segurança sabe e para de mandar cliente pra ele. Loja continua funcionando.

Em software:

  • Sem LB: 1 servidor recebe tudo. Se cair, site cai.
  • Com LB: 3 servidores recebem tráfego. Se um cair, os outros 2 seguem. LB detecta e retira o quebrado da roleta.

Quando ativar Load Balancer

Regra prática:

  • Tráfego < 1000 requests concorrentes: não precisa. Vercel/Cloudflare já fazem isso.
  • Tráfego 1000-10.000 requests concorrentes: ative se tem servidor próprio Node/Python.
  • SLA de 99.9%+ pra cliente: obrigatório.
  • Vários países acessando: LB geográfico melhora latência.

Se você tá em Vercel, Cloudflare, Netlify: você já tem LB por default. Só se importe se saiu desses.

O que é Redis

Redis é uma memória rápida em RAM. Bem rápida. Latência de 1-2ms contra 20-100ms de banco tradicional.

Use pra 3 coisas:

  1. Cache: guardar resposta de query pesada. Se você pergunta "quantos produtos tem?" e o banco leva 800ms pra responder, você guarda a resposta no Redis por 60 segundos. Próximas 100 pessoas que perguntam recebem em 2ms.

  2. Sessão de login: guardar quem tá logado. Toda request precisa verificar isso. Se guardar no banco, cada request paga 20ms. No Redis, 1ms.

  3. Rate limit: contar "quantas vezes o usuário X fez essa ação nos últimos 60 segundos". Rate limit no banco é dor. No Redis é 2 linhas.

Quando ativar Redis

  • Rota lenta que muita gente acessa: ativa pra essa rota específica.
  • Muitos logins simultâneos: ativa pra sessão.
  • Endpoint público sendo abusado: ativa rate limit.

Se você ainda não tem esses problemas, não instala. Complexidade sem dor é dívida técnica adiantada.

Como pedir pra IA fazer isso: 4 prompts P.R.O.M.P.T.E.R. prontos

O erro comum é pedir "coloca Redis no meu app". IA vai chutar formato, colar chave no código, esquecer TTL. Prompts abaixo são o contrato certo.

Prompt 1: Adicionar Redis (cache de query)

Papel: você é engenheiro sênior de back-end, especialista em Next.js
       e Upstash Redis. Se algo ficar ambíguo, pergunta antes de gerar.

Regras:
- Usar Upstash Redis via cliente @upstash/redis (não instalar redis package puro).
- Chave da conexão SEMPRE em variável de ambiente
  (UPSTASH_REDIS_REST_URL e UPSTASH_REDIS_REST_TOKEN).
- NUNCA colar chave no código.
- Todo cache tem TTL. Default 60 segundos.
- Nome da chave do cache tem prefixo (ex: "produto:count") pra debug fácil.

Objetivo: adicionar cache Redis na rota /api/produtos/count
que hoje leva 800ms.

Modelo: função pura src/lib/cache.ts com getOrSet(chave, ttl, fn)
+ modificação da rota.

Parâmetros:
- TTL 60 segundos.
- Se Redis falhar, cai pra fetch direto no banco (não quebra o app).

Teste: incluir 3 casos:
1. cache miss (pega do banco, salva no cache)
2. cache hit (retorna do cache)
3. Redis offline (fallback pro banco)

Retorno: só código, sem comentário fora dele.

Prompt 2: Session em Redis (login)

Papel: você é engenheiro sênior de segurança e Redis.

Regras:
- Sessão fica em Redis com TTL de 7 dias.
- ID de sessão é UUID v4 gerado no servidor
  (nunca deixar cliente escolher).
- Chave no formato "session:{uuid}".
- Payload da sessão contém APENAS: userId, createdAt, lastSeen.
- NÃO guardar senha, e-mail, token de terceiros.
- Logout apaga a chave.

Objetivo: substituir sessão em cookie stateful atual por sessão Redis.

Modelo: src/lib/session.ts com create, get, refresh, destroy.

Parâmetros:
- TTL 604800 segundos (7 dias).
- Refresh a cada acesso: atualiza lastSeen mas NÃO reseta TTL.

Teste: 4 casos:
1. Criar sessão nova.
2. Ler sessão válida.
3. Ler sessão expirada (retorna null).
4. Destruir sessão.

Retorno: código completo do session.ts + como usar
em middleware Next.js.

Prompt 3: Rate limit no Redis

Papel: você é engenheiro sênior anti-abuso.

Regras:
- Rate limit por IP + rota (não só IP).
- Janela deslizante de 60 segundos.
- Limite: 100 requests por janela.
- Se estourar, retornar HTTP 429 com header Retry-After.
- Chave no formato "ratelimit:{ip}:{rota}".
- Usar comando INCR + EXPIRE pra ser atômico.

Objetivo: proteger rota /api/lead-email de abuso.

Modelo: middleware src/lib/rate-limit.ts com função rateLimit(req)
que retorna { ok, retryAfter }.

Parâmetros:
- Limite 100 req por 60 segundos.
- IP vem de x-forwarded-for (Vercel).

Teste: 3 casos:
1. Primeira request passa.
2. 101ª request retorna 429.
3. Após 60 segundos, contador reseta.

Retorno: só código.

Prompt 4: Load Balancer via Cloudflare

Aqui muda: LB não é código, é configuração. O prompt pra IA é orientação, não geração de código.

Papel: você é engenheiro DevOps especialista em Cloudflare.

Regras:
- Configurar Load Balancer Cloudflare (não AWS ELB).
- 3 origins: Vercel principal, Vercel backup, Render como fallback.
- Health check a cada 30 segundos no endpoint /api/health.
- Se origin retornar não-200 em 3 checks seguidos, retira da roleta.
- Voltar automaticamente quando /api/health voltar a retornar 200.
- Distribuição: round robin com peso 3-2-1.

Objetivo: guia passo a passo pra configurar Load Balancer
Cloudflare pra domínio [seu-dominio.com.br].

Modelo: lista numerada de passos com screenshots ou nomes exatos
dos campos no dashboard Cloudflare.

Teste: incluir o comando curl pra validar cada origin manualmente
+ como simular queda de um origin.

Retorno: markdown com passos + endpoint /api/health que o Next.js
precisa expor (código dele).

Como validar se tá funcionando

Não confia no "acho que sim". Testa.

Validar Redis (3 comandos)

1. Ping:

redis-cli -h [seu-redis-host] PING
# Retorna: PONG

Se retornar PONG, conexão OK.

2. Monitor em tempo real:

redis-cli -h [seu-redis-host] MONITOR

Deixa rodando. Faz uma request no seu app. Deve aparecer SET e GET em tempo real. Se não aparece, o app não tá chamando Redis.

3. Latência caindo (o teste que importa):

Abre Chrome → F12 → Network. Roda a rota 1x (cold cache). Anota tempo. Roda 2x seguidas (warm cache). Compara.

  • Antes de Redis: 800ms, 800ms, 800ms.
  • Depois de Redis: 800ms (primeira, cold), 15ms, 15ms.

Se não caiu, Redis não tá ativado ou o TTL tá zerado.

Validar Load Balancer

1. Ver headers de resposta:

curl -I https://seu-dominio.com.br
# Procura header: cf-ray ou x-vercel-id
# Se aparecer, LB tá roteando.

2. Simular queda de origin:

Desliga uma das 3 instâncias. Roda curl 20 vezes.

Se todas responderam com 200, LB detectou e desviou. Se algumas deram 502, o health check ainda não removeu a instância morta. Aguarda 90 segundos e tenta de novo.

3. Ver distribuição:

for i in {1..30}; do
  curl -s https://seu-dominio.com.br/api/health | grep instance;
done

Se apareceu instance:1, instance:2, instance:3 misturados, LB tá distribuindo mesmo. Se veio tudo instance:1, algo tá errado.

Custo aproximado (07/07/2026)

Redis via Upstash (recomendado pra começar):

  • Free tier: 10.000 comandos/dia + 256 MB. Suficiente pra MVP.
  • Pago: US$ 0,20 por 100.000 comandos. R$ 1,03 por 100k.
  • App médio (10.000 req/dia com cache): ~R$ 30/mês.

Load Balancer Cloudflare:

  • Free tier: LB básico incluso.
  • Plano Pro: US$ 20/mês (R$ 103) + US$ 5 por health check ativo.
  • Vale se você tá em Cloudflare Pro por outros motivos (WAF, CDN).

AWS ALB (só se você tá em AWS):

  • US$ 22/mês fixo + US$ 8 por LCU (load capacity unit).
  • Complexo. Não recomendo pra começar.

Vale o ponto

"Mas isso tudo não é overengineering pra MVP?"

Vale o ponto. Não faça antes de precisar. Se seu MVP tem 50 usuários por dia e uma rota rápida, você não precisa de Redis. Não precisa de Load Balancer.

Você precisa quando:

  • Rota fica >500ms consistentemente.
  • Ver 500 error no log com tráfego médio.
  • Cliente reclama de lentidão em horário de pico.
  • SLA de 99.9%+ virou requisito de contrato.

Sinal de que tá na hora: você já mediu, você já sabe que a dor existe. Não é sensação, é dado.

Conclusão

Load Balancer é sobre não cair. Redis é sobre não ficar lento. Os dois juntos transformam MVP em produto sério.

A IA sabe fazer isso, mas erra em detalhes críticos (chave vazada, TTL zerado, cache stale). Prompts P.R.O.M.P.T.E.R. deste post te dão o contrato certo.

Depois de ativar, VALIDA. Nenhuma dessas mudanças é "confia que funcionou". Roda os 3 comandos.

Se travou algo, me manda no e-mail. Respondo direto.

A decisão é sua.

Perguntas frequentes

Perguntas rápidas

+Preciso de Load Balancer se meu site tem 100 usuários por dia?

Não. Load Balancer faz sentido a partir de ~1000 requests concorrentes ou quando você quer alta disponibilidade (SLA de 99.9%+). Vercel e Cloudflare já fazem isso por baixo dos panos no plano padrão. Se você tem seu próprio servidor Node/Python rodando, aí sim vale.

+Redis substitui banco de dados?

Não. Redis é memória rápida (dados em RAM). Perde se o servidor reinicia (a menos que configure persistência). Use como CACHE do banco, sessão de login e rate limit. Nunca como fonte única de verdade.

+Qual Redis gratuito eu uso pra começar?

Upstash Redis (upstash.com) tem free tier real: 10 mil comandos por dia + 256MB. Suficiente pra MVP. Integra nativo com Vercel e Firebase. Depois escala pago por uso.

+A IA sabe fazer isso sozinha?

Sabe fazer, mas erra em detalhes críticos (chave em código, TTL esquecido, cache stale). Por isso o P.R.O.M.P.T.E.R.: você dá o contrato certo e a IA entrega. Sem contrato, ela chuta e você vaza chave ou perde dado.

+Como sei se o Redis tá funcionando de verdade?

3 comandos: (1) redis-cli PING deve retornar PONG, (2) redis-cli MONITOR mostra em tempo real cada operação, (3) Chrome DevTools → Network mostra latência da rota antes/depois. Se caiu de 800ms pra 30ms, tá cacheando.

Não perca o próximo

Receba os próximos posts no e-mail

Sem enrolação, sem hype. Tutoriais, análise de notícia e método de vibecoding com engenharia. Cancela quando quiser, é só responder pedindo.

Próximo passo

Quer aplicar isso com método?

Baixe os guias gratuitos de vibecoding com engenharia e libere os robôs de IA na Área do Cliente — prompts prontos para usar no ChatGPT, Claude ou Gemini.

Baixar guias grátisConhecer os robôs
RM

Sobre o autor

Rodrigo Munhoz Reis

Consultor de IA e Diretor de Tecnologia (CTO), Co-Founder, CTO e CAIO da Tellia e sócio de produtos 100% construídos em vibecoding: MeuCurso, DireitoHub e TreinadorOAB. Escreve sobre construir e usar IA com a velocidade da máquina e o rigor de engenheiro: vibecoding com engenharia.

LinkedInInstagramSobre →

Continue lendo

Vibecoding

Como migrar dado sem perder nada no caminho

Migração é a operação com maior chance de perda silenciosa que existe. O método que funciona nunca desliga a origem antes de provar, com número, que o destino está igual.

Vibecoding

Como corrigir dado ruim antes que vire decisão ruim

Limpar a base inteira é projeto que nunca termina. Existe um caminho melhor: fechar a torneira primeiro, depois limpar só o que alguém usa pra decidir.

Vibecoding

Por que a IA acerta no mundo e erra no seu dado

Ela responde qualquer pergunta geral com precisão e erra feio na sua base. Não é limitação do modelo. É que o seu contexto nunca foi dito a ele.

← Voltar ao blog