Talvez eu tivesse resolvido isso de maneira diferente. Para manter a consistência de dados e manter certa independência dos MS, resolvo isso com MS conectando Postgres , cada um com seu schema , consigo manter relacionamento forekey . Uso Patroni para criar instâncias, assim crio , horizontalmente HA e performance.
Uma consideração interessante é que a duplicação dos dados aumenta o uso de espaço em disco (recurso barato), porém reduz o custo de processamento e memória (escasso), uma vez que cada microservice pode manter uma cópia dos dados em um formato já preparado para a saída que precisa gerar, dispensando a utilização de consultas mais complexas, que seriam necessárias em um modelo de banco de dados relacional centralizado.
Excelente explicação e abordagem, realmente é um trade-off nada é uma bala de prata, mas saber os prós e contras de cada abordagem e trazer a que melhor se encaixa em sua realidade, evitando assim o máximo possível de dor de cabeça, essa sim seria a opção mais viável, sem receita de bolo!
No caso dos relatórios, se for um cenário grande, considero levar os dados para um data lake, assim um analista de dados vai ter ferramentas melhorias para a geracao de relatorios e dashboards. Eu ja utilizei debezium com kafka, fazendo cdc dos databases e levando para uma camada bronze do data lake
Perfeito, perfeito. Muito obrigado. Mas gostaria de um video seu nesse formato de como voce iria montar a estrutura para um microservico de autenticação que lida com login, logout, refresh token, validacao de token e etc, e como ficaria os outros microservicos. Pq tipo, pra mim todo ms tem que ter verificação de autenticidade, token e etc para realizar suas acoes, entao todo ms receberia um token nas requisicoes, mas se depois de receber o token todos ms usarem o microservico de autenticacao entao ta criando um enorme acoplamento onde todos dependem do mesmo ms. E se cada ms fizer sua propria certificação de token entao todos estariam acessando o mesmo db, ou pelo menos fazendo tarefa que nao condizem com sua responsabilidade. Fico perdido nessa estrutura de permissoes e validacao de token. Como voce faria? Pf faz um video
Trabalho num E-commerce no Canada e eh a primeira vez que eu trabalho com E-Commerce e eles utilizam JUSTAMENTE o exemplo do Cadastro de Produto fortemente Acoplado ao estoque e adivinhem, por o estoque ser GIGANTESCO o banco de dados sofre e ta levando porrada.
Oi Wesley, e no caso desse microserviço for duplicado em escala... o banco também duplica ou os clusters de aplicação começa a compartilhar o mesmo banco, ou seja o microserviço a em cluster A1 e A2 começa a compartilhar o mesmo banco?
Boa noite. Fiquei com uma dúvida. Como funcionaria as restrições no bancos? ex: Se der um delete em um usuário numa tabela de vendas, no banco normal com restrições provavelmente não permitiria pela as restrições. Com funciona isso para microservicos e BD separados? E como fica essas questões de regras de adm do BD?
Mas precisa de fila necessáriamente? não daria pra se comunicar utilizandoo gRPC por exemplo, obviamente estou falando de processos que não vão ocorrer a todo momento, caso ao contrário sim se deve-se utilizar um message broker
Neste contexto, rpc and http requests representam o mesmo problema de coupling entre 2 ou mais aplicacoes. Se voce está procurando por loose coupling, a melhor solução que temos hoje são event streams (como apache Kafka), seguida de message queues (como rabbitmq, ibmmq, AWS SQS, etc)
Explicação: Vamos criar microservicos com banco de dados separados e depois nos juntamos todos os dados num banco unico e utilizamos ele kkkkkkkk, loucura
Wesley merece um prêmio pelo trabalho que ele tem feito nos últimos anos! Obrigado pelo vídeo de altíssimo nível!!
Esta briga de dependência é muito antiga. Escuto desde quando comecei. O mundo é feito de relacionamentos e relacionamentos criam dependências.
Talvez eu tivesse resolvido isso de maneira diferente. Para manter a consistência de dados e manter certa independência dos MS, resolvo isso com MS conectando Postgres , cada um com seu schema , consigo manter relacionamento forekey . Uso Patroni para criar instâncias, assim crio , horizontalmente HA e performance.
Uma consideração interessante é que a duplicação dos dados aumenta o uso de espaço em disco (recurso barato), porém reduz o custo de processamento e memória (escasso), uma vez que cada microservice pode manter uma cópia dos dados em um formato já preparado para a saída que precisa gerar, dispensando a utilização de consultas mais complexas, que seriam necessárias em um modelo de banco de dados relacional centralizado.
Excelente explicação e abordagem, realmente é um trade-off nada é uma bala de prata, mas saber os prós e contras de cada abordagem e trazer a que melhor se encaixa em sua realidade, evitando assim o máximo possível de dor de cabeça, essa sim seria a opção mais viável, sem receita de bolo!
No caso dos relatórios, se for um cenário grande, considero levar os dados para um data lake, assim um analista de dados vai ter ferramentas melhorias para a geracao de relatorios e dashboards. Eu ja utilizei debezium com kafka, fazendo cdc dos databases e levando para uma camada bronze do data lake
Também facilita o backup do banco .
Vídeo top!!!
Perfeito, perfeito. Muito obrigado. Mas gostaria de um video seu nesse formato de como voce iria montar a estrutura para um microservico de autenticação que lida com login, logout, refresh token, validacao de token e etc, e como ficaria os outros microservicos. Pq tipo, pra mim todo ms tem que ter verificação de autenticidade, token e etc para realizar suas acoes, entao todo ms receberia um token nas requisicoes, mas se depois de receber o token todos ms usarem o microservico de autenticacao entao ta criando um enorme acoplamento onde todos dependem do mesmo ms. E se cada ms fizer sua propria certificação de token entao todos estariam acessando o mesmo db, ou pelo menos fazendo tarefa que nao condizem com sua responsabilidade. Fico perdido nessa estrutura de permissoes e validacao de token. Como voce faria? Pf faz um video
Na vdd não é tão complexo não.
Da uma olhadinha em servidor de autenticação. Tem alguns bem conhecidos: OAuth2 e Keycloak
Amei a aula, já fiquei imaginando eu em uma reunião pra tomar uma decisão dessas rsrsrsrs....
Aprofunde pra não falar besteira ou apenas ser papagaio de alguma coisa que ouviu por aí
Show de bola!
Trabalho num E-commerce no Canada e eh a primeira vez que eu trabalho com E-Commerce e eles utilizam JUSTAMENTE o exemplo do Cadastro de Produto fortemente Acoplado ao estoque e adivinhem, por o estoque ser GIGANTESCO o banco de dados sofre e ta levando porrada.
Consolidar o saldo do estoque 1x dia é uma saída.... depois o saldo atual no SELECT pega o consolidado mais a movimentação a partir dele...
Arruma alguém que entende de banco de dados, que seus problemas acabam.
Sensacional!
Oi Wesley, e no caso desse microserviço for duplicado em escala... o banco também duplica ou os clusters de aplicação começa a compartilhar o mesmo banco, ou seja o microserviço a em cluster A1 e A2 começa a compartilhar o mesmo banco?
Sensacional !!!
Boa!
Boa noite. Fiquei com uma dúvida. Como funcionaria as restrições no bancos? ex: Se der um delete em um usuário numa tabela de vendas, no banco normal com restrições provavelmente não permitiria pela as restrições. Com funciona isso para microservicos e BD separados? E como fica essas questões de regras de adm do BD?
Mas precisa de fila necessáriamente? não daria pra se comunicar utilizandoo gRPC por exemplo, obviamente estou falando de processos que não vão ocorrer a todo momento, caso ao contrário sim se deve-se utilizar um message broker
Neste contexto, rpc and http requests representam o mesmo problema de coupling entre 2 ou mais aplicacoes. Se voce está procurando por loose coupling, a melhor solução que temos hoje são event streams (como apache Kafka), seguida de message queues (como rabbitmq, ibmmq, AWS SQS, etc)
O grande ponto: gambiarra consciente 🙂
No fundo a única metodologia que funciona é a POG - Programação Orientada a Gambiarras
Pessoal, desde ontem a plataforma ta com erro de CORS no login.
Entra em contato c a galera so suporte para te ajudar. Não estamos recebendo chamados como esse de outros alunos. Chama a gente para te ajudar
Explicação: Vamos criar microservicos com banco de dados separados e depois nos juntamos todos os dados num banco unico e utilizamos ele kkkkkkkk, loucura