Ednan Ferreira
Sistemas Distribuídos

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.

Python
FastAPI
Redis
PostgreSQL
Docker
< 500ms
Latência P95
Tempo de resposta ponta a ponta
40%
Redução Carga
Menos atendimentos manuais
99.5%
Uptime
Disponibilidade 24/7
5k+
Throughput
Mensagens processadas/dia
5k+
Throughput
Mensagens processadas/dia

Arquitetura do Sistema

Fluxo de dados otimizado para alta performance e desacoplamento de serviços.

1

Gateway & Rate Limit

NGINX recebe webhooks do WhatsApp (Z-API). Middleware aplica Rate Limiting atômico via Lua Scripts no Redis.

2

Bridge Service

Deduplicação de mensagens e roteamento inteligente. Separa mensagens de usuários das de atendentes.

3

Distributed Lock

Redis Lock garante que mensagens simultâneas do mesmo usuário sejam processadas sequencialmente.

4

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 Locks
O DESAFIO

Usuário envia 'Oi' e 'Tudo bem?' em < 100ms. Processamento paralelo causaria respostas duplicadas e estado inconsistente.

A SOLUÇÃO

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 Scripts
O DESAFIO

Proteger a API contra bursts e DDoS sem adicionar latência significativa de rede.

A SOLUÇÃO

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 Patterns
O DESAFIO

Gerenciar fluxos conversacionais complexos com 15+ estados, validações e retornos.

A SOLUÇÃO

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 Tolerance
O DESAFIO

Falhas na API do WhatsApp ou Chatwoot não podem derrubar todo o sistema.

A SOLUÇÃO

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