DEV Community

Cover image for Quatro palavras da mensageria
Natanael Alves
Natanael Alves

Posted on

Quatro palavras da mensageria

As quatro palavras fundamentais quando falamos de mensageria são: Producer, Exchange, Queue e Consumer.

Para facilitar a compreensão, vamos usar um exemplo real de e-commerce, que envolve vários serviços como recebimento de pedidos, processamento de pagamentos, atualização de estoque, notificação ao cliente e logística de entregas.

Producer:

É quem inicia a comunicação entre os serviços. No nosso exemplo, tudo começa com o pedido do cliente, então nosso producer é a API que recebe esses pedidos. Ao receber um pedido, o producer envia uma mensagem para nossa Exchange com todos os dados necessários para os outros serviços. Conforme recebe mais pedidos, a API continua adicionando mensagens na Exchange.

Exchange:

É como uma fila particular de mensagens do producer, responsável por direcionar as mensagens para o destino correto. O producer adiciona mensagens com os dados de cada pedido nessa fila. A Exchange, seguindo o esquema FIFO (First In, First Out), encaminha essas mensagens para determinadas Queues — outras filas com propósito diferente. A Exchange pode ter diferentes tipos, o que altera sua forma de distribuir as mensagens.

Queue:

Assim como a Exchange, a Queue recebe mensagens — especificamente aquelas que a Exchange direcionou, contendo os dados dos pedidos. Seu propósito é armazenar essas mensagens para que os Consumers conectados possam obtê-las.

Consumer:

O consumer obtém as mensagens da Queue seguindo o FIFO, acessa os dados do pedido e os processa. Em nosso e-commerce, exemplos de consumers são: o serviço que processa pagamentos conforme o valor do pedido, o que atualiza o estoque baseado na quantidade, e o que notifica o cliente. Esses serviços processam os dados sem prender o usuário em telas de carregamento, permitindo que ele continue fazendo outros pedidos.

Um detalhe importante: um Consumer também pode atuar como Producer e vice-versa. Por exemplo, o serviço de pagamento pode enviar mensagens para outros sistemas informando se o pagamento foi bem-sucedido. Os outros serviços podem então cancelar ou desfazer ações anteriores, e a API de pedidos pode retornar uma mensagem sobre a falha no pagamento.

Exemplo do esquema de mensagens:

Exemplo do esquema de mensagens

Image of Datadog

Measure and Advance Your DevSecOps Maturity

In this white paper, we lay out a DevSecOps maturity model based on our experience helping thousands of organizations advance their DevSecOps practices. Learn the key competencies and practices across four distinct levels of maturity.

Get The White Paper

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay