首页 > 解决方案 > 带有事件溯源的逻辑删除(可能带有敏感数据/GDPR)

问题描述

我知道事件源应该是不可变的并且只能附加。

但是,我想知道如何处理逻辑删除。如果用户在 UI 上单击“删除”并且他们期望硬删除,我是否在我的事件中包含 IsDeleted 标志?这里还有其他选择吗?

编辑:当周围有敏感数据时,这个问题特别感兴趣,可能存储在事件本身中,并且用户希望它完全从我们的系统中闪现出来。这可能与欧盟 GDPR 法规和法律有关。

标签: cqrsevent-sourcingsensitive-data

解决方案


您可以发布一个“已删除”事件,该事件将在您的读取数据库中删除/标记数据为已删除,但这不是硬删除(您在问题中指定)。您的事件存储中仍然会有数据。

使用事件溯源时,硬删除实际上非常困难。我假设您正在使用事件源客户数据?通常有一些解决方案,但它们并不是很漂亮:

  • 您要么不对敏感的客户数据进行事件源,而是单独存储它,然后以某种方式从聚合中引用它

  • 您可以删除旧事件(请注意,这可能会超出您的预期,但这取决于您的设计/应用程序)

  • 您可以添加已删除的事件并更改现有事件以去除敏感数据。


推荐阅读