事件版本控制策略

时间:2017-12-21 00:24:35

标签: domain-driven-design event-sourcing

因为我们没有正确地分割我们的上下文和聚合边界,所以我们最终得到了一个包含数据的巨大域事件,我们现在希望将这些数据拆分为从新的不同聚合根发布的不同的较小域事件。

我的问题是你认为哪种方法最好以向后兼容的方式进行。

在阅读了不同的方法之后,我发现最适合这种情况的方法是向上转播然后复制和转换

。怎么样?

  1. 说这个重大事件是eventA
  2. 我们可以对eventA进行版本分割,因此我们将eventAeventA_v2(不包含部分数据的相同事件)和eventB包含其余内容我们从eventA中减去的数据。
  3. 在所有客户端都可以从eventA切换到eventA_v2 + eventB之前,创建一个转换器(向上转换),使用来自{{eventA的数据异步发布eventA_v2 1}}和eventB
  4. 一旦所有客户都准备好使用新协议,并且客户端不支持所有版本的project方法(project_eventA, project_eventA_v2,{{1我们可以归档所有project_eventA_vX个事件(因此我们保持历史性),并将这些事件的副本转换为eventA + eventA_v2(复制和转换)。我的意思是,如果你看一下事件商店,你就会看到新的事件格式。这样,客户端就可以停止维护代码来预测eventB个事件并关注新事件。

    你认为这是一个好的解决方案吗?你会怎么做?

0 个答案:

没有答案