Akka + Scala を使用して、CQRS + イベント ソーシングを使用してバックエンドを設計しています。成長している状態を処理する方法がわかりません。たとえば、ユーザーのリストが増えていきます。私の理解では、各ユーザーは UserCreated イベントの後に作成され、そのようなイベントは PersistentActor によって再生され、ユーザーはコレクションに保存されます。何かのようなもの:
class UsersActor extends PersistentActor {
override def persistenceId = ....
private case class UsersState(users: List[User])
private var state = UsersState()
....
}
明らかに、そのような状態は最終的にこのアクターがメモリに保持するには大きくなりすぎるため、何か間違ったことをしていると思います。
このサンプル プロジェクトを見つけました。各ユーザーを異なるアクターが保持し、必要に応じて (イベント履歴から) ロードする必要があるようです。
これを行う正しい方法は何ですか?どうもありがとう。