Bom pessoal, agora a gente vai falar do famoso Circuit Breaker. Então, antes da gente falar especificamente do Circuit Breaker em relação a software, eu quero falar com você sobre o que é um Breaker. Provavelmente, se você está aí na sua casa, você deve ter um disjuntor. E o disjuntor é o famoso breaker. O que esse cara faz no final das contas? Quando você recebe uma carga muito pesada de energia, pra que ele não frite aí os seus eletrodomésticos ou tenha algum problema mais grave, quando ele recebe isso mais forte, né? Esse disjuntor, ele cai e daí não tem como mais essa corrente elétrica passar para o restante da sua casa. Então o Circuit Breaker no desenvolvimento, no mundo da tecnologia, ele funciona da mesma forma. Vamos imaginar que você tem o micro serviço 1, você tem o micro serviço 2 e daí de repente o que você vai fazer o micro serviço um ano uma requisição manda outra requisição manda outra requisição manda outra requisição e você vai perceber que o micro serviço 2 vai começar a ficar lento ele vai começar a travar e tem um problema grave com isso tá o problema grave com nossas coisas aqui começam a acontecer é que o microserviço 2 vai ficar lento e ele vai demorar para retornar os dados para o microserviço 1. E se o microserviço 1 demora para pegar esses dados, adivinha quem está lento? O microserviço 1 também vai ficando lento. E isso vai gerando um efeito dominó, um efeito em cascata, em todo o seu ecossistema de microserviços. Entendeu? Galera, pensa assim comigo. Pior que um microserviço lento, quer dizer, pior que um microserviço fora do ar, é um microserviço lento. Porque se o microserviço fora do ar, estiver ali fora do ar, quando você manda uma requisição, você já recebe ali connection refused, você já recebe um erro 500, você já recebe qualquer coisa. E daí você já toca a vida. Se eu mando uma requisição e o microserviço 2 está fora do ar, eu mandei e já vi que está fora do ar e sigo a minha vida, faço o meu plano de contingência. Agora, se o microserviço 2 não estiver fora do ar, eu vou mandar minha requisição e vou ficar aguardando e eu vou ficar lento. Entende qual é a situação? Então, o que acontece? Conforme você vai mandando mais requisições e eu já estou lento, e você vai mandando mais requisições, vai chegar uma hora que eu fico fora. Mas até eu sair do ar, o micro serviço 1 continua mandando requisições e o micro serviço 1 vai ficando cada vez mais lento. Entendeu? Como que a gente evita esse tipo de problema com circuit breaker tá vamos imaginar aqui né no nosso circuit breaker a que o micro serviço um manda uma requisição um imagina que você tem esse canal de comunicação quando o micro serviço 2 começa a ficar lento o que ele vai fazer ele vai quebrar esse canal de comunicação então o que vai acontecer é que o micro serviço 1 quando ele mandar uma requisição para o micro serviço 2 ele já vai receber ali um connection refusos ele já vai receber ali um erro 500 não interessa qual é o tipo de erro o grande ponto é que o micro serviço um ver que o micro serviço 2 está indisponível e ele segue com a vida dele legal agora o grande ponto aqui é que a gente pode ter alguns estados para esses micro serviços tá a gente tem um estado fechado que é dessa forma como eu estou mostrando aqui pra você o que o estado fechado faz ele mantém a comunicação entre os dois micro serviços e está tudo funcionando legal aí a gente tem um estado aberto que é esse estado aqui o que significa quando o micro serviço ele vai mandar uma mensagem para o dois ele não consegue estabelecer a comunicação ou micro serviço dois fala não vou receber mais nenhuma requisição e daí o micro serviço toca a vida isso é quando o brayer acontece ea gente também tem um outro estado que a gente chama de meio aberto o que esse cara faz vamos imaginar que o microserviço 2 ficou fora do ar na e abriu o circuito como que eu sei que ele já está pronto novamente para receber a minha requisição então o microserviço um faz o seguinte, ele manda uma requisição, vê se responde. Não respondeu? Beleza. Passa um tempinho, manda uma requisição e o microserviço 2 fala, ó, tô ok. Aí o microserviço 1 manda mais uma, tá ok. Manda mais uma, tá ok. E daí ele fala, opa, o cara tá no ar. Daí ele continua mandando todas as requisições de uma vez. Entendeu? Então, muitas vezes, o que o microserviço 1 tem que esperar é o microserviço 2 se curar. Como assim curar? Normalmente a gente usa um nome para isso que é chamado de self-healing, autocura. Às vezes ele recebeu tanta requisição que ele ficou fora. Então, se eu parar de mandar requisição, ele termina de processar o que ele está processando E daí ele fica normal novamente, ou seja, ele se curou E depois disso o microserviço volta a mandar mais requisição Então essa que é a ideia do Circuit Breaker Agora, uma observação aqui para você Existem formas de você trabalhar com o circuit breaker tá uma forma é você trabalhar no circuit breaker no micro serviço tá que está recebendo a requisição você pode colocar um proxy na frente você pode colocar algumas regras que na hora que você está mandando a requisição o micro serviço 2 ele para de atender essas requisições essa é uma opção a outra opção é você fazer isso no micro serviço ou seja você manda um monte de requisição é aquele cara não está respondendo você para de mandar aquela requisição espera e manda de novo pra ver legal somente para você saber que tem essas opções a forma mais comum de acontecer é que o micro serviço o circuit breaker seja implementado pelo desenvolvedor algo que eu não recomendo é melhor você ter um proxy que vai tomar conta desses tipos de coisa. A gente vai falar disso um pouco mais para frente quando a gente falar de Service Mesh. Beleza? Mas o importante aqui é você entender a ideia. Depois a gente vai seguir para pontos mais específicos. Beleza? Um grande abraço para você. Tudo de bom e até o nosso próximo vídeo.