“Assistentes só são úteis quando ouvem tudo, mas falam o necessário.” — #30DiasJava Control Room
🎯 Objetivo do Day 7
Com o stack Docker endurecido, foi hora de conectar todo o ecossistema em tempo real. O Day 7 do #30DiasJava entregou uma camada de assistentes inteligentes que usa a mesma malha de eventos do Notification Service para conversar com usuários, bots e dashboards.
🛠️ Destaques da implementação
- Nova Orchestrator: serviço central que enriquece eventos, decide rotas e aplica circuit breakers antes de chamar qualquer LLM.
- Streams seguras: WebSockets e SSE protegidos por JWT, limites por tenant e deduplicação de mensagens.
- Bot Bridge: integrações com Telegram/Discord expostas via API keys, com rate limiting por canal e responses preparados para múltiplos idiomas.
- Governança de payload: payloads versionados com Avro, schema registry e trilhas de auditoria.
- Observabilidade: métricas (
assistant_latency_seconds,assistant_tokens_total,assistant_fallback_total) e painéis que mostram engajamento em tempo real.
💡 Lições do dia
- Assistentes só funcionam com uma trilha completa: evento → enriquecimento → resposta → métrica.
- Tratar fallbacks cedo evita “silêncios” quando a IA falha; rotas alternativas devolvem mensagens úteis.
- Bots herdaram de imediato o mesmo nível de segurança das APIs internas graças ao gateway unificado.
🔗 Recursos
- Artigo completo: https://enouveau.io/blog/2025/11/07/intelligent-assistants-real-time.html
- Projeto pessoal: Este é um projeto do desafio #30DiasJava, mantido independentemente para fins educacionais.
Next episode → Day 8/30 — Search Service with Vector Ops and Observability