open source. The code quality must be excellent. Must be able to test ‘everything’ relatively easily. Docs must be comprehensive. Must have examples. The creators / community must have social skills. Pull request litmus test. Friday, October 11, 13
identification of ActorRef } def active(actor:ActorRef) : Receive = { // forward messages when active // or become(identify) when actor is terminated } Lookup Actor Friday, October 11, 13
// .. more to follow } def sendIdentifyRequest(): Unit = { val selection = context.actorSelection(path) selection ! Identify(path) } Friday, October 11, 13
context.become(active(actor)) context.watch(actor) case ActorIdentity(`path`, None) => // not found case ReceiveTimeout => sendIdentifyRequest() case msg:Any => // ignore } Friday, October 11, 13
=> deployAndWatch() case msg:Any => // ignore } def maybeActive(actor:ActorRef): Receive = { case Terminated(actorRef) => context.become(deploying) context.setReceiveTimeout(3 seconds) deployAndWatch() case msg:Any => actor forward msg } Similar for a RemoteDeploy Friday, October 11, 13