这是关于ES的一般架构问题。关注点通常是需要保留大量的业务非重要事件,影响中间状态,但我们肯定不会在一天结束时关心它们(只会忽略它们)。
假设我们有一个用户,它有一个项目列表(即任务),用户可能经常添加/删除/编辑任务的不同字段。如果我们正在构建ES,我们应该将每个更新视为单个事件,例如TaskNameChange
,TaskCommentChange
等,或者我们可能有一个事件TaskModified
。 在我们的案例中,任务状态更改对我们来说实际上并不重要,我们是否从任务更改历史中获得了很多,从业务角度来看,我们只会关注最后一个(例如,last {{ 1}}),但我们应该跟踪并记录所有事件。
我的关注点是,我们应该在事件存储中记录并保留大量无意义的事件。
有没有人遇到过这种情况,有什么想法呢?
答案 0 :(得分:2)
有没有人遇到过这种情况,有什么想法呢?
课程的马匹
如果与保留文档的完整事件支持历史记录相关的成本超过了您可以从该历史记录中累积的业务价值,那么请不要将系统设计为保留所有历史记录。设置文档存储,在每次保存时覆盖文档的先前版本,然后继续使用它。
Greg Young:a whole system based on event sourcing is an anti pattern。