Email Confirmation Platform é um sistema baseado em microserviços responsável por gerenciar o fluxo de confirmação de e-mail durante o cadastro de usuários.
O projeto demonstra como dividir responsabilidades entre serviços independentes para construir um fluxo de verificação seguro e escalável.
Fluxos de confirmação de e-mail são comuns em aplicações modernas para:
- validar identidade do usuário
- reduzir contas falsas
- aumentar segurança no processo de cadastro
Este projeto demonstra como implementar esse fluxo utilizando uma arquitetura de microserviços desacoplada.
✔ Registro de usuário ✔ Geração de token de confirmação ✔ Envio de e-mail com link de verificação ✔ Validação de token ✔ Ativação de conta ✔ Comunicação entre microserviços
O sistema é dividido em serviços especializados:
flowchart LR
Client --> User-Service
User-Service --> Database
User-Service --> RabbitMQ
RabbitMQ --> Email-Service
Email-Service --> Database
Email-Service --> Mail-Provider
| Serviço | Responsabilidade |
|---|---|
| User Service | gerenciamento de usuários |
| Email Service | envio de e-mails |
Para maior escalabilidade, o envio de e-mails pode utilizar mensageria:
flowchart LR
User-Service --> RabbitMQ
RabbitMQ --> Email-Service
Benefícios:
- desacoplamento
- maior resiliência
- processamento paralelo
Gerencia usuários da aplicação.
Responsabilidades:
- criação de conta
- persistência de usuários
- ativação após confirmação
Responsável pelo envio de e-mails.
Funções:
- geração do link de confirmação
- envio de mensagens
- integração com SMTP ou serviços externos
- Java
- Spring Boot
- REST APIs
- Microservices architecture
- Service-to-service communication
- CloudAMQP
- Maven
Cada microserviço possui um papel específico:
- gerenciamento de usuários
- verificação de email
- envio de mensagens
Isso reduz acoplamento e melhora manutenção.
Cada serviço pode escalar de forma independente.
Exemplo:
- múltiplas instâncias de Email Service
- alta disponibilidade do Confirmation Service
Este projeto demonstra experiência com:
- arquitetura de microserviços
- comunicação entre serviços
- fluxos de autenticação
- verificação de identidade
- APIs backend escaláveis