Domain driven design 微服务与DDD-CQRS和ES的关系

Domain driven design 微服务与DDD-CQRS和ES的关系,domain-driven-design,microservices,Domain Driven Design,Microservices,在过去的几周里,我一直在开始并试图了解DDD CQR、ES和微服务。 我想我已经单独理解了他们,但不是作为一个整体,所以这就是为什么我有一些误解,我希望澄清 那么首先,微服务和DDD之间的关系是什么,你能做到一个没有另一个吗? 其次,有界上下文最终会转化为微服务吗?微服务和DDD之间没有关系。。。是的,你肯定可以做一个而不做另一个。 有界上下文是域级的,微服务是一种实现/基础设施/体系结构,如果您想 是Eric Evans在2003年提出的一套战术和战略设计原则。。。解决软件的复杂性 是一种将应

在过去的几周里,我一直在开始并试图了解DDD CQR、ES和微服务。 我想我已经单独理解了他们,但不是作为一个整体,所以这就是为什么我有一些误解,我希望澄清

那么首先,微服务和DDD之间的关系是什么,你能做到一个没有另一个吗?
其次,有界上下文最终会转化为微服务吗?

微服务和DDD之间没有关系。。。是的,你肯定可以做一个而不做另一个。 有界上下文是域级的,微服务是一种实现/基础设施/体系结构,如果您想

是Eric Evans在2003年提出的一套战术和战略设计原则。。。解决软件的复杂性

是一种将应用程序设计为独立部署服务套件的体系结构


CQR和事件源是实现域驱动设计的一种方式(可以被视为DDD中的构建块),但它们可以像其他构建块一样在DDD之外使用。

微服务和DDD之间没有关系。。。是的,你肯定可以做一个而不做另一个。 有界上下文是域级的,微服务是一种实现/基础设施/体系结构,如果您想

是Eric Evans在2003年提出的一套战术和战略设计原则。。。解决软件的复杂性

是一种将应用程序设计为独立部署服务套件的体系结构


CQR和事件源是实现领域驱动设计的一种方式(可以被视为DDD中的构建块),但是它们可以像其他构建块一样在DDD之外使用。

尽管我同意@rad的回答,但Microsoft最近出版了一本关于微服务和asp.net核心的电子书,其中成功地将微服务和DDD结合起来


请参见

尽管我同意@rad Microsoft最近发布的一本关于微服务和asp.net core的电子书的回答,在这本书中,微服务和DDD成功地结合在一起


请看

我认为微服务和DDD有不同的起源,但我们需要两者。看看如何:

DDD介绍了如何围绕业务领域开发和设计软件

Microservices表示,在较小的独立服务中打破并设计您的业务领域,以扩大规模

现在,如果你仔细看一下,你会谈论如何将你的软件分解并设计成更小的部分,在服务方面的微服务(用于扩展)和在有界上下文方面的DDD(用于设计)

此外,微服务需要一致性,而一致性只能是最终的,DDD战术策略有助于设计最终一致的系统

为了解决一个大的商业问题,我们需要DDD和微服务,并且需要在它们之间找到一个良好的对应关系


从我的角度来看,没有一个微服务可以跨越一个有界上下文,而且一个有界上下文可能有多个微服务。微服务之间的依赖主要由有界上下文之间的映射控制。我认为微服务和DDD有不同的起源,但我们需要两者。看看如何:

DDD介绍了如何围绕业务领域开发和设计软件

Microservices表示,在较小的独立服务中打破并设计您的业务领域,以扩大规模

现在,如果你仔细看一下,你会谈论如何将你的软件分解并设计成更小的部分,在服务方面的微服务(用于扩展)和在有界上下文方面的DDD(用于设计)

此外,微服务需要一致性,而一致性只能是最终的,DDD战术策略有助于设计最终一致的系统

为了解决一个大的商业问题,我们需要DDD和微服务,并且需要在它们之间找到一个良好的对应关系


从我的角度来看,没有一个微服务可以跨越一个有界上下文,而且一个有界上下文可能有多个微服务。微服务之间的依赖性主要由有界上下文之间的映射控制,它们之间没有关系。您可以在没有ddd、CQR或es的情况下执行微服务。
它们服务于不同的目的,而微服务体系结构关注的是高可用性、可扩展性和其他更关注实际业务需求的问题,而DDD关注的是编码风格。CQR和微服务属于同一个关注范畴。

它们之间没有关系。您可以在没有ddd、CQR或es的情况下执行微服务。
它们服务于不同的目的,而微服务体系结构关注的是高可用性、可扩展性和其他更关注实际业务需求的问题,而DDD关注的是编码风格。CQR与微服务属于同一个关注范畴。

关系是微服务不应大于有界上下文这篇文章也解释了同样的问题,关系是微服务不应大于有界上下文这篇文章也解释了同样的问题,我认为可以将它们结合起来,但正如电子书中所说的,理解一些DDD模式(并选择应用什么以及如何应用)可能是有用的,但我认为这不是必要的,在某些情况下可能比任何其他模式都更令人困惑,因为战术模式中存在结构性差异。正如书中所说,“每个DDD绑定上下文与一个业务微服务(一个或多个服务)相关。”,这是BC和μS之间的一对多关系。我们需要的是我们有一个业务语言和面向业务的μS,但这不适合DDD。我认为可以将它们结合起来,但正如电子书中所说的,了解一些DDD模式(并选择什么和如何应用)可能会很有用但我不认为这是必要的,它可能比任何其他东西都更令人困惑