HenriqueMarino.github.io
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

ResponsabilidadeImplementação
Entrada assíncronaEventos em RabbitMQ (Producer/Consumer)
TemplatesResolução por tipo de notificação
ProvedorAdaptadores por canal/provedor
ConfiabilidadeRetry, logs estruturados e idempotência
public interface NotificationProvider {
    ProviderResult send(NotificationMessage message);
}