Sempre aprendi ( e implementei) que Sidecar era basicamente um microsserviço auxiliar, que era deployado para adicionar uma funcionalidade extra a um microsserviço já existente (log, segurança, monitoramento e etc...). Geralmente esse sidecard era exposto ou em um pod/task ecs separado com comunicação com baixa latencia (ex: Grpc) ou, de maneira mais comum, em uma msm pod kubernetes, e a comunicação se dava por memória compartilhada. No curso, o instrutor fala que sidecar seria como criar uma biblioteca Java ou Node e etc, para adicionar essas funcionalidades ao microsserviço. Alguém encontrou algum artigo que valide essa infromação? Procurei e não encontrei nada a respeito.
No meu entendimento essa abordagem informada vai contra o Sidecar:
1 - Por ser uma biblioteca, seria escrito na linguagem X e só funcionaria com serviços escritos na linguagem X;
2 - Uma das vantagens do Sidecar é adicionar uma nova funcionalidade, sem a necessidade de um deploy ou risco de quebrar a aplicação por adicionar novo código para isso. Adicionar uma biblioteca nos forçæria a fazer um redeploy e poderiamos ter q escrever código para usar a biblioteca, podendo até quebrar a lógica da aplicação.
3 - Se houvesse mudança no "sidecar"/biblioteca, além do deploy dessa nova biblioteca precisariamos alterar a versão da biblioteca no microsserviço e fazer um redeploy.