我正在构建一个使用事件溯源模式的 iOS 应用程序;这个想法是您应该能够通过重播一系列事件随时重建应用程序状态。
每个事件都带有一个 UUID。应用程序的状态存储在一个持久的 Core Data 对象图中。
我对事件溯源的特殊实现保证了“至少一次”将事件传递给客户端。如果发生多次传递事件,我需要确保这些后续传递不会影响对象图。
我想保留一个事件记录——一组已经处理过的事件 UUID。这样,我可以根据事件记录检查传入的事件,如果它们已经被处理,则删除它们。
您将在哪里存储事件记录?
它需要与持久化的核心数据图“同步”。这尤其意味着:
- 如果删除了 Core Data 对象图,那么事件记录也必须删除
- 事件记录必须与核心数据对象图一起保存