1
resposta

Estrategia para carregar dados de vários bancos com microservices

Como demonstrado no curso, uma abordagem quando se trabalha com microserviços é que cada microserviço tenha seu banco de dados e vimos a vantagem disso, mas vamos supor que surgiu um novo requisito, eu quero um relatório com os pedidos de compra por fornecedor, nesse relatório deve ser ser apresentado o nome do fornecedor e os pedidos de compra desse fornecedor, mas no banco do pedido de compra como vimos só guardamos o id do fornecedor, não dá pra dar join pq geralmente os bancos estão em hosts distintos, carregar primeiro os fornecedores e posteriormente fazer uma chamada rest para carregar os pedidos não parece ser uma boa alternativa, parece demorado e custoso. Qual a estratégia que o mercado costuma utilizar para solucionar esse tipo de problema?

1 resposta

Olá Ricardo!

Realmente, essa é uma situação comum em que precisamos lidar com dados de diferentes bancos em um único relatório. Uma das estratégias utilizadas no mercado é a replicação de dados entre os bancos de dados. Isso significa que, ao inserir um novo pedido de compra, por exemplo, além de salvar o id do fornecedor, também é salvo o nome do fornecedor em uma tabela específica para essa finalidade. Dessa forma, quando precisarmos gerar o relatório, podemos fazer um join entre as tabelas de pedidos de compra e de fornecedores, sem a necessidade de fazer chamadas rest para carregar os dados.

Outra estratégia é utilizar um banco de dados centralizado que contenha todas as informações necessárias para gerar o relatório. Nesse caso, os microserviços que precisam acessar esses dados podem se conectar ao banco centralizado e fazer as consultas necessárias.

É importante lembrar que cada caso é único e as estratégias podem variar de acordo com a necessidade do projeto. Por isso, é importante avaliar as opções disponíveis e escolher a que melhor se adequa ao seu caso.

Espero ter ajudado e bons estudos!