Muito boa a apresentação. Além dos aspectos arquiteturais explanados, foram colocados aspectos de adoção a microservice, Devops, protocolos, cloud, entre outros.
Ótima explanação sobre o assunto, mas ficou uma dúvida: Como são tratados os casos onde é necessário consistência transacional, numa operação que envolve mais de um micro serviço? Ou essa necessidade em si já seria um erro de separação dos 'módulos'?
+Fábio Magagnin Na minha visão, um modelo que está intimamente ligado a outro necessitando de consistência transacional, deveria estar no mesmo micro serviço. Normalmente ambos fazem parte da mesma atividade de um processo, portanto concluo que a separação foi muito granular. Caso você queira manter a separação e ainda atingir consistência, ela não vai ser transacional, até existem algumas propostas de tecnologias e teses que falam disso, mas na prática elas são bem "capengas". Uma alternativa seria implementar sincronização através de eventos de resposta rápida e "rollback" por compensação.
+Fábio Magagnin Neste caso você deve fazer o controle de transação na camada dos microservices de coreografia. Ou seja, você precisa ter um microservices que faz a coreografia entre todos os Participantes da transação. A técnica pode ser baseada em two fase commit ou compensação. Abraço!
Olá, tenho duas dúvidas quanto a implementação de sistemas complexos divididos em microserviços: 1- Utilizo um ORM em um ERP e gostaria de dividir, por exemplo, operações de ‘fornecedor’ e ‘produtos’ em microservices separados. Quando for persistir um produto no seu serviço teoricamente preciso da entidade do fornecedor para o ORM trabalhar, como faria isso? na entidade de produto o fornecedor seria um int? ou faria um core em um repositório separado com o domínio da aplicação e todos os microservices da minha empresa teriam esse core como dependência? 2- ainda utilizando o mesmo exemplo de ERP, tenho dois serviços: endereços e fornecedores. Supondo que faço um POST para fornecedores com os dados do endereço para que esse repasse ao serviço de endereços, e tenha erro ao persistir o fornecedor e sucesso ao persistir o endereço como faria um rollback?
Muito boa a apresentação. Além dos aspectos arquiteturais explanados, foram colocados aspectos de adoção a microservice, Devops, protocolos, cloud, entre outros.
Ótima explanação sobre o assunto, mas ficou uma dúvida: Como são tratados os casos onde é necessário consistência transacional, numa operação que envolve mais de um micro serviço? Ou essa necessidade em si já seria um erro de separação dos 'módulos'?
+Fábio Magagnin Na minha visão, um modelo que está intimamente ligado a outro necessitando de consistência transacional, deveria estar no mesmo micro serviço. Normalmente ambos fazem parte da mesma atividade de um processo, portanto concluo que a separação foi muito granular.
Caso você queira manter a separação e ainda atingir consistência, ela não vai ser transacional, até existem algumas propostas de tecnologias e teses que falam disso, mas na prática elas são bem "capengas". Uma alternativa seria implementar sincronização através de eventos de resposta rápida e "rollback" por compensação.
+Fábio Magagnin Neste caso você deve fazer o controle de transação na camada dos microservices de coreografia. Ou seja, você precisa ter um microservices que faz a coreografia entre todos os Participantes da transação. A técnica pode ser baseada em two fase commit ou compensação. Abraço!
Se envolvam transação não vejo porquê separar, as vezes pensamos que microservicos é separar cada tabela, não é bem assim
Olá, tenho duas dúvidas quanto a implementação de sistemas complexos divididos em microserviços:
1- Utilizo um ORM em um ERP e gostaria de dividir, por exemplo, operações de ‘fornecedor’ e ‘produtos’ em microservices separados. Quando for persistir um produto no seu serviço teoricamente preciso da entidade do fornecedor para o ORM trabalhar, como faria isso? na entidade de produto o fornecedor seria um int? ou faria um core em um repositório separado com o domínio da aplicação e todos os microservices da minha empresa teriam esse core como dependência?
2- ainda utilizando o mesmo exemplo de ERP, tenho dois serviços: endereços e fornecedores. Supondo que faço um POST para fornecedores com os dados do endereço para que esse repasse ao serviço de endereços, e tenha erro ao persistir o fornecedor e sucesso ao persistir o endereço como faria um rollback?
Muito Bom!
"mico" serviços???