9

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

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

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

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

4

1 回答 1

3

与 CQRS/ES 无关。一个非常幼稚的方法如下:

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

在所有劣质 IMO 的背后是否有事件源或基于状态的模型。

于 2013-02-17T11:26:11.537 回答