【发布时间】:2020-01-07 02:15:08
【问题描述】:
David Schmitz 提到了在事件源系统in this talk 中删除用户数据的解决方案。它的工作原理是这样的:
- 删除用户的所有事件
- 为此特定用户发出 Tombstone 事件
- 其他服务也可能监听 Tombstone 事件并清理数据
问题 #1
墓碑事件写入哪个流?
特定用户的事件流?还是有专门针对墓碑事件的事件流?
此外,为了保留一些数据(例如用户的 id),他建议将用户流拆分为公共和私有事件流。 (Reference to the talk)
问题 #2
您实际上如何将事件附加到两个流?
假设一个命令需要将一个事件附加到公共和私人用户流。您如何确保两个事件都已附加?事件存储是否将SomeUserEventHapppendPrivate 和SomeUsererEventHappendPublic 都发布到事件总线?您会为两个流独立创建快照吗?在我看来,这似乎是很多开销。
附:我也想听听其他策略(除了加密事件然后删除密钥)来删除事件源系统中的数据。
【问题讨论】:
标签: microservices domain-driven-design cqrs event-sourcing