JavaSpring BootRabbitMQMicrosserviços
Notification Service
Serviço assíncrono Producer/Consumer com Java, Spring e RabbitMQ, que desacopla o envio de notificações da lógica de negócio com resiliência e escalabilidade horizontal.
20 de novembro de 20241 min de leitura
Projeto em desenvolvimento
Este estudo de caso ainda está sendo finalizado. O conteúdo é preliminar e deve mudar conforme o projeto evoluir.
Status
em desenvolvimento
Papel
Backend Engineer
Stack
Java, Spring Boot, RabbitMQ, Docker
Problema
Aplicações crescem rápido quando cada serviço começa a enviar e-mails, SMS ou webhooks por conta própria. O resultado costuma ser duplicação de template, retries inconsistentes e pouca visibilidade de falhas.
Este serviço isola essa responsabilidade em uma fronteira clara.
Fluxo
Responsabilidades
| Responsabilidade | Implementação |
|---|---|
| Entrada assíncrona | Eventos em RabbitMQ (Producer/Consumer) |
| Templates | Resolução por tipo de notificação |
| Provedor | Adaptadores por canal/provedor |
| Confiabilidade | Retry, logs estruturados e idempotência |
public interface NotificationProvider {
ProviderResult send(NotificationMessage message);
}