CQRS:我的聚集根源在哪里?

时间:2014-10-31 13:00:46

标签: cqrs event-sourcing

我有一个后台配置系统,用于公交运营商和运输产品(目前面向CRUD)。 我需要执行审计并跟踪所有配置参数的历史记录 我认为CQRS方法可以满足我的需求。但我不知道如何建模我的域名? 如何识别我的根聚合?

系统允许传输网络管理员定义可销售传输产品列表。 该系统允许传输网络管理员定义将在其产品运输中出售的媒体(卡,徽章,票证和设计......)的特征。 网络可以授予在其他运营商处销售或验证其各自产品的权利。 网络由在其总线上销售产品或执行网络传输的一个或多个运营商操作。 操作员必须管理其设备/机器(总线,avm)。 操作员还决定应发送到特定设备软件的产品列表。

当操作员将参数列表配置为发送到他的设备时,他启动了一个将在FTP站点上提供的过程,描述设置/配置的各种文件 由运营商和其他网络管理员(销售产品和/在网络之间验证的权利列表......)。

系统必须允许审核服务器TEST上的所有更改和转置设置。

我想我有:      - 产品聚合根:具有其属性,价格等......但随后产品可被其他人引用聚合如何处理更改,例如当产品从产品目录中逐出时?      - 每个用例的aggegate root?

就像我说的我不确定: - 如果CQRS方法真的合适吗? - 如果是,我如何指定我的聚合?

1 个答案:

答案 0 :(得分:1)

哇这是个大问题。我认为CQRS和事件采购非常适合,特别是如果您需要审计日志。但是,您可以通过CRUD进行事件采购。我在博客上有一个例子,你可以在这里找到Is a 100% Provable Audit Log Possible? – Hint, with Event Sourcing it Is and I’ll Show You How

查找聚合是部分流程和部分艺术形式。聚合的作用是封装“有界上下文”并确保维护不变量。您可以使用不变量来帮助您查找聚合。如果不知道域名的详细信息,很难说明存在哪些聚合。我在博客here上再次详细介绍了如何构建聚合(一旦你计算出应该封装的内容)。我希望有所帮助!