因为我们没有正确地分割我们的上下文和聚合边界,所以我们最终得到了一个包含数据的巨大域事件,我们现在希望将这些数据拆分为从新的不同聚合根发布的不同的较小域事件。
我的问题是你认为哪种方法最好以向后兼容的方式进行。
在阅读了不同的方法之后,我发现最适合这种情况的方法是向上转播然后复制和转换
。怎么样?
eventA
。 eventA
进行版本分割,因此我们将eventA
,eventA_v2
(不包含部分数据的相同事件)和eventB
包含其余内容我们从eventA
中减去的数据。 eventA
切换到eventA_v2
+ eventB
之前,创建一个转换器(向上转换),使用来自{{eventA
的数据异步发布eventA_v2
1}}和eventB
。一旦所有客户都准备好使用新协议,并且客户端不支持所有版本的project
方法(project_eventA,
project_eventA_v2
,{{1我们可以归档所有project_eventA_vX
个事件(因此我们保持历史性),并将这些事件的副本转换为eventA
+ eventA_v2
(复制和转换)。我的意思是,如果你看一下事件商店,你就会看到新的事件格式。这样,客户端就可以停止维护代码来预测eventB
个事件并关注新事件。
你认为这是一个好的解决方案吗?你会怎么做?