知识卡片

事件存储持久化的是事件而非聚合

普通读书笔记卡 · 1980.q

内容

事件溯源以追加形式持久化领域事件,从而不受聚合持久化机制的限制(对象关系阻抗不匹配、复杂一致性、历史记录存储等)。它持久化的不是聚合,而是由聚合状态变化产生的领域事件,这种方式称为事件存储(event store)。事件表记录事件的ID、类型、关联聚合、内容、时间戳,其中内容是重建聚合的数据来源;因需支持各类事件、存储不同结构的数据值,通常用JSON字符串(含eventId/eventType/aggregateType/aggregateId/eventPayload/occuredOn)。只要eventPayload可解析,事件也可存于关系数据库。领域事件包含的值必须是订阅方需要了解的信息,否则无法据以重建聚合。发散:设计事件payload时以「重建聚合+订阅方所需」为准,既不要贫瘠也不要塞入无关数据。

参考来源

- 位置:《解构领域驱动设计》附录B B.2.1(源文件:_epub-src/OEBPS/035.xhtml) - 结论依据:原文说明事件存储持久化事件、事件表字段、JSON payload及重建要求。 - 原始内容:事件溯源持久化的不是聚合,而是由聚合状态变化产生的领域事件。这种持久化方式称为事件存储……领域事件包含的值必须是订阅方需要了解的信息。