Hi Kostas, I have few micro-services and some supervisor actors which inherited from an AbstractSupervisor template which uses local caches per microservices with an optimistic approach, example with requirements:
1) There is a uniform pattern where each micro-service is an independent category and also each category has the capability of being either a round-robin supervisor only or a supervisor with children (sharding) 2) Each category informs other categories by using cluster events when a supervisor comes up and/or any/of its children. 3) If a supervisor dies, also its children die which means that other supervisors in other categories are informed hence the cache for that supervisor is invalidated. 4) Each children has an Integer ID, say, category account and account 1, 2, ...., 10 so I don't bother giving a path to children, I know a children of account is ../acccount/$blah blah incarnation, so what I do to inform caches of other microservices that Account ID X = ActorRef Y All this would suggest that cluster sharding is what I use but no, it is very similar but I have my own implementation constrained more to a DDD. I probably confused you more than what I helped you, all I wanted to say is that caching a key with a corresponding ActorRef is not a bad idea, of course if one of your microservices goes down you need to invalidate caches in order to avoid actor selection calls which I would discourage you to do, instead (but not free since I had to put lot of work on contemplating different scenarios), do an inventory of your events and try to react on them. I particularly designed the application to build the caches using cluster events and template pattern (preStart and postStop for some type of actors would inform other caches) Having also an uniform hierarchy will help like supervisor -> children so that you can add or invalidate a whole branch (I do that too with my mini-framework) Hope all these crazy ideas can help you. Best regards, Guido. On Friday, November 6, 2015 at 4:15:24 PM UTC, Kostas kougios wrote: > > Well, I refactored my code to cache actorpaths but indeed during creation > all actorpaths are local and when they are transmitted over the wire they > remain local => pointing to the wrong path. > > I've manually modified the address part of the path myself so that it > contains the host & port of the server. But the process seems awkward , am > I missing something? > > -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+unsubscr...@googlegroups.com. To post to this group, send email to akka-user@googlegroups.com. Visit this group at http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.