【问题标题】:In EventFlow, how do I deprecate an entire aggregate?在 EventFlow 中,如何弃用整个聚合?
【发布时间】:2019-12-10 08:58:37
【问题描述】:

在 EventFlow 应用程序中,我想完全删除一个聚合并将其所有事件转移到另一个聚合。生成的聚合将具有与第一个聚合不同的名称、ID 和事件。

我找到了this 文档关于使用 IEventUpgrader 类进行事件升级,但它要求传入和生成的事件具有相同的聚合和 id 类,因此它不能解决我的问题。

浏览源代码,我发现了“IEventUpgradeManager”类,看起来它可能有效,但我找不到任何有关它的文档。

我可以手动编辑数据库中每个事件的元数据,但这似乎不是一种可持续的方法。在这种情况下,正确的解决方案是什么?

【问题讨论】:

    标签: c# .net event-flow


    【解决方案1】:

    一旦你创建了NewAggregate 并通过实现IAmReadModelFor<NewAggregate NewAggreagateId, EventForOldAggregate> 让它消耗相同的旧事件,它不会被重新聚合吗? 然后你可以从代码中删除以前的OldAggregate 类,唯一的基础应该是 Db 中的聚合快照,但是你可以在存储中识别这些并从那里删除(不知道你正在使用什么存储,但这是在RDBM 或 NoSQL 中的集合)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 2018-06-09
      • 2018-09-16
      • 2018-04-17
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多