How is read side actually implemented? Lagom doc doesn’t give the actual implementation details. Is it based on polling or events? What are the limitation of Aggregate tags? My assumption - Event generated after persisting in cassandra is propagated to read side by sending msg to akka actor system, here actor being ReadProcessor and the shardkey is the aggregateTag!
It’s based on Akka Streams. An actor is started for each aggregate tag, and that actor in turn materializes a stream of events for that tag.
The actual implementation of the event stream is pluggable (by akka persistence plugins). Both JDBC and Cassandra persistence plugins will ultimately use a polling mechanism to read events from the database.
Thanks for answering. Does this mechanism ensure ordering?
The general approach of Akka Persistence (which powers Lagom persistence) is that the order of events is guaranteed to be preserved per persistent entity, but not globally.
1 Like