我正在学习什么是CQRS模式,并且开始知道还有CQS模式
当我试图搜索时,我发现了很多图表,关于CQRS的信息但是没有发现很多关于CQS的信息
CQRS模式的关键点
在cqrs中,有一个要编写的模型(命令模型)和一个要读取的模型(查询模型),它们是完全独立的.
CQS如何与CQRS区分开来..?
两者都有区别的关键点是什么..?
任何援助将不胜感激 :)
除了缺少事件采购的一些好处之外,在没有事件采购部件的情况下,将现有架构适应CQRS还有其他任何缺点吗?
我正在开发大型应用程序,开发人员应该能够在接下来的几个月内将现有架构分离为命令和查询,但要求他们在此阶段添加事件源,这将是一个巨大的资源问题.透视.我是不是因为不包括事件采购而亵渎神灵?
最近我正在学习CQRS,并希望改变我的系统以使用事件采购模式.
但我发现在.Net平台上,有两个Event Store实现.
这两个实现让我很困惑 - 有人可以解释一下它们之间的主要区别.
有人评估过NCQRS和JOliver的EventStore吗?是否有明显的优势或针对不同的受众?
我见过的:
NCQRS内置了对NServiceBus的支持.不确定支持的NSB版本,但NSB的许可变更使我的项目成为一个问题.不要以为我想永远坚持使用NSB 2.1.我可能会更多地关注MassTransit或RSB.NCQRS似乎也有相当数量的"入门"帮助,这对于像我这样的新手来说很受欢迎.
EventStore似乎有一个总线机制的钩子,但没有内置的实现(可能是错误的).EventStore似乎在3.0版本中有相当多的近期活动,但除了一些简短的代码示例和我发现的播客之外,似乎没有太多的帮助,特别是对于初学者,除了筛选堆栈溢出或组.
如果存在比较,请指出我的方向.如果我的上述假设不正确,请纠正我.
我们正在使用DDD和CQRS(使用ncqrs框架)启动Web应用程序,在我们开始编写自己的基础结构类库之前,我想看看是否已有可用的.
我认为至少一些基本的接口和用于写入文件系统,发送电子邮件等的常见实现可以在任何项目中使用.
我想我了解ES + CQRS上下文中的读取模型的想法(如果没有请纠正我)。但是,对于在“严重”报告中使用它,我仍然有一些疑问。假设我使用关系数据库加上一些ORM来填充读取模型。一个基本的“摘要统计读取模型”可能看起来像这样:
class SummaryStats1
{
public Guid TypeId { get; set; }
public string TypeName { get; set; }
public Guid SubTypeId { get; set; }
public string SubTypeName { get; set; }
public int Count { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
给定一个事件:
TypeId = 3acf7d6f-4565-4672-985d-a748b7706a3e
TypeName = Bla1
SubTypeId = 41532aa1-f5d1-4ec4-896b-807ad66f75fc
SubTypeName = Bla2
Run Code Online (Sandbox Code Playgroud)
规范化器将:
(1)检查是否存在上述组合的实例(由TypeId,TypeName,SubTypeId,SubTypeName定义)(2)如果没有实例,它将创建一个实例并将Count设置为一个。如果有的话,计数将增加一。
这是可接受的报告方法吗?我猜想一个人可以针对这种非规范化的数据结构运行非常有效的选择(用于过滤和其他sql'projections'):
SELECT TypeName, Sum(Count) FROM SummaryStats1 GROUP BY TypeName
Run Code Online (Sandbox Code Playgroud)
CQRS / ES专家会对此表示同意吗?这是做事的“方式”(即创建这些专用的报表读取模型)吗?对源代码/实际示例的任何引用将不胜感激。