Arquitetura de Notificações Event-Driven para Fintechs (Guia Técnico)
Arquitetura de Notificações Orientada a Eventos para Fintechs Brasileiras
No ecossistema financeiro brasileiro, latência é dinheiro. O usuário faz um Pix e espera a notificação ("Dinheiro enviado") em milissegundos. Se demora 10 segundos, ele acha que deu erro e liga para o suporte.
Para fintechs, o sistema de notificação não é "feature acessória", é core banking. E a única forma de escalar isso de forma resiliente é com uma Arquitetura Orientada a Eventos (Event-Driven Architecture - EDA).
O Problema do Monólito Síncrono vs. Event-Driven
Arquitetura Síncrona vs. Event-Driven
❌ Monolith (Coupled)
✅ Event-Driven (Decoupled)
Por que Event-Driven?
O Risco do modelo síncrono: Se o provedor de SMS cair ou demorar (timeout), a transação Pix pode falhar ou ficar "pendurada" na visão do sistema, gerando inconsistência. O acoplamento é fatal.
A Solução: Events First (Fire and Forget)
No modelo event-driven, o serviço de Pix tem uma única responsabilidade: processar o Pix e emitir um evento: transaction.completed.
Arquitetura em Ação: Pix → Kafka → Notificação
Fluxo Event-Driven: Pix → Notificação
Pix Service
Kafka Topic
Notifica Consumer
Notifica Gateway
User
(WhatsApp/Push)
Desacoplamento
Pix não espera SMS — retorna sucesso em <100ms
Retry Automático
Se notificação falhar, retry sem reprocessar Pix
Observabilidade
Logs detalhados de cada etapa do fluxo
Arquitetura Resiliente: O Pix não falha porque o SMS falhou. Event-driven = cada serviço tem seu SLA independente.
Fluxo desacoplado:
- Serviço de Pix processa transação e publica evento
- Kafka distribui para consumidores (incluindo serviço de notificações)
- Worker consome evento e formata mensagem
- Gateway Notifica envia via canal preferido do usuário
Os Componentes
- Event Bus (Kafka / RabbitMQ / SQS): A espinha dorsal. Recebe o evento
transaction.completedcom o payload (User ID, Valor, Data). - Notification Service (Consumer): Escuta este tópico. Ele é responsável por:
- Orquestração: O usuário prefere Push, WhatsApp ou SMS?
- Templating: Injeta os dados no texto ("Você recebeu R$ 50,00").
- Roteamento: Envia para o Gateway (FCM, APNS, Twilio, Notifica).
- Fallback Worker: Se o Push falhar (ex: token inválido), publica um novo evento
push.failedque aciona o envio de um SMS ou WhatsApp como contingência.
Desafios Brasileiros: Pix e Fraude
No Brasil, temos dois cenários críticos:
1. Instantaneidade do Pix
O SLA de percepção do usuário é < 3 segundos.
- Dica: Priorize a fila de eventos de Pix (
high-priority-queue) sobre eventos de Marketing (low-priority). Não deixe uma campanha de Black Friday atrasar notificações de saldo.
Sistema de Prioridades de Fila
Priorização de Filas: Pix vs. Marketing
High Priority Queue
Pix, Fraude, 2FA, Alertas de Segurança
Fast processing →
Normal Priority Queue
Transações, Boletos, Confirmações de Pedido
Normal processing →
Low Priority Queue
Marketing, Newsletter, Campanhas Promocionais
Slow processing →
🎯 Por Que Priorizar?
Cenário sem Priorização:
- • Marketing batch (10k SMS) bloqueia fila
- • 2FA crítico espera 30 segundos
- • Usuário reclama: "código não chega"
- • Experiência degradada ❌
Com Priorização:
- • 2FA sempre processa primeiro
- • Marketing processa em background
- • Cada tipo tem SLA dedicado
- • Melhor experiência global ✅
Implementação: Use Kafka partitions ou Redis sorted sets com priority scores. Sempre separe transacional de marketing.
2. Notificações de Fraude
Quando o motor de risco bloqueia um cartão, a notificação deve ser imediata e multicanal (Push + SMS) para o usuário confirmar a compra.
- Idempotência: Garanta que seu consumer seja idempotente. Receber 2 notificações de "Compra Aprovada" é irritante; receber 2 de "Débito Realizado" gera pânico. Use
event_idcomo chave de deduplicação (Redis é ótimo para isso).
Síncrono vs. Assíncrono: A Diferença Crítica
Veja no componente
Arquitetura Síncrona vs. Event-Driven
❌ Monolith (Coupled)
✅ Event-Driven (Decoupled)
Por que Event-Driven?
Modelo Síncrono (❌):
- App fica bloqueado esperando resposta
- Se SMS demorar 5s, transação demora 5s+
- Acoplamento perigoso
Modelo Assíncrono (✅):
- App recebe confirmação imediata (202 Accepted)
- Processamento continua em background
- Webhooks notificam status quando disponível
Exemplo de Payload (JSON)
{
"event_id": "evt_987654321",
"type": "transaction.pix.received",
"timestamp": "2026-02-04T14:30:00Z",
"data": {
"amount": 150.00,
"currency": "BRL",
"sender": "João Silva",
"user_id": "usr_123"
},
"metadata": {
"priority": "high",
"fallback_channel": "sms"
}
}
Conclusão
Desacoplar a lógica de notificação da lógica de negócio é vital para a saúde da sua fintech. Use filas, garanta idempotência e tenha estratégias de fallback claras.
Sua arquitetura aguenta a Black Friday? A API da Notifica é nativamente assíncrona e desenhada para alto volume, com webhooks de status em tempo real para alimentar seu Data Lake. Integre com nossa documentação técnica.
Posts Relacionados
Gestão de Consentimento LGPD: Fluxos e Preference Centers que Funcionam
# Gestão de Consentimento de Notificações no Brasil: Fluxos LGPD-Friendly...
Melhores BSPs WhatsApp Brasil 2026: Comparativo Completo (Twilio, Sinch, Notifica)
# Melhores BSPs de WhatsApp no Brasil (2026): Comparativo de Capacidades e Trade-offs...
LGPD e Notificações: Guia de Compliance para SMS, WhatsApp e Email
# Compliance de Notificações no Brasil: Guia Básico de LGPD e Regras da Anatel...
Gostou deste guia?
Receba novos posts técnicos diretamente no seu email
Enviado via Notifica 🚀