Estou construindo um novo aplicativo e estava lendo sobre arquitetura de microsserviços. A arquitetura em si faz muito sentido do ponto de vista do desenvolvimento, implantação e gerenciamento do ciclo de vida. No entanto, um problema que surgiu foi sobre como lidar com dados mestre.
Por exemplo, eu tenho 2 aplicativos - por exemplo, aplicativo de vendas e aplicativo de emissão de bilhetes. Suponha que esses dois aplicativos sejam criados como microsserviços próprios. No entanto, esses dois aplicativos, quando implantados (supondo que sejam implantados separadamente, dizem que Sales usa MongoDB e Ticketing usam MariaDB), precisariam ter acesso às mesmas instâncias de dados mestre, como Contas, Produtos. Isso significaria que haveria um aplicativo proprietário para uma determinada entidade de dados mestre (por exemplo, para Contas, poderia ser o aplicativo Vendas) e uma parte interessada (por exemplo, o aplicativo Ticketing precisaria ter informações sobre Contas).
Existem várias maneiras de conseguir isso: - Replicação de dados do mestre para a parte interessada - Leitura síncrona do interessado para o mestre (a dependência da sincronização não é recomendada pelo paradigma da arquitetura de microsserviços) - Repositório centralizado próprio
Também dentro das Contas, pode haver uma parte principal que é comum para Vendas e Venda de ingressos (por exemplo, nome da conta, endereço etc.). No entanto, alguns aspectos da conta SOMENTE podem ser relevantes para vendas e outros SOMENTE relevantes para bilhética.
Quaisquer pensamentos / melhores práticas / opiniões sobre qualquer uma das opções acima mencionadas?