哪些代理支持为崩溃的客户端内置恢复子发布丢失的消息?

What brokers supports built-in recovery of sub-pub missed messages for crashed clients?

在事件溯源场景中,崩溃的事件消费者客户端应该得到源在关闭时发布的所有错过的事件消息。

恢复算法(假设它是正确的)将是:

  1. 订阅事件源(连接1)

  2. 请求服务器(连接 2)自给定时间戳(崩溃前)以来所有丢失的消息("missed-pack");并在本地应用错过的事件

  3. 开始从订阅连接中读取消息,应用那些时间戳大于从错过的包中应用的最后一个消息的消息。 (在这里,我们假设在订阅和第一次读取之间发布的所有消息都将传递给客户端。也许,一些最先读取的消息将是错过包中的最后一条消息,因此要小心)。

哪些代理(消息代理、非sql 数据库...)支持编程 这个恢复过程"out of out the box",即不必服务器(事件源)端的程序。

谢谢。

也许您正在寻找的是 "catch up subscription" 功能。 Get Event Store 完全支持它。但这实际上是一个数据库,但具有出色的基于主题的 pub/sub 功能,还有一个 http API。

您可能还不知道的是,您可以自己做到这一点,只需制作一个消费者驱动的订阅,消费者知道最后一个检查点(绝不是时间戳,这会导致严重的并发问题)成功的地方加工,而不是生产者。所以客户端总是可以从它离开的地方恢复。

希望对您有所帮助