I'm trying to figure out if my usage of passing Akka ActorRef
around to other actors is not an anti-pattern.
I've a few actors in my system. Some are long lived (restClientRouter
,publisher
) and some die after that they have done the work (geoActor
). The short-lived actors need to send messages to the long-lived actors and therefore need their ActorRef
s.
//router for a bunch of other actors
val restClientRouter = createRouter(context.system)
//publishers messages to an output message queue
val publisher: ActorRef = context.actorOf(Props(new PublisherActor(host, channel)), name = "pub-actor")
//this actor send a message to the restClientRouter and then sends the response
//to the publisher
val geoActor = context.actorOf(Props(new GeoInferenceActor(restClientRouter, publisher)), name = "geo-inference-actor")
As you can see I'm passing the ActorRefs (restClientRouter
and publisher
) to the constructor of GeoInferenceActor
. Is this okay or not? Is there a better way of doing this ?