Vamos supor que temos um aplicativo Spring Boot que usa arquitetura de microsserviços. Cada um dos serviços possui seus próprios modelos de domínio, mas cada serviço deve fazer referência a um objeto de domínio do Usuário. Qual seria a melhor abordagem para resolver esse problema? Seria melhor para cada serviço ter apenas um ID do usuário e, quando necessário, solicitar detalhes do usuário ao serviço do usuário ou seria melhor ter uma biblioteca de domínio compartilhada para todos os microsserviços?
spring
microservices
user1176999
fonte
fonte
Respostas:
Se você escolheu os microsserviços para se beneficiar da escalabilidade, do acoplamento flexível e da fácil modificação independente de cada serviço, você deve cumpri-lo o máximo possível.
Arquitetura geral
Eu acho que a melhor abordagem seria:
Leitura adicional:
Compartilhamento de código
Agora, se você concordar com a solução acima, temos um microsserviço de usuário (encapsulando o modelo de domínio para o usuário) e todos os outros serviços são consumidores do mesmo microsserviço. A questão é saber se você deseja:
Não tomarei uma posição clara sobre isso, pois há guerras de opinião sobre este tópico de compartilhamento de código, e não acho que estou em posição de assumir uma posição objetiva. Aqui já está uma leitura adicional:
Minha opinião é que você NÃO DEVE COMPARTILHAR código entre o provedor do usuário e o consumidor do usuário, a fim de evitar um acoplamento rígido. No entanto, você PODE COMPARTILHAR o código de consumo do usuário entre os consumidores, se você tiver um gerenciamento de versão forte. Essa abordagem teria algumas vantagens:
fonte
Eu evitaria uma biblioteca compartilhada, se possível. Pergunte-se de que propriedades de um usuário cada serviço precisa? Geralmente, existe um domínio principal no qual a maioria do comportamento em torno de um usuário permanecerá, com domínios de suporte que geralmente precisam apenas de um userId.
Se o seu serviço precisar de mais alguns detalhes sobre um usuário, dê uma olhada em algumas sugestões aqui sobre como lidar com essas situações
fonte