Thanks for the reply Tony. From your answer, I am assuming that Fey does
not have the ability to be fault tolerant. This means, using more than one
runtime to host/execute agents, managing the fail-over in a transparent
manner.

Before we start discussing a feature suggestion, what is a cluster in Fey
Jargon?

Also, in Fey's Github README file I read the following: "Remote invocation
of actors make it possible for Orchestrations running in one location to
interact with Orchestrations running in another where services not
available locally can be accessed". When I read that I felt that I could
invoke remote agents (performers in different runtime) in a transparent
manner. By transparent here I mean, sending a message to an agent using an
identifier, and then the platform (Fey) takes care of locating the agent
and actually delivering the message.

On Thu, May 25, 2017 at 5:22 PM, Tony Faustini <[email protected]> wrote:

> Hi Rafael, good question what is meant by a Fey cluster? The Fey that I
> can download today runs at on single server (say a Raspberry Pi at the low
> end) and I would like also to run Fey at the Cluster level (say on a Mesos
> cluster). My use case of has Fey running standalone on micro-servers that
> are connected to the cloud. At the cloud I am running a Mess cluster and I
> want to replace some existing technology running on Mesos with a version of
> Fey that will run across that Mesos Cluster. This is one meaning of running
> Fey as a cluster that I would like to see. I would like to see my
> performers with upwards and downwards scalability over a cluster.
>
> Just for clarification my use case doesn’t look at the micro-servers and
> the cloud Mesos cluster as one large network on which I want to run a
> single instance of clustered Fey. It’s a simpler use case in which each
> micros-server runs a standalone version of Fey and on my Mesos cluster I
>  need a version of Fey on the iota roadmap that will allow me to distribute
> my orchestrations/performers across my Mesos cluster. Since Akka is part of
> the SMACK stack (Spark, Mesos, Akka, Cassandra and Kafka) there may already
> be a way of running Fey on a Mesos cluster. I would like to see the Fey
> cluster version on the iota dev roadmap.
>
> There might be some interesting use cases in which Akka remoting might be
> used. I would love to hear about them and in general other use cases that
> folks have in mind for Fey.
>
> -Tony
>
>
> On May 25, 2017, at 11:58 AM, Rafael Weingärtner <
> [email protected]> wrote:
>
> Thanks for the feedback Barbara. Lucas is in route today, so I am
> answering on his behalf.
>
> I think our confusion is with this expression “cluster context”.
> What do you (Fey) see as a cluster? Only a group of performers (agents) in
> the same runtime (JVM)?
>
> Also, about these security issues, are you talking about the security
> (confidentiality and integrity) of data transmitted from one performer to
> the other remotely?
> Regarding performers being unreachable; this might be the case if they are
> inside a NAT. However, in the IoT space, the idea is to plug everything
> directly to the Internet using IPv6; so, this should not be a problem,
> right? At least that is how I see this expression; I do not work with IoT,
> so I am probably wrong here.
>
> Having said that, our necessity is not in the IoT space, but still, Fey’s
> design fits quite well our system’s requirements. The only point is that we
> need our agents/performs to be fault-tolerant in case their runtime
> crashes. Therefore, redundancy for the performers (agents) platform is a
> must.
>
> If this is interesting for Fey as a community we could start working
> together on this matter.
>
> On Thu, May 25, 2017 at 1:25 PM, Barbara Malta Gomes <
> [email protected]> wrote:
>
>> Hi Lucas,
>>
>> Unfortunately Fey does not support remote connection between performers.
>>
>> Fey is not meant to be a connectivity protocol like MQTT or other
>> messaging framework.
>> The reason we do not implemented remote actors outside of a cluster
>> context is because of security and also in most use cases the Performers
>> will be unreachable from the "outside" (in a intranet).
>>
>> What we have today is an MQTT publisher Performer on one side and a MQTT
>> subscriber in the other side.
>>
>> But we can definitely discuss more about implementing this functionality
>> on Fey.
>>
>> Regards,
>>
>>
>> On Wed, May 24, 2017 at 12:55 PM, Lucas Berri Cristofolini <
>> [email protected]> wrote:
>>
>>> Both, actually...
>>>
>>> I suppose clusterization for fault tolerance is actually a more
>>> immediate concern, but the ability to run performers remotely is very
>>> interesting as well :)
>>>
>>> On May 24, 2017 4:47 PM, "Rafael Weingärtner" <
>>> [email protected]> wrote:
>>>
>>>> Do you want only peer-peer communication? Or do you want clustering of
>>>> agents for fault-tolerant systems?
>>>> http://doc.akka.io/docs/akka/snapshot/java/common/cluster.html
>>>>
>>>> On Wed, May 24, 2017 at 3:27 PM, Lucas Berri Cristofolini <
>>>> [email protected]> wrote:
>>>>
>>>>> Yup, that worked just fine!
>>>>>
>>>>> I wrote the example you showed at ApcheCon in Java to test it out, and
>>>>> I was now wondering if it is possible to run the two performers in that
>>>>> ensemble in separate hosts. I suppose this would be akin to Akka's
>>>>> 'remoting' (http://doc.akka.io/docs/akka/snapshot/java/remoting.html).
>>>>>
>>>>> I saw some of the examples in GitHub but it isn't quite clear to me
>>>>> what I need to set in order for the performers to be able to communicate 
>>>>> in
>>>>> that scenario. Are there any settings I can specify in the orchestration
>>>>> json to point to the remote host that would be running the other 
>>>>> performer?
>>>>>
>>>>>
>>>>> PS: Thanks for the quick reply yesterday!
>>>>>
>>>>> On Tue, May 23, 2017 at 3:35 PM, Barbara Malta Gomes <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi Lucas,
>>>>>>
>>>>>> Good to hear that you are trying out iota.
>>>>>>
>>>>>> Sure, you can definitely write the performers in java.
>>>>>> You just have to do like you said, add the Fey .jar as a dependency,
>>>>>> implement a Performer that inherits from the FeyGenericActor and override
>>>>>> the functions.
>>>>>>
>>>>>> Once you have done that, generate the .jar for the performer and use
>>>>>> it on Fey.
>>>>>>
>>>>>> Let us know if you have any problems.
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> On Tue, May 23, 2017 at 11:27 AM, Lucas Berri Cristofolini <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hello, Iota community! :)
>>>>>>>
>>>>>>> One of my colleagues watched Barbara's talk at ApacheCon 2017 in
>>>>>>> Miami, and we were really interested in the way the Fey Engine works.
>>>>>>>
>>>>>>> I've been wanting to try it out since then but only got around to it
>>>>>>> today, and after going through the GitHub page for the project and
>>>>>>> Barbara's slides, I'm wondering if it is possible to write the 
>>>>>>> performers
>>>>>>> in Java, since the Engine seems to take compiled .jars.
>>>>>>>
>>>>>>> If that's possible, how would one go about doing it? Is it just a
>>>>>>> matter of adding the fey engine as a dependency and overriding the right
>>>>>>> functions?
>>>>>>>
>>>>>>> Cheers!
>>>>>>> Lucas
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Barbara Gomes
>>>>>> Computer Engineer
>>>>>> San Jose, CA
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Rafael Weingärtner
>>>>
>>>
>>
>>
>> --
>> Barbara Gomes
>> Computer Engineer
>> San Jose, CA
>>
>
>
>
> --
> Rafael Weingärtner
>
>
>


-- 
Rafael Weingärtner

Reply via email to