我正在尝试围绕整个 CQRS/ES 想法进行思考,并考虑编写一个概念证明和技术规范,说明如何在我们当前的应用程序中实现它。
有问题的操作(在如何将它们映射到 CQRS/ES 方面)是通过文件导入批量更新复杂的文章数据——数据文件中的单行扩展到文章组、文章、标题、单位和属性、批量-加载将买方分类链接到供应商分类的文件,并导出部分或整个分类。
我在某处(可能是 DDDCQRS Google Group)读到,为文章导入 BC(读取 Excel 文件或其他网格文件)建模的最佳方法是将单行导入数据汇总,然后整个导入成为聚合根。这样,在解析文件之后,我所要做的就是创建一个导入聚合,并为每一行添加该行到导入。这会将事件存储在 BC 的事件存储中,并发布文章管理 BC 将订阅的事件。这有意义吗?
在当前系统中,导入在单个长时间运行的事务中运行。长时间运行应该在 5 到 40 分钟之间读取,具体取决于导入的数据量和给定用户已经存在的数据量(因为数据与先前导入的文件和当前数据进行比较)。当操作中途失败时,当前整个操作被回滚。这在 CQRS/ES 中是如何工作的?