Ambos têm o conceito de Usuário e falarão sobre Usuários através de chamadas entre si.
Também concordo com o que o @soru disse. Se um serviço precisar de dados de outro serviço, seus limites estarão incorretos.
Uma boa solução é a que o @pnschofield surgiu - tratando seus serviços como um contexto limitado.
Falando sobre o assunto, coloque em breve: modelos de domínio compartilhado matam a autonomia de serviço, transformando seu sistema de microsserviço em monólito distribuído. O que aparentemente é ainda pior que um monólito.
Portanto, ainda há uma questão geral não resolvida - como definir limites de serviço ou de contexto, para que eles prosperem com alta coesão e boa qualidade de acoplamento.
Eu vim com uma solução para tratar meus contextos como uma capacidade de negócios. É uma responsabilidade de negócios de nível superior, uma funcionalidade de negócios, contribuindo para o objetivo geral dos negócios. Você pode pensar nelas como as etapas que sua organização precisa seguir para obter valor comercial.
Minha sequência típica de etapas que tomo ao identificar os limites de serviço é a seguinte:
- Identifique recursos de negócios de nível superior. Geralmente eles são semelhantes entre organizações do mesmo domínio. Você pode ter uma ideia de como é verificar o modelo da cadeia de valor de Porter .
- Dentro de cada recurso, aprofunde e identifique sub-recursos.
- Observe a comunicação entre os recursos. Veja o que uma organização faz. Geralmente, a comunicação é concentrada em recursos, notificando o restante sobre o resultado de seu trabalho. Portanto, ao implementar a arquitetura técnica, seu serviço também deve se comunicar por meio de eventos. Isso tem várias conseqüências positivas. Com essa abordagem, seus serviços são autônomos e coesos. Eles não precisam de comunicação síncrona e transações distribuídas.
Provavelmente, um exemplo dessa técnica seria de seu interesse. Não hesite em me informar o que você pensa, pois achei essa abordagem realmente lucrativa. Claro que pode funcionar para você também.