在事件溯源中查找事件的最佳方法是什么?

What is the best way to find an event in an event sourcing?

在事件溯源中查找事件的最佳方法是什么?这是我最近对架构师角色提出的一个问题。我说的是事件 ID,但显然答案是错误的。有谁知道最好或最有效的方法是什么?

我认为面试官不是在寻找直接的答案,而是在寻找涉及执行此类操作的分析过程。我相信他期待着回答一些问题,例如:

  • 事件中存储的信息是什么?它上面是否附有一些序列号或时间戳?
  • 事件是如何存储的?它们存储在多节点 NoSQL 数据库或单实例关系数据库中?事件是否由某个键索引?
  • 我有哪些搜索操作的信息?如果我需要(仅)通过事件 ID 搜索事件并且此 属性 未编入索引,那么我别无选择,只能连续浏览所有这些事件。如果我需要搜索特定时间范围内的事件,那么搜索区域可能会大大减少。

根据您得到的回复,讨论将演变为经典搜索方法,例如索引、二分搜索或其他可以减少搜索面的选项。