事件源中每个命令/事件的属性数量

问题描述 投票:0回答:1

我正在学习cqrs /事件源,最近我听到一些讲话,演讲者告诉您,您需要将尽可能少的参数传递给事件,换句话说,就是使事件尽可能小。这样做的主要原因是以后无法更改事件,因为这会破坏事件历史记录,并且容易正确地设计小事件。但是,例如,如果在UI中您需要使用10个字段填写表单以创建新的聚合,而更新聚合会遇到相同情况呢?在这种情况下怎么办?如果企业后来考虑更改某些东西,但是又发生了更新10个字段的大事件,该怎么办?

event-sourcing
1个回答
0
投票

最近,我听到了一些讲话,演讲者告诉您,您需要向事件传递尽可能少的参数,换句话说,就是使事件尽可能小。

我不认为这能成立。如果您正在寻找有关设计活动的好方法,则应查看Greg Young's e-book on versioning

如果您是事件sourcing,那么您主要关心的是确保事件流允许您重新创建域模型的状态。事件本身应表示领域专家将认识到的更改。如果您发现自己试图发明较小的事件只是为了适应一些人为的约束,例如“每个事件不超过三个属性”,那么最终的数据将与您的领域专家的想法完全不符-可以说是技术债务。

© www.soinside.com 2019 - 2024. All rights reserved.