I have a setup where I have a huge number of actors running which are spread across machines and a HTTP service which will talk to these Actors.
The HTTP service resolves a RemoteActorRef on every request, sends a message to it and completes the request. After doing that the RemoteActorRef is left orphan.
Following questions are in concern machine which is running the HTTP service -
- Is there any link created between local actorSystem with the resolved RemoteActorRef?
- Does RemoteActorRef just represents the string ActorPath or it also has some extra mechanism to route messages to the actor (like a local proxy)?
- Are the RemoteActorRefs garbage collected?
- Should I be worried about any kind of resource leak?
So far my understanding after reading the Akka code is:
- The only link between local ActorSystem and RemoteActorRef is that there is a field
localAddressToUsein RemoteActorRef which holds the path of the local actor system (and there is no parent child relationship or proxy between them).
- ActorRefs are garbage collected.
Let me know if my understanding is correct or if I am missing anything.