1
resposta

Sidecar pattern

O professor explica no curso que quando uma determinada lógica é comum a vários serviços, e não queremos (ou precisamos) tornar essa lógica um serviço, podemos simplesmente criar uma biblioteca, um artefato, enfim... que será compartilhada entre os serviços. Por exemplo, se for Node, uso um módulo do NPM, se for Java, um artefato do Maven/Gradle, etc.

Pergunta: isso não quebra justamente uma das vantagens da arquitetura de Microserviços que diz que os serviços devem ser independentes e, por tanto, podem usar tecnologias diferentes? Digo porque para compartilhar essa lib entre os serviços, todos eles teriam que ser codificados na liguagem da lib.

Ou seja, se eu fiz a lib em Java, então os serviços que vão importar essa lib devem também ser feitos em Java. Logo, perdi a autonomia do uso de diferentes linguagens/framework. É isso mesmo?

1 resposta

Eu acho que você começar pensando e estruturando suas aplicações para serem modulares e reaproveitadas é um ótimo início. Para o que fizer sentido, você compartilha a lib, por exemplo, para o que não fizer sentido, você implementa um micro serviço de fato. Porquê não ter uma lib, que será usada por diversos microsserviços distintos, por exemplo?