10

我正在使用 Akka + Scala 使用 CQRS + 事件源来设计后端。我不确定如何处理不断增长的状态。例如,我将拥有越来越多的用户列表。据我了解,每个用户都将在 UserCreated 事件之后创建,此类事件将由 PersistentActor 重播,并且用户将存储在一个集合中。就像是:

class UsersActor extends PersistentActor {

    override def persistenceId = ....

    private case class UsersState(users: List[User])

    private var state = UsersState()

    ....
}

显然这种状态最终会变得太大而无法被这个演员记住,所以我想我做错了什么。

我找到了这个示例项目:这个想法似乎每个用户都应该由不同的参与者持有,并根据需要(从事件历史记录)加载。

这样做的正确方法是什么?非常感谢。

4

1 回答 1

2

答案是:每个聚合/实体(在我的示例中,每个用户)都有自己的参与者,它嵌入了该特定实体的状态,并且只嵌入了那个。

于 2015-12-04T10:24:23.730 回答