我试图围绕整个CQRS/ES的想法,并考虑编写一个概念证明和如何在我们当前的应用程序中实现它的技术规范。CQRS/ES:批量操作/进口
有问题的操作(就如何将它们映射到CQRS/ES而言)是通过文件导入批量更新复杂的文章数据 - 数据文件中的单行扩展到文章组,文章,标题,单元和物业,将买方分类链接到供应商分类以及导出部分或整个分类的文件的批量加载。
我读过某处(可能是DDDCQRS Google Group)建模文章导入BC(读取Excel文件或其他网格文件)的最佳方法是将一行导入的数据作为聚合和整个导入为聚合根。这样,解析文件后,我只需要创建一个导入聚合,并为每一行添加该行到导入。这会将事件存储在BC的事件存储中,并发布BC文章管理者将要订阅的事件。这有意义吗?
在当前系统中,导入是在单个长时间运行的事务中运行的。根据导入的数据量和给定用户已存在的数据量(因为数据与以前导入的文件和当前数据进行比较),应将长时间运行读取为5到40分钟。当操作中途失败时,目前整个操作被回滚。这在CQRS/ES中如何工作?
我同意这个问题。无论您如何设计模型,执行导入的方式都是要弄清楚您的命令是什么,为导入文件中的数据创建它们,然后通过它们的处理程序运行它们。无论是每行一条命令还是多条命令,都取决于您的模型和事务性命令,而不是相反。不要为导入编写模型,请在模型中编写导入。 – Dan