Domain driven design 阅读沃恩·弗农的cqrs+es的模型侧

Domain driven design 阅读沃恩·弗农的cqrs+es的模型侧,domain-driven-design,cqrs,event-sourcing,lokad-cqrs,Domain Driven Design,Cqrs,Event Sourcing,Lokad Cqrs,代码实现了沃恩·弗农(Vaughn Vernon)书中讨论的cqrs+es写端。不幸的是,读取模型端是不完整的。有没有人知道类似的代码理想地基于沃恩·弗农(Vaughn Vernon)的书,该书实现了read model端的工作版本 问题在于,几乎所有使用cqrs+es的开源代码库要么基于毫无希望的琐碎示例。因此,它们只显示基本情况,而剥夺了您显示复杂情况的良好示例的机会。 在我看来,这使得它们除了对概念有所了解之外,对所有人都毫无用处 因此,获得一个工作版本作为示例,取决于您如何定义它。如果你

代码实现了沃恩·弗农(Vaughn Vernon)书中讨论的cqrs+es写端。不幸的是,读取模型端是不完整的。有没有人知道类似的代码理想地基于沃恩·弗农(Vaughn Vernon)的书,该书实现了read model端的工作版本

问题在于,几乎所有使用cqrs+es的开源代码库要么基于毫无希望的琐碎示例。因此,它们只显示基本情况,而剥夺了您显示复杂情况的良好示例的机会。 在我看来,这使得它们除了对概念有所了解之外,对所有人都毫无用处

因此,获得一个工作版本作为示例,取决于您如何定义它。如果你想找一些简单的东西,这里有很多OSS项目的例子,其中有一个readmodel的工作示例。就用谷歌吧

实现readmodel可以说是ES/CQR最简单的方面。当与ES组合时,您的aggregateroot会发出事件,您可以订阅这些事件

使用这些事件可以构建readmodel,一次一小块。如何根据enities定义readmodel取决于您。这里没有对错之分。这完全取决于你想解决什么样的问题

例如:接收OrganizationCreated事件时,我是否创建了可以直接检索的单个OrganizationEntity?当然,如果有需要这种表示的详图视图,为什么不呢

但是,除了那个单一的实体之外,您是否还保留一个包含所有已知组织的单独列表实体,或者只执行一个查询select*from,如果您要对该组织实体进行查询,并像这样生成我的结果?再一次,这取决于您的需求


使用ES最好的一点是,您可以更改readmodel,或者简单地引入新实体,而不会有太多问题。您总是可以从ES重新构建readmodel。

问题在于,几乎所有使用cqrs+ES的开源代码库都基于毫无希望的琐碎示例。因此,它们只显示基本情况,而剥夺了您显示复杂情况的良好示例的机会。 在我看来,这使得它们除了对概念有所了解之外,对所有人都毫无用处

因此,获得一个工作版本作为示例,取决于您如何定义它。如果你想找一些简单的东西,这里有很多OSS项目的例子,其中有一个readmodel的工作示例。就用谷歌吧

实现readmodel可以说是ES/CQR最简单的方面。当与ES组合时,您的aggregateroot会发出事件,您可以订阅这些事件

使用这些事件可以构建readmodel,一次一小块。如何根据enities定义readmodel取决于您。这里没有对错之分。这完全取决于你想解决什么样的问题

例如:接收OrganizationCreated事件时,我是否创建了可以直接检索的单个OrganizationEntity?当然,如果有需要这种表示的详图视图,为什么不呢

但是,除了那个单一的实体之外,您是否还保留一个包含所有已知组织的单独列表实体,或者只执行一个查询select*from,如果您要对该组织实体进行查询,并像这样生成我的结果?再一次,这取决于您的需求

使用ES最好的一点是,您可以更改readmodel,或者简单地引入新实体,而不会有太多问题。您始终可以从您的readmodel重建readmodel