WHATS CRM HUB

Arquitetura & Escala

Um Sistema, Cinco Tiers

O Mesmo Sistema Que Atende Seus 5 Primeiros Clientes Vai Atender Seus 5.000 Próximos

Você não precisa reescrever nada conforme o negócio cresce. Só mover para um servidor maior ou separar componentes. Os hooks já estão no código.

Uma das perguntas mais frequentes de potenciais parceiros revendedores: "se eu começar pequeno e meus clientes crescerem para milhares, o sistema aguenta?". Resposta: sim, sem rewrite. Esta página mostra o caminho do Tier 1 (VPS Contabo 4GB a R$ 70/mês) até Tier 5 (Kubernetes multi-região).

Todos os números abaixo vêm de load testing real interno do código (veja docs/system/LOAD_TEST.md, 1.281 linhas) — não estimativas de marketing. Preços de servidor são preços públicos 2026 (Hetzner Cloud, Contabo, AWS São Paulo, DigitalOcean).

Como Estimar Sua Necessidade

Fórmula Simples para RAM & Disco

Antes de escolher o tier, estime sua necessidade com esta regra geral.
~2 MB
RAM por device WhatsApp Web

1 cliente normalmente usa 1-3 devices WhatsApp. Então 100 clientes ≈ 100-300 devices ≈ 200-600 MB de RAM só para sessões whatsmeow.

~1 KB
Disco por mensagem armazenada

1 cliente envia/recebe 50-200 mensagens/dia em média. 100 clientes × 100 msg × 365 dias ≈ 3,6 GB/ano (arquivável).

~80 KB
RAM por conexão WebSocket ativa

1 cliente normalmente abre 1-3 abas. 100 clientes ≈ 200 conexões WS ativas ≈ 16 MB de RAM.

~150 bytes
Memória por task de broadcast pendente

Broadcast de 100 mil mensagens ≈ 15 MB de payload Asynq. Cabe confortavelmente no Tier 2 (6-8 GB de RAM).

Regra geral: 1 cliente ativo ≈ 5-10 MB de RAM (whatsmeow + WS + buffer). 100 clientes = ~500 MB-1 GB de RAM para estado de cliente. O resto é OS, Postgres, Redis e folga.

Jornada de Escala — 5 Tiers

Comece Barato, Suba de Nível Conforme o Negócio Cresce

Sem vendor lock-in. Sem rewrite. Só mover servidor ou adicionar componente.
🌱
Tier 1

Início (Mês 1–3)

Piloto, demo, pré-receita
1–10 clientes
Até 10 mil mensagens/dia
Cost
R$ 70–140/mês
Spec
1 VPS: 2 vCPU × 4 GB × 50 GB SSD
Providers
Contabo VPS S, Hetzner CX22, DigitalOcean Basic
Cocok untuk
Revendedores começando, agências testando o mercado, staging interno.
Highlights
  • Todos os componentes co-locados (App + Worker + Postgres + Redis em 1 servidor)
  • 4GB é suficiente porque o tráfego é baixo e a fila está vazia
  • Investimento inicial abaixo de R$ 200 — risco de negócio mínimo
🌿
Tier 2

Crescimento (Mês 3–12)

Primeiros clientes pagantes, capital recuperado
10–100 clientes
Até 100 mil mensagens/dia
Cost
R$ 210–415/mês
Spec
1 VPS: 4 vCPU × 8 GB × 100 GB NVMe
Providers
Contabo VPS M, Hetzner CX32, DigitalOcean Premium
Cocok untuk
O sweet spot para 80% dos revendedores SMB. O capital deve voltar até o mês 2-3 (10 clientes × R$ 80 = R$ 800 de receita).
Highlights
  • Basta subir DB_MAX_OPEN_CONNS=60, Asynq concurrency fica em 50
  • Tuning Postgres: shared_buffers=2GB
  • Seguro para campanhas de broadcast com 50 mil destinatários
  • Backup diário automático — cerca de R$ 30 a mais por snapshots
🌳
Tier 3

Expansão (Ano 1–2)

Fluxo de caixa estável, pronto para escalar
100–500 clientes
Até 500 mil mensagens/dia
Cost
R$ 1.050–1.700/mês total
Spec
4 servidores: App (4×8GB) + Worker (4×8GB) + Postgres (4×16GB×200GB) + Redis (2×4GB)
Providers
Hetzner Cloud (Helsinki/Singapore), AWS São Paulo, DigitalOcean
Cocok untuk
Revendedores grandes com muitos sub-tenants, ou enterprise mid-tier multi-divisão interna.
Highlights
  • Postgres em servidor próprio (shared_buffers=4GB)
  • Redis dedicado (queue + throttle + pubsub)
  • Setup só de ops — sem mudanças no código
  • Replica Postgres opcional para read-heavy
🏢
Tier 4

Escala (Ano 2+)

Tier enterprise, precisa HA + SRE
500–2.000 clientes
Até 1 milhão de mensagens/dia
Cost
R$ 4.100–6.800/mês total
Spec
9 servidores: App×2 (LB) + Worker×2 (sharded) + Postgres primary (8×32GB) + replica + Redis×2 + monitoring + PgBouncer
Providers
Hetzner Cloud, AWS São Paulo, GCP
Cocok untuk
Agências grandes, revendedores com milhares de sub-tenants, marcas corporativas com time de operações.
Highlights
  • API stateless atrás de Load Balancer — alta disponibilidade
  • Worker sharded por hash range de business_id
  • Postgres primary + replica (read-heavy vai para replica)
  • Stack completa de monitoring: Prometheus + Grafana + Loki
  • Precisa de pelo menos 1 SRE/devops para capacity planning contínuo
🏛️
Tier 5

Enterprise / Multi-Região

Clientes globais, regulamentação de residência de dados
2.000+ clientes
5 milhões+ mensagens/dia
Cost
R$ 27.500–82.500/mês dependendo de cloud + região
Spec
Kubernetes (10–30 pods auto-scale) + Postgres gerenciado + Redis gerenciado + CDN + multi-região
Providers
AWS / GCP / Azure (multi-região: São Paulo, Singapore, Saudi Arabia), Supabase Pro, Upstash
Cocok untuk
Marcas globais, compliance estrito (LGPD Brasil, PDPL Saudita data residency), SaaS white-label em escala SEA + Oriente Médio.
Highlights
  • Postgres gerenciado (RDS / Neon / Supabase) — auto-failover, point-in-time recovery
  • Redis cluster mode (Elasticache / Upstash)
  • Region-pinning por tenant (compliance PDPL Saudita)
  • CDN para assets estáticos (CloudFront, Cloudflare)

Nota: preços acima não incluem banda (geralmente 5–20 TB grátis no Hetzner/Contabo) e armazenamento de backup externo.

O Que o Sistema Cuida Automaticamente?

Você Não Precisa Ser Esperto — O Sistema É

Vários riscos clássicos em escala (queue runaway, throttle violation, memory leak) são tratados automaticamente.
Backpressure de Fila (Máx 50.000)

Quando a fila de broadcast enche, o sistema rejeita novos pickups — sem crash, sem OOM. Clientes recebem mensagem de erro clara.

Token Bucket Por Telefone (Anti Meta 429)

250 RPS por telefone, automático. Você não precisa se preocupar com rate limit do Meta Graph API.

Heartbeat Lock (Anti Throttle Violation)

Se o heartbeat lock se perde (outra instância assumiu), o batch é abortado automaticamente — sem double-send para o mesmo device que poderia disparar ban do WhatsApp.

Statement Timeout 30s

Queries longas são canceladas automaticamente — nenhuma goroutine bloqueia indefinidamente mesmo com query ruim.

Graceful Shutdown

No redeploy, o sistema dreina requests + fecha conexões WS com timeout de 1 segundo por client. Sem corrupção de dados por force-kill.

Retry Exponencial (Asynq)

Task falhou? Retry automático com backoff inteligente. Você só vê tasks que realmente não podem ser concluídas.

Crescimento = Config, Não Rewrite

Suba de Nível Sem Tocar no Código

Aqui está o que muda quando você sobe de tier — tudo no nível de config/ops, não código-fonte.
Pool de Conexão DB

Tier 1: DB_MAX_OPEN_CONNS=25. Tier 4: =120. Só mudar a env variable, restart.

Concorrência do Worker

Tier 1: concurrency=20. Tier 4: =200 por worker × 2 worker shards. Só env variable.

Sharding do Worker

Tier 4 começa usando WORKER_SHARD_RANGE=0-50% e =50-100% em 2 instâncias — split automático por hash range de business_id.

Split do Redis

Tier 4: queue, throttle e pubsub podem usar 2 instâncias Redis separadas via REDIS_QUEUE_URL + REDIS_CACHE_URL — já está pronto.

Read Replica do Postgres

Tier 4: queries read-heavy podem ser direcionadas à replica via db.Pool.Read() — scaffold pronto, opt-in por repository conforme necessidade.

Health Check & Cache Invalidate

Endpoint /health verifica DB + Redis. Cache invalidate cross-instance via Redis pub-sub — já roda em deploys multi-replica.

Não Tem Certeza Qual Tier Você Precisa?

Converse com nosso time por 30 minutos — ajudamos a dimensionar baseado em número de clientes-alvo, volume estimado de mensagens e budget de infra.