如何在Node JS中构建CQRS / Event-Sourcing App?

时间:2017-12-20 17:42:24

标签: node.js domain-driven-design cqrs event-sourcing

我想在Node JS中使用Event Sourcing App创建CQRS。

微软发布了一本名为" CQRS Journey"的书,该书使用" Domain Driven Design"原则,我不知道它是否适合功能编程......自2013年写的书以来,我想问一下它是否仍然是现代方式"现代方式&#34 ;使用CQRS Pattern构建应用程序。

我应该在开始使用CQRS之前开始学习DDD吗?我有点困惑,我不知道我应该从哪里开始...

任何指示,参考或文章都会很棒!

3 个答案:

答案 0 :(得分:4)

首先,我建议您阅读有关CQRS的基本原则(“CQRS之旅”在我看来太大而复杂)https://martinfowler.com/bliki/CQRS.htmlhttp://cqrs.nu/

然后看一些CQRS库和框架,例如上面提到的Resolve或wolkenkit。

下一步是创建一个简单的应用程序,因为在编码时你可以遇到一些问题,并询问它们,因此这是一个很好的CQRS学习方法。

答案 1 :(得分:3)

DDD社区中有一种趋势是将DDD与功能编程一起使用,我发现它们不仅兼容,而且更容易实现CQRS&事件采购原则。

首先需要了解DDD中有两大课题:战略(领域建模,无处不在的语言,有界语境......)和战术(实施,具有不同的构建模块)。 CQRS和事件采购可以是实现您的应用程序的一种方式。

优秀的Scott Wlashing有一本关于这个主题的书:https://pragprog.com/book/swdddf/domain-modeling-made-functional你可以在他的博客中概述https://fsharpforfunandprofit.com/

在F#https://github.com/thinkbeforecoding/FsUno.Prod

中有一个很好的事件采购实现

顺便说一句,您可以完全学习没有DDD的CQRS和事件采购,同时您可以开始学习DDD,它将为您提供一个很好的工具箱,帮助您设计应用程序并处理复杂的业务领域,提高业务理解和使用您的应用中更相关的语言和命名。

答案 2 :(得分:2)

要开始使用,您可能会对博客文章系列DDD & co.感兴趣,该系列文章解释了DDD,事件采购和CQRS的多个集合,它们如何相互引用等等......

由于您一直在明确询问Node.js,因此有一个名为wolkenkit的CQRS和事件采购框架可能对您很感兴趣。它是开源的,因此您可以在GitHub上找到它的代码。

它还提供了广泛的documentation,并且还提供了免费的68-page ebook,它解释了DDD,事件源和CQRS的概念,以及如何使用wolkenkit应用这些概念

最后,wolkenkit社区还有一个Slack team,其中也有关于DDD,事件采购和CQRS的讨论。

PS:我为本地网站(我所链接的博客所属的公司)工作,而且我也是wolkenkit的作者之一,所以请尽量回答我的问题。我不想在这里做广告,但由于你的问题完全符合我们的要求,我希望在这里分享这些链接是可以的。