Sistema de Atendimento Automatizado
Como processar milhares de mensagens simultâneas via WhatsApp mantendo o contexto da conversa e garantindo que o usuário nunca receba respostas duplicadas, mesmo em picos de tráfego?
Uma solução de engenharia robusta utilizando arquitetura de microsserviços, processamento assíncrono e padrões de design avançados para garantir escalabilidade e consistência.
Arquitetura do Sistema
Fluxo de dados otimizado para alta performance e desacoplamento de serviços.
Gateway & Rate Limit
NGINX recebe webhooks do WhatsApp (Z-API). Middleware aplica Rate Limiting atômico via Lua Scripts no Redis.
Bridge Service
Deduplicação de mensagens e roteamento inteligente. Separa mensagens de usuários das de atendentes.
Distributed Lock
Redis Lock garante que mensagens simultâneas do mesmo usuário sejam processadas sequencialmente.
Bot Core (State Machine)
Pipeline processa a mensagem através de uma Máquina de Estados Finitos, mantendo contexto e sessão.
Deep Dive Técnico
Soluções de engenharia para problemas complexos de concorrência e estado.
Concorrência & Race Conditions
Redis LocksUsuário envia 'Oi' e 'Tudo bem?' em < 100ms. Processamento paralelo causaria respostas duplicadas e estado inconsistente.
Implementação de Distributed Locks no Redis (bot:lock:phone). A segunda mensagem aguarda na fila até a primeira liberar o estado, garantindo consistência ACID na sessão.
Rate Limiting Atômico
Lua ScriptsProteger a API contra bursts e DDoS sem adicionar latência significativa de rede.
Middleware customizado executando Scripts Lua diretamente no Redis. Operações de verificação e incremento são atômicas (0.5ms overhead), eliminando race conditions na contagem.
State Machine Pattern
Design PatternsGerenciar fluxos conversacionais complexos com 15+ estados, validações e retornos.
Arquitetura baseada em Máquina de Estados Finitos. Cada estado é isolado, testável e possui transições determinísticas baseadas em regras de validação (Regex/Lógica).
Resiliência & Circuit Breaker
Fault ToleranceFalhas na API do WhatsApp ou Chatwoot não podem derrubar todo o sistema.
Padrão Circuit Breaker implementado nas integrações externas. Filas de Dead Letter para mensagens falhas e retries exponenciais para instabilidade de rede.
Stack Tecnológica Completa
Backend
- FastAPI (Async)
- SQLAlchemy 2.0
- Pydantic v2
- Structlog (JSON Logs)
Frontend
- React 18
- Ant Design
- Vite
- Axios + Interceptors
Infra & DevOps
- Docker Compose
- NGINX (Reverse Proxy)
- Redis (Cache/Lock)
- PostgreSQL