I have a domain problem where the graph of actors (actors as nodes of graph 
and links represent communication channels between actors) is not dictated 
by the natural supervisory hierarchy but by external configuration of 
connectivity between actors - which is stored in Neo4j. Most of the actors 
representing nodes of the graph are long-living in nature. Other 
characteristics include 

- Short-lived actors never form part of the "actor graph". End users (not 
necessarily humans always) can control the lifecycle of nodes and edges of 
graph. - 

- Lifecycle of actors (nodes of graph) is aligned with the lifecycle of 
corresponding nodes in graph-db. This rule also applies to edges. So when 
one of actors receive a specific message, it has to query the graph 
database and 
  route the message to other actors. Receiving actor may or may not execute 
any other business-logic before forwarding message to other actors. 

So, I am thinking of following option : 

Have some neutral Actor-identifier stored in the Neo4j with ActorRef as as 
one of node attribute and use the graph query mechanisms for various query 
types (immediate neighbors, immediate neighbors filtered based on edge 
properties etc etc) and determine the target actors to which the messages 
could be forwarded. I would have to think about the robustness aspects of 
actor-deaths and probably caching query-results from Neo4j within each 
actor for specific type of query (so that we do not hit Neo4j for each and 
every message) etc. But I could think of such cases once the basic approach 
is decided. 

Above approach is effectively trying to treat Neo4j as a logical 
graph-overlay for actors. 

I wanted to get opinions from experiences of others. 

PS : I would still use supervisor actors primarily for managing the 
activities such as child-restart upon crash and supervisor actors need not 
necessarily form part of actor-graph. 

Thanks in advance

Muthu

-- 
>>>>>>>>>>      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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to