CQRS / ES:批量操作/进口

时间:2013-01-31 21:15:19

标签: import cqrs event-sourcing

我正试图围绕整个CQRS / ES的想法,并考虑编写一个概念证明和技术规范,以便在我们当前的应用程序中实现它。

有问题的操作(就如何将它们映射到CQRS / ES而言)是通过文件导入批量更新复杂的文章数据 - 数据文件中的单行扩展到文章组,文章,标题,单位和属性,批量加载将买方分类与供应商分类相关联并出口部分或整个分类的文件。

我读过某个地方(可能是DDDCQRS Google Group),对文章导入BC(读取Excel文件或其他网格文件)进行建模的最佳方法是将一行导入数据作为聚合,并将整个导入作为聚合根。这样,在解析文件之后,我所要做的就是创建一个导入聚合,并为每一行添加该行到导入。这将在BC的事件存储中存储事件,并发布文章管理BC将订阅的事件。这有意义吗?

在当前系统中,导入在单个长时间运行的事务中运行。长时间运行应该在5到40分钟之间读取,具体取决于导入的数据量和给定用户已经存在的数据量(因为数据与先前导入的文件和当前数据进行比较)。当操作中途失败时,当前整个操作将回滚。这在CQRS / ES中如何运作?

1 个答案:

答案 0 :(得分:3)

使用CQRS / ES的小Todo。一个非常天真的方法如下:

  • 找到你的工作单位,
  • 为这些单位设计一个升序识别方案,
  • 将原始输入转换为这些工作单元(不太可能失败和快速),并在此过程中分配身份,
  • 现在将每个工作单元作为一个事务处理,将每个工作标识的最后处理单元更新为每个事务的一部分(如果您打算并行处理,则更新多个),
  • 从最后处理的工作单元开始失败,无论是自动还是在操作之后都开绿灯。

是否有一个基于事件源或基于状态的模型背后的IMO。