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 Timescale

Timescale – the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

Top comments (0)

Cloudinary image

Zoom pan, gen fill, restore, overlay, upscale, crop, resize...

Chain advanced transformations through a set of image and video APIs while optimizing assets by 90%.

Explore

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay