【发布时间】:2017-01-20 19:53:41
【问题描述】:
我正在学习事件溯源模式,我无法理解其中的一件事。
在许多教程中都有不将实体的当前状态存储在 DB 中的说明。开发人员应该构建一个基础架构,用于从与所需实体相关的数据库中提取所有事件(“事件流”),然后将它们应用于新的所需类型对象,因此最终是当前状态。
让它成为一个银行帐户。要向我的客户返回她当前的帐户状态,我必须:
- 提取所有相关事件(DB 中可能有数千个事件)
- 计算当时的免费金额。
但是性能呢?我认为最好只存储每个帐户的当前状态,一个新事件会立即对其产生副作用。我说的不对吗?
【问题讨论】:
-
这就是事件溯源的重点,您可以从事件中重建状态。如果你不这样做 - 你就没有事件溯源。您可能有审核日志或其他内容。所以很难理解这个问题是关于什么的。
-
@Alexey Zimarev 我询问了如何解决事件溯源模式中的性能问题。我认为我的问题并不难理解。
-
您是否遇到过任何性能问题?
标签: design-patterns repository-pattern event-sourcing