Bom, pessoal, agora que a gente falou um pouco aí sobre, de forma assíncrona, protocolos e coisas desse tipo, vamos aqui falar sobre assincronismo, mas no contexto aqui de ferramentas, protocolos e tudo mais. Então, o que acontece? Quando a gente está falando em comunicação, protocolos e ferramentas, a gente começa a entrar numa seara bem complexa, porque nesses tipos de casos nós temos muitas ferramentas e formas de trabalhar. Mas, de forma geral, quando a gente está falando de trabalhar com assincronismo, normalmente a gente vai escutar dois termos, alguns termos muito claros. Um termo são filas e outros são filas e tópicos. Filas e tópicos. Normalmente esses aí são caras que normalmente a gente costuma escutar. Bom, primeiramente o que eu quero trazer aqui pra vocês. Quando a gente tá falando tanto em assincronismo, a gente pensa que, para que eu consiga receber uma mensagem e que a pessoa que tá interessada naquela mensagem não esteja no ar naquele momento, essa mensagem ela precisa ficar em algum lugar. Então, ela fica numa fila. Ou seja, existem ferramentas específicas para que elas fiquem armazenando essas mensagens e para que essas mensagens sejam consumidas em algum momento. E para isso, existem diversas ferramentas e formas de você conseguir trabalhar. Então, o que acontece? A gente tem alguns formatos para a gente conseguir trabalhar. Um formato muito claro é o formato PubSub, legal? O que que é o formato PubSub? Published Subscriber. Isso significa o quê? Eu tenho um produtor da mensagem, legal? Que vai enviar essa mensagem pra, em algum lugar, em algum, para alguma ferramenta, legal? E eu tenho o subscriber. O que é esse cara? É o cara que é interessado naquela mensagem. Agora, a grande sacada de quando a gente está falando de PubSub é que eu posso ter mais de um, tá? Eu posso ter diversos subscribers interessados naquela mesma mensagem. O que significa? Significa que vamos imaginar que toda vez que aconteceu uma compra, aí uma compra foi aprovada, a área de estoque tem que ser avisada, a área de nota fiscal tem que ser avisada, a área de envios tem que ser avisada. O que pode acontecer nesse momento, então? O produtor manda uma mensagem em um determinado tópico, ou seja, um local onde aquele tipo de contexto, daquele tipo de mensagem vai ficar armazenada. E aí as pessoas, os consumidores, as pessoas não, os consumidores, quem tem interesse, então vamos imaginar que eu tenho um microserviço de estoque, um microserviço de entrega, um microserviço de nota fiscal, eles ficam ao mesmo tempo escutando aquele tópico. Quando chega uma mensagem, cada um pega uma cópia dessa mensagem. Então, o que isso faz é com que interessados consigam ver essas mensagens e o mais interessante é que isso acaba sendo de 1 para muitos, né? Ou seja, isso aqui acaba sendo de 1 para N. Ou seja, eu posso ter N pessoas querendo ver esse tipo de mensagem, tá? Então, esse aí é um padrão muito conhecido e tem diversas ferramentas que trabalham com esse tipo de padrão, tá? Então, esse aí é um padrão muito conhecido e tem diversas ferramentas que trabalham com esse tipo de padrão, tá? Então, é bem interessante como esse tipo de coisa funciona. Caras que trabalham bastante nesse padrão, tá? Com PubSub, né? Apache Kafka tem tópicos, certo? Onde grupos de consumidores ficam ouvindo o tópico para pegar a informação. Legal? Caras muito comuns que fazem isso, o Redis também, né? Até o Postgres. Ele tem recursos aí de PubSub e etc. Apesar de eu não ver muita gente utilizando, não. Mas a gente tem diversas caras que utilizam normalmente esses tipos de padrão. Legal? Por outro lado, a gente tem outras ferramentas que utilizam outros protocolos que trabalham de formas ligeiramente diferentes. Por exemplo, eu posso trabalhar com um padrão aqui nesse caso de filas, legal? E essas filas, toda vez que eu mando uma mensagem, eu mando essa mensagem para uma exchange, que é um hub de roteamento de mensagens. Legal? Então, o que isso acontece no final das contas? Eu mando uma mensagem, essa mensagem vai para uma exchange e de acordo com as regras do dado que tem na mensagem e da exchange, essas mensagens são enviadas para filas diferentes. E o que são filas? São locais onde as mensagens elas são enviadas para filas diferentes. E o que que são filas? São locais onde as mensagens são armazenadas. Elas são ali super similares aos tópicos, tá? Agora, a grande diferença aqui, quando a gente tá falando nesse caso, é que eu tenho roteadores que ficam encaminhando essas mensagens de acordo com algumas regras, tá? Mensagens. Mensagem, mensagem, ele vai enviar essa mensagem, essa mensagem vai cair numa exchange, ela vai cair numa exchange, essa exchange vai pegar essa mensagem e encaminhar essa mensagem para onde? Para duas filas, por exemplo, aqui. E aqui eu posso ter um consumidor, um outro programa, que vai ler essa mensagem dessa fila. E quando a mensagem dessa fila é lida, essa mensagem é apagada aqui dessa fila. Legal? Então, esse é um formato que é bem interessante, né? E uma das ferramentas mais comuns que a gente acaba vendo no mercado para isso, tá? Que é muito comum, é o RabbitMQ, tá? Tanto Apache Kafka, RabbitMQ, Amazon, SQS, SNS, etc., são todas ferramentas que nos possibilitam, de uma forma ou de outra, trabalhar de forma assíncrona. Eu acho que é esse que é o grande ponto. Qual você vai utilizar vai depender do contexto, vai depender do dinheiro que a empresa tem, do contexto que a empresa está, dos profissionais que trabalham na empresa, porque eles têm que dominar essas ferramentas também, então tem muita coisa por trás na hora de você escolher e aí durante a semana a gente vai debater sobre esses tipos de coisa, tá? Mas é importante você conseguir entender todo esse tipo de coisa, legal? Então a gente tem diversas ferramentas, tá? Então, a gente tem Apache Kafka, a gente tem RabbitMQ, ActiveMQ, Amazon SQS, SNS, Google PubSub. Assim, tem muita opção no mercado para a gente conseguir trabalhar. O importante é você saber que esses caras acabam existindo. Beleza? Agora, próximo vídeo, a gente vai falar de outros dois caras que são