我有一个公交车运营商和运输产品的后台配置系统(目前面向CRUD )。我需要执行审计并跟踪所有配置参数的历史记录。
我认为CQRS方法可以满足我的需求。但是我不知道如何对我的域名进行建模?如何识别我的根聚合?
该系统允许传输网络管理员定义畅销传输产品的列表。系统允许传输网络管理员定义介质的特性(卡、徽章、票证和设计...)将在他们的产品运输中出售。网络可以赋予在其他运营商上销售或验证其各自产品的权利。网络由一个或多个在其总线线路上销售产品或执行网络运输的运营商运营。操作员必须管理其设备/机器(总线、avm)。操作员还决定应该发送到特定设备软件的产品列表。
当操作员配置了要发送到其设备的参数列表时,他启动了一个过程,该过程将在FTP站点上提供描述操作员和其他网络管理员所做的设置/配置的各种文件(销售产品和/或在网络之间验证的权限列表...)。
系统必须允许审核服务器测试中的所有更改和转置设置。
我想我有:-产品聚合根:与其属性,价格等…但是,当一个产品可以被其他聚合引用时,我如何处理更改,例如,当一个产品从产品目录中被逐出时?-每个用例一个聚合根?
这就像我说的,我不确定: CQRS方法是否真的适合?如果是,我如何指定我的聚合?
发布于 2014-11-15 22:36:54
哇,这是个大问题。我认为CQRS和Event Sourcing是一个绝佳的选择,特别是当你需要一个审计日志的时候。但是,您可以通过CRUD进行事件采购。我在博客上有一个例子,你可以在这里找到Is a 100% Provable Audit Log Possible? – Hint, with Event Sourcing it Is and I’ll Show You How
找到你的聚合体是一个过程,也是一个艺术形式。聚合的作用是封装“有界上下文”,并确保保持不变量。您可以使用不变量来帮助您查找聚合。如果不知道您的域的详细信息,就很难建议存在哪些聚合。我在我的博客here上再次详细介绍了如何构建聚合(一旦你确定了它们应该封装什么)。我希望这对你有帮助!
https://stackoverflow.com/questions/26675335
复制相似问题