我目前正在尝试了解如何构建事件存储的内部结构。到目前为止我得到了什么:
- 一个事件存储有两个表(集合,...),一个用于聚合,一个用于事件。
- 聚合表包含以下数据:(
aggregateId
可能是一个 GUID)和aggregateVersion
(它是一个整数,仅表示影响此聚合的最后一个事件的数量)。 - events 表包含以下数据:(
eventId
同样是一个 GUID)、aggregateId
(事件所属的)payload
、 和 aversion
(它是一个简单的整数,用于描述事件的顺序)。
到目前为止这是正确的吗?是否应该使用整数对事件进行排序?还是应该根据时间戳对它们进行排序?各有什么优势?有什么缺点?