根据Akka.net和Eventstore,我有一个问题要坚持演员事件。
假设我有一个带有父actor和 n 子actor的actor系统,给出以下场景:
- 每个儿童演员都可以坚持不同类型的活动。
- 儿童演员只有在必须执行某些工作时才会开始。当儿童演员完成工作时,它将被终止。
- 父演员接受所有要做的工作。该工作由Id标记。此Id可以由子actor的streamId引用。
- 当收到工作时,子actor将启动并从eventstore重播其事件(如果系统中已存在某些事件)。
- 父actor不知道eventstore中存在哪个子streamId。
新的用例需要父进程接收到特殊类型的命令(例如 calculateDelta )时才需要执行以下操作:
- 从儿童演员那里获取一个定义类型的事件的所有流(例如
myDeltaInformationChanged
- 计算哪个子actor持有 myDeltaInformationChanged 事件,因为父actor最后一次收到 calculateDelta 命令。
- 收到 calculateDelta 命令时所需的信息只是 myDeltaInformationChanged 事件的一部分。
问题:
我有两种方法可以在具有eventstore的akka系统中完成此操作:
- 通过从子actor到父actor的消息发送 myDeltaInformationChanged 事件,并将事件保存在父actor的事件流中。
- 使用所有 myDeltaInformationChanged 事件在eventstore中创建投影。
醇>
实现这样的用例的首选方法是什么?
因为在akka中,默认情况下不保证传递消息,
没有努力。我还必须保证交付
myDeltaInformationChanged 从孩子到父母。