Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

finance-notifications

Java Spring Boot RabbitMQ Docker

Serviço de notificações integrado ao finance-api via mensageria assíncrona com RabbitMQ.

Sobre o projeto

O finance-notifications consome eventos de transações publicados pelo finance-api numa fila RabbitMQ e processa notificações em tempo real. A comunicação é totalmente assíncrona — o finance-api responde imediatamente ao cliente e o processamento da notificação acontece em paralelo, sem bloquear a requisição original.

Tecnologias

  • Java 21
  • Spring Boot 3.5
  • Spring AMQP (RabbitMQ)
  • Spring Web
  • Lombok
  • Docker / Docker Compose

Arquitetura

finance-api
    ↓ publica TransactionEvent
transactions.exchange (RabbitMQ)
    ↓ routing-key: transactions.created
transactions.queue
    ↓ consome
TransactionConsumer
    ↓
NotificationService → processa e loga a notificação

Configuração RabbitMQ

Propriedade Valor padrão
Exchange transactions.exchange
Queue transactions.queue
Routing Key transactions.created

Pré-requisitos

Como rodar

1. Configure as variáveis de ambiente

Crie src/main/resources/application.properties baseado no application-example.properties:

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

rabbitmq.exchange=transactions.exchange
rabbitmq.queue=transactions.queue
rabbitmq.routing-key=transactions.created

2. Suba o RabbitMQ via Docker

docker compose up -d

Painel de gerenciamento disponível em http://localhost:15672 (guest/guest).

3. Suba a aplicação

./mvnw spring-boot:run

A aplicação sobe na porta 8082 e começa a ouvir a fila automaticamente.

Como testar

Com o finance-api e o finance-notifications rodando simultaneamente, crie uma transação no finance-api (POST /transactions). O finance-notifications vai consumir o evento e exibir a notificação no terminal:

=====================================
  NOTIFICAÇÃO DE TRANSAÇÃO
=====================================
  💰 Tipo     : INCOME
  📝 Descrição : Salário
  💲 Valor     : R$ 3500.00
  📅 Data      : 2026-06-26
  🏷️  Categoria : Food
  👤 Usuário   : gui@email.com
  🕐 Processado: 2026-06-26T20:46:40
=====================================

Estrutura do projeto

src/main/java/com/guilherme/finance_notifications/
├── config/    # RabbitMQConfig (exchange, queue, binding, converter)
├── consumer/  # TransactionConsumer (@RabbitListener)
├── dto/       # TransactionEvent
└── service/   # NotificationService

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages