bom pessoal e agora vamos também mais uma leva sobre design pattern legal e o design pattern que eu quero seguir agora aqui com vocês é o design pattern chamado configuration e por que esse cara chama configuration porque ele vai ajudar a mudar em tempo de execução as configurações do seu software tá como assim mudar em tempo real as configurações do seu software olha só que interessante galera vou imaginar o seguinte que você tem tá a uma aplicação e essa sua aplicação ela teve algumas mudanças está em relação aos seus parâmetros está então vamos imaginar o seguinte como eu mudaria uma senha do banco de dados no seu programa é imaginar sendo banco de dados mudou e você tem que fazer essa alteração no seu programa a você vai utilizar uma pele de e-mail para enviar mensagens de confirmação e a senha ou a API mudou naquele momento. Como que você vai fazer esse tipo de coisa? Você vai refazer o deploy da sua aplicação? Você vai reiniciar totalmente a sua aplicação? Como que você age nesse momento? Bom, a primeira coisa que você tem que ter em mente nesses casos aqui é o seguinte tudo que foram forem dados tá de credenciais não necessariamente dados sensíveis mas dados de credenciais qual que é o rl daquela api quanto tempo eu tenho que ficar fazendo retries, todos esses dados que podem ser variáveis, o que você vai fazer? Você pelo menos vai deixar esses dados ou num arquivo, um .env ou como variáveis de ambiente, eu gosto muito de trabalhar com variáveis de ambiente e daí o que acontece nesse momento alguns desses dados mudaram então o que muita gente faz é poxa eu vou renascer eu vou mudar os dados lá naquele arquivo na variável de ambiente e depois eu vou simplesmente rebotar minha aplicação porém na hora que você vai rebotar sua aplicação sua aplicação fica fora do ar entendeu ou se você vai refazer o deploy por conta desses tipos de coisas sua aplicação vai poder também eventualmente ficar fora do ar ou você vai gastar um tempo desnecessário com isso então o que acontece aqui você vai ter simplesmente né com o configuration você vai ter simplesmente o seguinte você vai ter simplesmente, com o Configuration, você vai ter simplesmente o seguinte. Você vai ter a sua aplicação barra um endpoint que você ache que faça sentido. Por exemplo, barra Configuration. E aí, o que você vai fazer nesse momento? Você, nesse endpoint, você vai prepará-lo para que você possa receber o que as configurações né então você vai ter esses sete né esse serviço de configuration ele vai mandar uma requisição para você no barra configuration e na hora que você receber essa requisição, o que você vai fazer? Você vai substituir, você vai dar um boot somente nessas configurações. Então você não precisa rebootar sua aplicação, você não precisa refazer o deploy. Essa requisição aqui, ela pode ser feita independente de protocolo. Normalmente a galera usa usa http mas por exemplo você pode estar consumindo uma fila e toda vez que chegar uma mensagem nessa fila o que você faz o opa você recarrega as suas variáveis está então essa que é a idéia do configuration é uma idéia assim na minha opinião genial porque você não gasta tempo simplesmente você recebe uma requisição e você reajusta todo o seu sistema baseado nessa requisição maravilha então essa é a idéia geral aqui do configuration vamos nessa