Domain driven design 跨两个微服务共享域模型类(聚合)

Domain driven design 跨两个微服务共享域模型类(聚合),domain-driven-design,microservices,Domain Driven Design,Microservices,基于我有限的知识,可以在有限的上下文级别或聚合级别设计微服务 如果微服务是在聚合级别创建的,它们可能需要引用在其他微服务中创建的聚合(因为它们共享相同的有界上下文) 我们是否应该在每个微服务中多次创建相同的聚合(如果需要)?或者,在任何情况下,我们都不需要将一个聚合用于另一个聚合?在对聚合进行建模时,规则是一个聚合只能通过其标识引用任何其他聚合。一个聚合不能保留对任何其他聚合的对象引用,否则一致性边界将被破坏 因此,如果您根据DDD规则对系统进行建模,您的微服务将被明确隔离,您将不会遇到任何问题

基于我有限的知识,可以在有限的上下文级别或聚合级别设计微服务

如果微服务是在聚合级别创建的,它们可能需要引用在其他微服务中创建的聚合(因为它们共享相同的有界上下文)


我们是否应该在每个微服务中多次创建相同的聚合(如果需要)?或者,在任何情况下,我们都不需要将一个聚合用于另一个聚合?

在对聚合进行建模时,规则是一个聚合只能通过其标识引用任何其他聚合。一个聚合不能保留对任何其他聚合的对象引用,否则一致性边界将被破坏


因此,如果您根据DDD规则对系统进行建模,您的微服务将被明确隔离,您将不会遇到任何问题。

谢谢!我同意这一点。我发现许多DDD从业者提出了同样的建议。只是好奇,当你说围绕聚合设计微服务时,你是从你所知道的或者你在某处看到的建议中推断出来的吗?即使对于微服务来说,这似乎也是一个很小的规模。@guilaume31,我并不是说“总是”围绕聚合设计微服务。这是一种选择(除了子域/有界上下文)。我从来没有说过你说的是“始终”:)外面的似乎指向BC大小的微服务或更大的,而不是聚合大小的,因此我的问题。