По моему мнению, ваш случай касается того, как вы указываете свои услуги, особенно как вы определяете ограниченный контекст каждой услуги !!
В соответствии с вышеупомянутой ситуацией, я не вижу причин, почему продуктСервис должен знать что-либо о заказах (даже если это просто идентификатор заказа) и обратно.В этом случае я вижу еще одну проблему: ваши сервисы не будут работать, если один сервис недоступен (например, когда сервис продукта не подключен к Интернету, ваш сервис заказов не сможет работать, потому что ему нужны подробности продукта из сервиса продукта....).
Думаю, вам следует переосмыслить ограниченный контекст ваших микросервисов.Следует помнить:
- обеспечивает слабую связь микросервисов
- микросервис всегда должен работать, даже если другие микросервисы недоступны (устойчивость / надежность).
Парадигма DDD (доменное управление) с ее инструментами предоставляет ей большую помощь, чтобы помочь вам, в процессе определения ваших услуг, вы поощряете эти качества.
Итак, следующееэто просто идея (это не рекомендация, и вы должны проверить, имеет ли это значение для вашего бизнес-кейса):
- Похоже, что процесс «заказ» - это ваша основная сфера деятельности.Таким образом, вы должны сосредоточиться на этом.
- Служба пользователей (я надеюсь, что здесь вы имеете в виду клиента, а не пользователя с точки зрения аутентификации / авторизации) несет ответственность только за управление клиентами и может быть их адресом., банковские счета и т. д. Он не должен ничего знать о ваших заказах или продуктах.
- То же самое относится и к услуге продукта.Он владеет только данными о товарах.Он не имеет отношения ни к клиенту, ни к службе заказа.
- Служба заказа сама по себе имеет дело только с заказами и должна владеть только данными, которые принадлежат заказу (например, адрес отправителя и некоторая информация о продукте).-пункты заказаны).Я думаю, что идентификатор клиента также важен для сохранения связи между заказом и клиентом.Таким образом, вы можете, например, получить все заказы, сделанные по определенному идентификатору клиента ....