重播来自Akka.net Persistence Journal的活动

时间:2016-02-16 13:35:12

标签: akka persistence cqrs event-sourcing akka.net

我正在使用Akka.Net和Akka.Net.Persistence与SQL Server期刊实施CQRS / ES解决方案。到目前为止,一切似乎都使用默认的sql-server插件。

要验证的最后一件事是能够从特定AR重新加载/重播事件,例如重建读取模型或填充读取模型的新实现投影。我将这样做的方法是从de DB中读取事件并将它们放在事件总线上或直接放入“投影演员”的邮箱中。

我似乎无法找到手动重新加载事件的任何示例,除了自己查询Journal表(执行sql查询)和使用内置的序列化程序之外我基本上都坚持这个。

是否有人试图或多或少地做同样的事情?

1 个答案:

答案 0 :(得分:3)

根据您的需要,有几种方法:

  1. 使用PersistentView - 它是一个专用的actor,它与某个特定的持久化actor相关联,并且它能够接收它的事件以从它们构建一些不同的状态。它是只读的。 优点:它会使自己保持与最新的事件由持久性演员生成(但更新之间会有一些延迟)。 缺点:它与单个actor有关,它不能用于聚合其中许多动作的事件。
  2. 使用日记查询(仅限SQL日志) - 它允许您使用某些特定过滤器查询日记。 优点:它可用于多个聚合。 缺点:它不会自动保持最新,您需要发送后续查询才能获得更新。我不确定,如果它有官方文档,但流程本身被描述为here
  3. PS:一些日志实现有自己的专用序列化程序,但不是基于SQL的序列化程序。相信我,你永远不想依赖默认的序列化程序来坚持事件。