By now, the business logic of Actorbase actors is very confused and dirty. Introduce the Cameo pattern from Effective Akka to simplify and clean business logic.
By now, the business logic of StoreFinder actors is very confused and dirty. Introduce the Cameo pattern from Effective Akka to simplify and clean business logic.
By now, information that is stored by Storekeeper actors is volatile (in memory only). Try to think how to use Akka Persistence features to persist information in a permanent way.
In a distributed environment it is easy that due to network problems, a message could be sent more the one time. Every actor inside an Actorbase system should be able to discard messages that he already processed.
It is feasible to maintain a cache of the processed messages limited in time (possibly configurable).
Actually, Storekeepers inside a StoreFinder handle information using a random policy. When Actorbase asks a StoreFinder to store a new key/value couple, it forwards to the Storekeeper that has the smaller mailbox in that moment.
More policies other than the above should be available.
The generation of a UUID could be a heavy process. Verify when it is strictly necessary to have a UUID and when it is sufficient to relax the uniqueness over time of such identifiers.