假设使用Akka Typed实现的应用程序具有一个持久化actor。该持久化actor在其操作的一部分中创建短暂(或非持久化)子actor,每个子actor都有一个唯一的ID,并且这些ID是持久化状态的一部分。持久化actor还需要与其子actor进行通信,但我们不想将子actor的ActorRef持久化,因为它们不是状态的一部分。在恢复期间,持久化actor应该基于恢复的状态重新创建其子actor。这似乎不是一个非常不寻常的用例,我正在尝试找出最干净的实现方式。我可以在命令处理程序中的andThen Effect中创建子actor,该命令处理程序用于副作用,但是从那里没有办法保存子actor的ActorRef。这似乎是类型持久性API的一个更普遍的特征——对于持久化actor中的非持久化状态(在本例中可用于存储短暂的子actor ActorRef),非常难以实现。我想到的一个解决方案是创建一个“代理”actor来创建子actor,保持ID和ActorRef的映射,并根据ID转发消息。持久化actor保持对该代理actor的引用,并每次需要创建新子actor或向现有子actor之一发送内容时都会联系该代理actor。虽然我对此有好坏参半的感觉,但如果有人可以指出更好的解决方案,我将不胜感激。