CloudChat - Livechat Dashboard
O Problema
Muitas plataformas de atendimento ao cliente (como chatbots de WhatsApp) focam inteiramente na automação por bots e carecem de uma interface intuitiva para o transbordo humano.
O desafio do CloudChat era evoluir um simples dashboard de estatísticas para uma plataforma completa de Livechat em tempo real. Era necessário permitir que atendentes reais pudessem assumir conversas de bots instantaneamente, visualizando o histórico e conversando com o cliente pelo WhatsApp de forma fluida.
Além disso, o painel original precisava ser modernizado para lidar com milhares de requisições concorrentes, entregando mensagens sem delay de rede (Real-time bidirecional).
A Solução
A solução envolveu uma migração arquitetural completa para a separação do Front-end (React) e Back-end (Node.js).
Implementei o Socket.IO para garantir um canal de comunicação via WebSocket ativo e persistente, permitindo o recebimento instantâneo das mensagens provenientes das APIs oficiais do WhatsApp direto na tela do agente.
Para o armazenamento inteligente de informações e alta disponibilidade, utilizei uma abordagem híbrida de banco de dados:
- Redis (Em Memória): Utilizado como cache principal para armazenar conversas ativas e sessões, diminuindo o tempo de resposta das consultas do frontend.
- PostgreSQL (Prisma ORM): Banco relacional principal para persistência histórica (mensagens antigas, leads, agendamentos).
Arquitetura e Desafios Técnicos
Modernizar um sistema para uma plataforma real-time de alto tráfego trouxe desafios técnicos significativos.
Principais decisões técnicas:
- Migração do layout antigo mantendo a paleta de cores original (verde e roxo) com estética moderna (Glassmorphism).
- Adoção do Docker para orquestrar serviços do Redis e PostgreSQL localmente de forma isolada.
- Uso do Prisma ORM para facilitar as consultas e garantir o Data Integrity no PostgreSQL.
Desafios enfrentados:
→ Solução: Correção das flags de hardware virtualization na BIOS e habilitação do WSL2.
→ Solução: Implementei a propriedade dinâmica "lastTime" monitorada via WebSockets no React para reordenar o componente dinamicamente.
Resultados e Conclusão
A evolução para o novo CloudChat entregou uma plataforma robusta capaz de lidar com picos de atendimento.
- Latência quase zero via WebSockets
- Alta Disponibilidade (Redis)
- UX Moderna e Fluida
Principais aprendizados:
- Orquestração de Containers com Docker e ecossistema WSL2.
- Gerenciamento avançado de cache em memória (Redis) integrado com bancos relacionais (PostgreSQL).
- Comunicação bidirecional e assíncrona usando WebSockets para chat real-time.