知识卡片

用快照解决长生命周期聚合的重建性能问题

普通读书笔记卡 · 1980.t

内容

聚合生命周期各有长短:Issue聚合短命(标记完成即近乎终结),Account聚合可能长期积累大量事件。历史事件越多,加载事件与重建聚合的执行效率越低。事件溯源用「快照」(snapshot)解决:定期把聚合以JSON持久化到聚合快照表(注意快照表存的是聚合数据而非事件数据,含聚合类型/ID/内容/时间戳)。创建聚合时直接从快照表按ID取内容反序列化,让聚合「带着记忆重生」,省去从初生到快照点的重建;由于快照未必最新,还需运用快照时间戳之后的领域事件才能回归最新状态。发散:快照是「重放的检查点」,本质是拿存储空间与冗余换重建时间,取舍取决于聚合事件增长速度。

参考来源

- 位置:《解构领域驱动设计》附录B B.2.3(源文件:_epub-src/OEBPS/035.xhtml) - 结论依据:原文说明快照持久化聚合数据、按ID重建再应用快照后事件的机制。 - 原始内容:事件溯源通过快照(snapshot)来解决此问题……快照表持久化的是聚合数据,而非事件数据……还需要运用快照时间戳之后的领域事件,才能……回归到最新状态。