Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Barreiras de um microsserviço

Na aula "Identificando Barreiras" me veio a seguinte dúvida: entendi que cada microsserviço deve ser independente e, inclusive, é aconselhável que cada microsserviço deva possuir sua base de dados. Estou correto neste entendimento ?

Pois bem, nessa situação onde cada microsserviço deva possuir seu banco de dados, como fica a situação de registros relacionados ? Por exemplo: imagine que tenhamos o microsserviço responsável pelo cadastro de um aluno e outro responsável pela parte financeira. O banco de dados com informações financeiras precisa do código (id) do aluno para a criação de um registro (se tratando de um banco de dados relacional). Então, pensando no banco, como ficaria essa divisão ? Ou, neste contexto, os dois microsserviços compartilhariam o mesmo banco de dados uma vez que possuem dados compartilhados ?

A utilização de schemas no banco de dados para a organização do banco para microsserviços seria uma boa prática ?

2 respostas
solução!

Olá, Rodrigo! Sua pergunta é muito pertinente e mostra que você está realmente se aprofundando no conteúdo, parabéns!

Vamos lá, você está correto em seu entendimento de que cada microsserviço deve ser independente e, geralmente, cada um possui sua própria base de dados. Isso é conhecido como o princípio da autonomia de dados, que é fundamental para garantir a independência e a desacoplagem entre os microsserviços.

Em relação à sua dúvida sobre registros relacionados, é aqui que entra o conceito de consistência eventual. No exemplo que você deu, o microsserviço responsável pelo cadastro de um aluno e o microsserviço responsável pela parte financeira, cada um teria sua própria base de dados. Quando um aluno é cadastrado, o microsserviço de cadastro de alunos publicaria um evento (por exemplo, "AlunoCriado") em um barramento de eventos. O microsserviço financeiro estaria escutando este barramento e, ao receber o evento "AlunoCriado", ele criaria um novo registro em sua própria base de dados.

Essa abordagem permite que cada microsserviço opere de maneira independente, sem a necessidade de acessar diretamente a base de dados de outros microsserviços. No entanto, isso também significa que pode haver um atraso (geralmente muito pequeno) entre a criação do aluno e a criação do registro financeiro correspondente, daí o termo "consistência eventual".

Sobre a utilização de schemas no banco de dados, é uma prática comum em microsserviços, cada microsserviço ter seu próprio schema, garantindo assim a independência entre eles. No entanto, isso não é uma regra e deve ser avaliado caso a caso, levando em consideração as necessidades e especificidades de cada projeto.

Espero ter ajudado e bons estudos!

Ajudou muito! perfeitamente esclarecido! muito obrigado!