O problema vem depois e ai a dor de cabeça aumenta. Em um dos meus estudos sobre o tema, um palestrante falou uma coisa que achei certíssima, O problema de micro-serviço é a palavra “micro”. O que ele quis dizer? Que quando lemos isso, logo pensamos que nosso serviço tem que ser muito pequeno e tão pequeno que vira um problema para os outros serviços ao ponto de ficarmos acoplado.
Isso acontece por que estudamos o assunto de forma literal e não fazemos um estudo mais aprofundado quando alguns altores falam “Organizado em torno dos recursos do negócio”
Recentemente em um projeto que estou vimos que fomos afetados pela falta de conhecimento e surfarmos na onda, criamos dois serviços que no final deveriam ser apenas um. E como sabemos disso? O acoplamento está alto. As mesmas informações que existem no serviço A devem existir no serviço B.
Eu sei que replicas de informações quando estamos trabalhando com micro-serviços acontece. Mas quando você tem o domínio replicado do outro lado para fazer funcionar, pode acreditar que alguma coisa cheira mal.
Com micro-serviços devemos pensar também nos problemas que antes não existiam. Por exemplo, fazer com que um serviço tenha baixo acoplamento nos força a pelo menos duas coisas: Cada serviço ter a sua própria fonte de dados e utilizar uma ferramenta para troca de mensagem.
Você não cumpre o item “baixo acoplamento” quando seus serviços fazem trocas de mensagens diretas ou fazem leituras em fonte de dados de outros serviços. O seu sistema que deveria ser escalável passa a ser dependente.
Inserir um Kafka ou outra ferramenta similar é algo relativamente fácil, o problema é que eu passo a ter que cuidar de mais um serviço que não seria necessário se o meu sistema fosse um monólito.
Se no momento que você leu a palavra “monólito’ se arrepiou todo é porque possivelmente você já foi afetado pela “onda” e nesse momento deve estar gerando altos custos para a sua empresa sem a necessidade. Claro que tem muita gente que se salva.
Ter um sistema monólito não é um problema. O problema é dividir um sistema no meio por achar que deveria ser em serviços para atender o ego ou pior, querer fazer algo só porque está estudando e achou legal.