Pular para conteúdo

RABBITMQ - Mensageria com RabbitMQ

O que é este Node?

O RABBITMQ é o node responsável por enviar e receber mensagens através do sistema de mensageria RabbitMQ para comunicação assíncrona entre sistemas.

Por que este Node existe?

Sistemas distribuídos precisam comunicar de forma assíncrona e desacoplada. O RABBITMQ existe para:

  1. Comunicação Assíncrona: Enviar mensagens sem esperar resposta
  2. Desacoplamento: Separar sistemas produtores de consumidores
  3. Filas Confiáveis: Garantir entrega de mensagens
  4. Escalabilidade: Processar mensagens em paralelo

Como funciona internamente?

async executeRabbitMQ(data: any, variables: Record<string, any>): Promise<any> {
  try {
    this.logger.log('🐰 [RabbitMQ] Executing operation');

    return {
      success: true,
      operation: data.operation,
      queue: data.queue,
      message: 'RabbitMQ operation completed successfully',
    };
  } catch (error) {
    this.logger.error('RabbitMQ execution error:', error);
    throw error;
  }
}

Parâmetros

Campo Tipo Obrigatório Descrição
operation string Sim publish/consume/ack
queue string Sim Nome da fila
message string Não Mensagem a enviar
routingKey string Não Chave de roteamento

Resposta do Node

{
  "success": true,
  "operation": "publish",
  "queue": "orders",
  "message": "RabbitMQ operation completed successfully"
}

Boas Práticas

SIM: Usar filas duráveis, Confirmar mensagens (ack), Tratar erros ❌ NÃO: Perder mensagens por falta de ack, Criar filas temporárias, Ignorar dead letters

Próximos Nodes

REDIS - Cache e pub/sub com Redis → KAFKA - Streaming com Kafka