Minha empresa está atualmente trabalhando na adoção de uma arquitetura de microsserviço, mas estamos enfrentando algumas dores de crescimento (choque!) Ao longo do caminho. Um dos principais pontos de discórdia que enfrentamos é como comunicar grandes quantidades de dados entre nossos diferentes serviços.
Como pano de fundo, temos um repositório de documentos que serve como repositório para qualquer documento com o qual possamos precisar lidar com toda a empresa. A interação com a referida loja é feita através de um serviço que fornece ao cliente um ID exclusivo e um local para transmitir o documento. A localização do documento pode ser acessada posteriormente através de uma pesquisa com o ID fornecido.
O problema é este: faz sentido que todos os nossos microsserviços aceitem esse ID exclusivo como parte de sua API para fins de interação ou não com documentos? Para mim, isso parece inerentemente errado - os serviços não são mais independentes e dependem do serviço da loja de documentos. Embora reconheça que isso pode simplificar o design da API e talvez até ter alguns ganhos de desempenho, o acoplamento resultante mais do que contrabalança os benefícios.
Alguém sabe como os unicórnios do arco-íris (Netflix, Amazon, Google, etc.) lidam com grandes trocas de arquivos / dados entre seus serviços?