Bom pessoal, agora que a gente conseguiu ver um pouco mais sobre comunicação assíncrona na prática, eu quero mostrar para vocês duas abordagens que normalmente você pode trabalhar com tecnologias diferentes para utilizar a comunicação assíncrona. Uma forma é utilizando mecanismos que trabalham com PubSub, ou Publish Subscriber subscriber é um padrão tá como que isso funciona você vai ter um sistema que vai produzir a mensagem tá e aí o que vai acontecer essa mensagem ela vai ficar guardada aqui em um tópico normalmente a gente chama isso de tópico é dependendo do sistema pode chamar isso de fila o nome que você quiser o ponto é que ele vai ter um local onde essas mensagens vão ser enviadas e aí você vai ter o que você vai ter sistemas pendurados nesse tópico aguardando as mensagens chegarem conforme as mensagens forem chegando esses sistemas vão lendo essas mensagens. Então, isso aqui é muito, mas muito importante você entender como que isso funciona. Então, esse é um padrão muito utilizado e você tem sistemas como o Apache Kafka, Apache Pulsar, você tem o AWS Kinesis, o Google PubSub, etc., que conseguem trabalhar dessa forma aqui para vocês. Beleza? aqui pra vocês beleza agora nós temos aqui também uma outra abordagem tá que a você consegue trabalhar de forma assíncrona mas ele não utiliza esse padrão pub sub tá que é no caso aqui por exemplo do revit mq que é um sistema muito interessante de mensageiria o RabbitMQ, o que ele faz? Ele faz com que você tenha um pouco mais de flexibilidade na hora de consumir os dados. Por quê? Porque você, na hora que você manda uma mensagem, você não manda uma mensagem diretamente para uma fila. Você manda uma mensagem diretamente para uma fila. Você manda uma mensagem para uma exchange. O que uma exchange faz? Essa exchange tem regras de distribuição dessas mensagens. Então, vamos imaginar o seguinte. Eu tenho a fila 1, a fila 2 ea fila 3 e o que eu tô fazendo eu atrelei essa minha fila a essa é que estende tá vendo então o que pode acontecer o publicador um manda uma mensagem para uma ex-chefe de acordo com a regra da, ela sabe que ela tem que mandar essa mesma mensagem que foi enviada para 1, para uma fila 1, para a fila 2 e para a fila 3. E aí eu tenho esses consumidores lendo as mensagens dessa fila. Um ponto importante aqui é que assim que esses caras leem essas mensagens, essas mensagens são apagadas da fila. Abordagens como um Apache Kafka, quando essa mensagem é lida de um tópico, essa mensagem ainda fica guardada nesse tópico e caso você queira ler novamente a mensagem desse tópico, você pode ler. E você escolhe por quanto tempo essa mensagem fica nesse tópico você pode ler tá e você escolhe por quanto tempo essa mensagem fica nesse tópico se você for trabalhar com o rei michael tá utilizando as filas tradicionais dele aqui você vai perceber que se esse cara essa mensagem uma vez essa mensagem é dropado ou seja removida da fila e se você precisar ler novamente, você não vai conseguir. Existe um outro tipo de fila no RabbitMQ que se assemelha a esse cara aqui, que é o tipo stream. O stream de dados mantém as mensagens guardadas na fila para você poder fazer a releitura dessas mensagens. Então isso aí é importante você saber. A principal diferença aqui é que você não utiliza o padrão PubSub, você vai ter um consumidor por fila e a Exchange vai fazer o encaminhamento. Poderia ser aqui, por exemplo, algo desse tipo. Vamos imaginar que esse consumidor 1, esse publicador 1, manda uma mensagem para a Exchange e essa mensagem é enviada para a fila 2 e para a fila 3. Vamos imaginar agora que eu tenho outro publicador aqui. E esse publicador manda a mensagem para cá. E a Exchange percebe que essa mensagem tem que ser roteada para onde? Para a fila 1. Então, o que vai acontecer aqui? Tudo que o publicador 2 está mandando vai ser lida, vai ser enviado para a fila 1, onde o consumidor 2 consegue ler. Tudo que o publicador 1 tá mandando para a exchange a exchange está mandando para a fila 2 e 3 e aí somente esses dois consumidores vão ler legal então pode ser que alguma coisa desse tipo aconteça ou ainda eu poderia ter sei lá um terceiro publicador tá que ele manda uma mensagem para a nossa Exchange. Deixa eu mudar a cor aqui. Essa Exchange tem uma regra e ela percebe que ela tem que mandar a mensagem tanto para a fila 1 quanto para a fila 3. Então, olha só que interessante. A Exchange tem as regras e depois essas regras são baseadas no algumas que a gente chama que são enviadas nas mensagens e aí de acordo com a regra da exchange ela direciona para qual fila essas mensagens vão ter então perceba que esses caras estão publicando as mensagens tá na mesma exchange mais baseado nas regras que essas mensagens são enviadas a exchange sabe para quais filas ela tem que encaminhar então aqui vai pra fila 2 e 3 aqui vai pra fila 1 e aqui vai pra fila 1 e 2 1 e 3 quer dizer pra você conseguir trabalhar bacana então isso é importantíssimo você entender mas isso aqui é um funcionamento específico do web tm que você vai perceber que de forma geral um dos pontos assim muito utilizados é a utilização aqui de pubs tá então basicamente é isso galera que eu queria passar nessa aula, nesse nosso vídeo, e a gente segue ali para falar um pouco agora de Event-Driven Architecture. Beleza? Vamos nessa, então.