Skip to content

feat: Sessao 14 - Arquitetura de mensageria assincrona com RabbitMQ e DLQ - #32

Open
ArtRiv wants to merge 4 commits into
mainfrom
feat/session-14-rabbitmq-messaging
Open

ArtRiv wants to merge 4 commits into
mainfrom
feat/session-14-rabbitmq-messaging

Conversation

@ArtRiv

@ArtRiv ArtRiv commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Contexto e Objetivos

Implementacao da arquitetura de mensageria assincrona orientada a eventos (event-driven) com RabbitMQ no commerce-core:

  1. Infraestrutura AMQP & Topologia Resiliente (MessagingModule):
    • Conexao e gerenciamento de canais com amqplib via RABBITMQ_URL (com fallback seguro em dev).
    • Topologia com Exchange principal (commerce.events), Dead Letter Exchange (commerce.events.dlx), Fila principal (orders.paid) e Dead Letter Queue (orders.paid.dlq).
    • Inicializacao nao-bloqueante e encerramento gracioso (onModuleDestroy).
  2. Producer Nao-Bloqueante (OrderEventsProducer):
    • Disparo do evento order.paid ao confirmar o pagamento (OrdersService.markPaid).
    • Resposta HTTP imediata ao cliente/webhook sem retencao sincrona de chamadas a terceiros (Resend e Bling).
    • Fallback gracioso sincrono caso o broker esteja temporariamente indisponivel.
  3. Worker / Consumer Resiliente (OrderPaidConsumer):
    • Processamento assincrono do pedido: envio de e-mail de confirmacao (OrderNotificationsService.orderPaid) e preparacao fiscal (BlingErpService.exportOrder).
    • Confirmacao manual (channel.ack).
    • Politica de ate 3 retries com controle via header x-retries.
    • Roteamento automatico para a DLQ via channel.nack(msg, false, false) em falhas permanentes ou excedentes.
    • Amarracao do contexto RequestContextService com injecao de order_id e correlation_id nos logs estruturados Pino.

Qualidade e Testes

  • 72 suites de testes Jest (840 testes) 100% aprovados.
  • Testes unitarios para RabbitMQService, OrderEventsProducer, OrderPaidConsumer e teste de integracao AMQP E2E.
  • Zero erros de lint (pnpm lint:check) e checagem de tipos estrita (pnpm typecheck).
  • Build de producao (pnpm build) 100% verde.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant