Bom pessoal, agora que a gente viu um pouco sobre o 12 Factor App, eu deixei algumas dicas aqui para você, que provavelmente você vai encontrar lá no 12 Factor App. Eu vou até escrever aqui do lado para você não esquecer. Que é o 12 Factor App. Factor App. Agora eu quero falar um pouco sobre a arquitetura baseada em microserviços, partindo desse ponto aqui. Legal? Então, vamos ver qual que é o nosso desenho dessa vez. E depois a gente vai falar um pouco sobre algumas complexidades. Vamos lá. Então, arquitetura baseada em micro serviços você vai perceber que essa arquitetura ela muda completamente em relação a essa aqui de cima tá e o porquê que isso acontece porque agora cada componente que estava no monolito ele pode virar um serviço, ou seja, ele pode virar uma aplicação. E isso aí acaba fazendo e gerando muitos efeitos colaterais na sua aplicação. Quais são esses efeitos? Bom, a primeira coisa que você vai perceber e que você tem que ter em mente a todo momento é que todas as vezes que você trabalhar com uma arquitetura baseada em micro serviços os micro serviços obviamente eles vão se comunicar tá então perceba esse se comunica com esse, com esse, com esse, com esse, e assim vai. Esses caras podem se comunicar à vontade normalmente. Obviamente você pode estabelecer algumas regras de rede, coisas desse tipo, quando não faz sentido um microserviço se comunicar com o outro. Mas a pegadinha de tudo aqui é a seguinte, é isso aqui que eu estou colocando. Por que eu coloquei X aqui? X milissegundos. O que significa? Que cada vez que a gente faz uma chamada para um microserviço, e esse microserviço tem que chamar outro, que chama outro, que chama outro, cada vez que essa cham outro, que chama outro, que chama outro, que chama outro. Cada vez que essa chamada vai acontecer via rede, você tem uma latência aqui. Essa latência que você tem aqui, você não tem aqui no caso de um monolito clássico. Então, o que vai acontecer aqui nesse caso? Então o que vai acontecer aqui nesse caso? Vamos imaginar que para cada chamada ele demore, sei lá, 20 milissegundos. Então aqui ele vai demorar 20, depois mais 20, 40, daí mais 40, 60, 80, até retornar mais uma chamada aqui, 100 milissegundos. Então o que significa aqui no meio dessa história? chamada aqui 100 milissegundos então o que significa aqui no meio dessa história que você pode demorar aqui até 100 mil segundos para responder o usuário final tá sendo que aqui você não teria esse problema e provavelmente dependendo da situação você responderia muito mais rapidamente o que eu estou querendo dizer galera eu não estou querendo dizer que a arquitetura baseada em micro serviços ela é mais lenta que a uma arquitetura monolítica tá mas ela pode ser tá principalmente dependendo da forma de como você organiza e separa os seus micro serviços tá olha só galera né às vezes você quer usar micro serviços porque simplesmente você quer, você não tem até uma justificativa plausível e o máximo que você vai conseguir é elevar os custos e aumentar a latência, ou seja, você vai entregar mais devagar os dados do que você entregaria com monolito. Obviamente, como eu falei para vocês, quando você tem muitos microserviços, muitos contextos, muitos desenvolvedores, você trabalha assim, dessa forma. Mas, obviamente, que você tem que ter estratégias aqui para evitar essa chamada dominó, de uma forma ou de outra. E o mais importante, você também tem que ter estratégias para você entender quando que você precisa disponibilizar o dado em tempo real porque você vai perceber que quanto maior é o sistema raramente você vai ter que entregar o dado na hora ou entregar o dado super quente ali legal um outro ponto importante aqui que eu quero que você leve em consideração ou entregar o dado super quente ali. Legal? Um outro ponto importante aqui, que eu quero que você leve em consideração, é que, normalmente, ou a via de regra, cada microserviço tem o seu próprio banco de dados. Então, aqui nesse caso, a gente pode explorar outras opções. Por exemplo, aqui eu estou utilizando um Key Value Store store aqui eu estou utilizando um banco de dados relacional e assim vai legal então nesse ponto você pode sim aproveitar e utilizar o melhor banco de dados para a melhor situação em relação aos micro serviços está então pense bem a mas novamente não adianta você também pegar um banco de dados mais hypado do momento que ninguém conhece que só você conhece que ninguém da equipe nunca ouviu falar e colocar somente porque é cool tá então entenda bem de banco de dados para você fazer a sua escolha por outro lado você tem um pouco mais de liberdade né você tem liberdade de tecnologia você tem liberdade de banco de dados muitas vezes você vai poder utilizar mais do que um banco de dados na mesma aplicação e assim vai agora um ponto importante aqui também que eu estou colocando e se você perceber eu coloquei uma seta direta aqui tá o que eu estou querendo dizer aqui é que um micro serviço chama diretamente outro micro serviço de forma síncrona tá não de forma assíncrona a gente vai evoluir nessa ideia e mostrar essa diferença aqui porque muda completamente o jogo quando você começa a trabalhar de forma assíncrona ao invés de trabalhar de forma síncrona. Então essa é a ideia de uma arquitetura baseada em microserviços. Você vai ver que nos próximos vídeos a gente vai evoluir caras para pensar em alguns efeitos colaterais que esse tipo de arquitetura tem tá e que faz parte do jogo quando você vai trabalhar com ela maravilha então vamos nessa galera