I have product properties (PropertyEntity
) and some matchers (MatcherEntity
) for they. MatcherEntity
must listen for PropertyEntity
and react on changes.
Simple way is handling MatcherIds
in PropertyEntity
, match on the modification and write modification event + matching event with PropertyEntity
command handler. After I can get PropertyEntity
stream and filter needed events. But Matcher
may have short life, all the Matchers
will be a lot, but active a little (inactive ones will never be used again). So I will need a some clean up, which will not be able with one stream.
I have the idea: not write matching event but route to other PersistenceActor with persistenceId = MatcherId and store event. So I will can delete all messages by persistenceId for inactive Matchers
.
Question: how can I call async in entity command handler
Future.sequence(matchers.forEach(matcher => refForMatcher ? UpdateMatching))
and then on success ctx.thenPersist(event) { _ => ctx.reply(Done) }