Ich entwerfe ein Backend mit CQRS + Event Sourcing, mit Akka + Scala. Ich bin mir nicht sicher, wie ich mit einem wachsenden Staat umgehen soll. Zum Beispiel werde ich eine wachsende Liste von Benutzern haben. Nach meinem Verständnis wird jeder Benutzer nach einem UserCreated-Ereignis erstellt, solche Ereignisse werden vom PersistentActor wiedergegeben und die Benutzer werden in einer Sammlung gespeichert. Etwas wie:Event-Sourcing mit Akka-Persistance: Wachstumszustand als Liste?
class UsersActor extends PersistentActor {
override def persistenceId = ....
private case class UsersState(users: List[User])
private var state = UsersState()
....
}
Offensichtlich solcher Zustand würde schließlich wachsen zu groß wird, in Erinnerung von diesem Schauspieler gehalten, so dass ich glaube, ich bin etwas falsch zu machen.
Ich fand this Beispielprojekt: die Idee scheint, dass jeder Benutzer von einem anderen Akteur gehalten werden sollte, und geladen (aus der Ereignishistorie) wie benötigt.
Was ist der richtige Weg? Danke vielmals.
Event Sourcing ist nicht für alle Teile der Anwendung geeignet. Benötigen Sie die Liste aller Benutzer, um sie abzufragen, damit sich Benutzer an- oder abmelden können? – jazmit
Danke für deinen Kommentar @jazmit - nein, ich muss nicht alle Benutzer gleichzeitig "präsentieren". Ich studiere das Projekt, das ich verlinkt habe, es scheint nur den Gegenstand aufzublasen, den er braucht, um ihn zu bedienen oder zu aktualisieren. Hast du weitere Hinweise? – ticofab
Ja, aber das Seed-Projekt verwendet einen persistenten Darsteller pro Benutzer .. immer noch nicht sicher, was genau Sie suchen, ist das einzige, was ich sagen kann, ist nicht zu Domain-Akteure mit immer wachsenden Zustand zu entwerfen .. – jazmit