Re: [akka-user] Get ActorSystem as part of a stream materialization process

2016-07-30 Thread Alexey S
I'm trying to bind stream life-cycle to an actor life-cycle (let's call it
master actor). In a sense that if the stream is destroyed - the master
actor receives some Termination message but stays alive, but if the actor
is destroyed - the stream has to be shut down as well.
When I construct part of the stream flow, that has to be responsible for
the logic above, I have only an ActorRef of the master actor I want bind
the stream life-cycle to.

Originally I wanted to do the following: during stream materialization I
get its KillSwitch and create an aux actor with KillSwitch and master
ActorRef as parameters. The aux actor will create a watch for the master
actor and kill the stream using KillSwitch, once master actor shuts down.

As an alternative I can probably create a branch in the flow, filter off
all the possible events/messages and attach the master actor as a
Sink.actorRef.

WDYT?

Thanks.

WBR,
Alexey

On Sat, Jul 30, 2016 at 1:41 PM, Konrad Malawski <
konrad.malaw...@lightbend.com> wrote:

> Not using safe APIs.
> But instead I'd turn around the question and ask what you're trying to
> achieve?
> Perhaps there's a cleaner way than reaching out to the ActorSystem.
>
> --
> Konrad `ktoso` Malawski
> Akka  @ Lightbend 
>
> On 30 July 2016 at 22:39:47, oleksiys (kvr...@gmail.com) wrote:
>
> Hi,
>
> is it possible to get access to the ActorSystem, that is being used to
> materialize the stream during materialization?
>
> Something like:
>
> Flow[String].viaMat(*ExposeActorSystemMat.instance*).mapMaterializedValue(actorSystem
> => doSomethingWithActorSystem(actorSystem))
>
> Thanks.
>
> WBR,
> Alexey
> --
> >> 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 https://groups.google.com/group/akka-user.
> For more options, visit https://groups.google.com/d/optout.
>
>

-- 
>>  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 https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.


Re: [akka-user] Dynamically move proxied journal (PersistencePluginProxy) to another node

2016-08-09 Thread Alexey S
>
>> The problem with the PersistencePluginProxy.start(system) is that AFAIU
>> it checks the actual actor system config before it decides how exactly to
>> start the plugin, and if in the config it say "start-target-journal=false"
>> (as in my case) it won't start the underlying journal.
>>
>
> No, it doesn't. See here: https://github.com/akka/akka/blob/master/akka-
> persistence/src/main/scala/akka/persistence/journal/
> PersistencePluginProxy.scala#L26
>
> Note that it only works for the default plugin (null). I think there are
> other places in the PersistencePluginProxy where it only works for the
> default plugin.
>

I understand the code you mentioned above as "PersistencePluginProxy only
works *as* default plugin".
Otherwise why does it need the target plugin ids config for the journal and
snapshot?

And this is
https://github.com/akka/akka/blob/master/akka-persistence/src/main/scala/akka/persistence/journal/PersistencePluginProxy.scala#L80

where it decides whether to start the target plugin or not.

Thanks!

WBR,
Alexey.





>
>
>>
>> That's why I'm using that semi-hacky way to force the underlying journal
>> plugin to start.
>>
>> Thanks.
>>
>> WBR,
>> Alexey
>>
>> On Sunday, August 7, 2016 at 8:40:19 AM UTC-7, Patrik Nordwall wrote:
>>>
>>> As far as I can see the PersistencePluginProxy can only be used with the
>>> default journal plugin and then you would use PersistencePluginProxy.sta
>>> rt(system).
>>>
>>> I hope you need this for testing. PersistencePluginProxy is not intended
>>> for production usage.
>>>
>>> Regards,
>>> Patrik
>>>
>>> On Sat, Aug 6, 2016 at 12:46 AM, oleksiys  wrote:
>>>
 Hi,

 I have a usecase, where I'd like to be able to move the proxied journal
 from one cluster node to another.
 Looks like I can redirect all the journal clients using:

 *PersistencePluginProxy.setTargetLocation(someNewLocation)*

 But now on the cluster node, that has to host the journal I need to
 actually start the actual journal plugin (considering the default journal
 plugin is proxied-journal).
 So I need a way to start a non-default journal plugin at runtime.

 The closest I could get to it was:

 *Persistence(system).adaptersFor(journalPluginId)*

 it looks a bit hacky, but unfortunately:

 *Persistence(system).journalFor(journalPluginId)*
 *Persistence(system).snapshotStoreFor(snapshotStorePluginId)*

 are all in the private[akka] scope.

 Any suggestions?

 Thank you.

 WBR,
 Alexey

 --
 >> Read the docs: http://akka.io/docs/
 >> Check the FAQ: http://doc.akka.io/docs/akka/c
 urrent/additional/faq.html
 >> Search the archives: https://groups.google.com/grou
 p/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+...@googlegroups.com.
 To post to this group, send email to akka...@googlegroups.com.
 Visit this group at https://groups.google.com/group/akka-user.
 For more options, visit https://groups.google.com/d/optout.

>>>
>>>
>>>
>>> --
>>>
>>> Patrik Nordwall
>>> Akka Tech Lead
>>> Lightbend  -  Reactive apps on the JVM
>>> Twitter: @patriknw
>>>
>>> --
>> >> Read the docs: http://akka.io/docs/
>> >> Check the FAQ: http://doc.akka.io/docs/akka/c
>> urrent/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 https://groups.google.com/group/akka-user.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
>
> Patrik Nordwall
> Akka Tech Lead
> Lightbend  -  Reactive apps on the JVM
> Twitter: @patriknw
>
> --
> >> 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 a topic in the
> Google Groups "Akka User List" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/
> topic/akka-user/dVevEhJNKBw/unsubscribe.
> To unsubscribe from this group and all its topics, 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 https://groups.google.com/group/akka-user.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
>>  Re