我目前正在尝试理解如何构建事件存储的内部结构。以下是我目前得到的信息:
- 事件存储有两个表(集合),一个用于聚合,另一个用于事件。
- 聚合表包含以下数据:
aggregateId
(可能是GUID)和aggregateVersion
(它是一个整数,仅表示影响此聚合的最后一个事件的编号)。 - 事件表包含以下数据:
eventId
(同样是GUID)、aggregateId
(事件所属的聚合)、payload
和version
(它只是描述事件顺序的整数)。
到目前为止,以上翻译是否正确? 事件应该使用整数进行排序还是应该基于时间戳进行排序?每种方法的优点是什么?缺点是什么?