RE: Fakka - F# Akka and the role it could play for f# broader

22 views
Skip to first unread message

Ryan Riley

unread,
May 21, 2013, 7:15:35 PM5/21/13
to Colin Bull, fsharp-o...@googlegroups.com
appeal
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_Part_78_1487008.1369166435760"

------=_Part_78_1487008.1369166435760
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit

Glad you found fracture useful! You probably noticed it is windows
only, at the moment. Dave and I were discussing whether to use libuv to
allow it to work cross-platform. Would that help you? Also, please
suggest features or improvements in the github issues! I know it looks
like we may have abandoned it, but we have just been deliberating what
comes next ... for an extended period. :)

Sent from my Windows Phone
From: Colin Bull
Sent: 5/21/2013 3:00 PM
To: fsharp-o...@googlegroups.com
Subject: Re: Fakka - F# Akka and the role it could play for f# broader
appeal
Hey All,

In the past week or so I have had sometime and began looking at this. The
code can be found at https://github.com/colinbull/Fsharp.Actor.



At the minute, the following features are in a working(ish) state,

- *Remoting* bit is built around Fracture (
https://github.com/fractureio/fracture) this seems to work quiet nicely,
but I have no idea weather the way I am using it is the intended usage
pattern, or not.
- *Supervisors*
- *Dynamic Behaviours*


There is still lots and lots of work todo but let me know what you think.

Cheers

Colin

On Monday, April 22, 2013 9:22:41 AM UTC+1, hm wrote:
>
> Simon,
>
> I haven't been checking this forum for a while, and this thread is about a
> month old. So not sure if you have made any further progress since.
>
> Anyway, I'd be interested in (actually: I am) looking into suitable
> abstractions and foundations for a message-based distribution framework for
> F# as well. Important aspects for my own applications are proper handling
> of back pressure, dynamic topology changes and fairness and priority
> management for the underlying scheduling.
>
> If this is a project you'd still be interested in setting up and are
> looking for helping hands, please let me know.
>
> - Martin
>
> On Sunday, March 24, 2013 3:40:08 PM UTC-7, Simon Skov Boisen wrote:
>>
>> Hello,
>>
>> At NDC 2013 I will be giving a talk on F# agents entitled 'Building clean
>> cohesive and concurrent systems with f# agents'. That together with the
>> communities wishes to really solidify f# as a language with distinct
>> business-friendly features that Microsoft should be prioritizing more
>> heavily has gotten me thinking that something like more featurefull
>> agent-framework akin to AKKA would fit well with MS' overall strategy of
>> cloud through Azure.
>>
>> These are some of the more obvious features of AKKA (and erlang) that I
>> think is missing in f#:
>>
>> * Durable mailboxes
>> * Distributed agents
>> * Supervison in a agent-tree
>>
>> Now supervision-trees I believe can be implemented on a local machine
>> with relative ease but it gets much harder when your supervising remote
>> agents.
>> The distributed messages faces smallish challenges of serialization of
>> Discriminated Unions and bigger once with the ability to guarentee
>> at-least-once delivery.
>> Durable mailboxes would just be nice to have built-in to the language but
>> can probably be implemented by having proxy-agents that sit in front of
>> other agents and record the messages to disk, forward the messages, waiting
>> for reply and the removing it on succesful. In the event of a crash some
>> govenor/supervisor of the actor-network would be responsible for rewiring
>> the actor-network and starting both processing and persiting actors in the
>> right order.
>>
>> How viable do you guys and girls think it would be to implement these
>> features in a framework without additional language support but building on
>> the existing mailbox processors? Maybe the distributed and persistent part
>> of the equation could be solved by utilizing something like MSMQ or
>> RabbitMQ but then were slowly moving away from the lighteweight actors that
>> we know from f#, scala and erlang and more into the domain of more
>> traditionel and more heavyweight (both in terms of size and complexity)
>> messages queing systems.
>>
>> Hope to hear your thoughts
>>
>> Regards
>>
>> Simon, Denmark
>>
>>

--
--
You received this message because you are subscribed to the Google
Groups "FSharp Open Source Community" group.
To post to this group, send email to fsharp-o...@googlegroups.com
To unsubscribe from this group, send email to
fsharp-opensou...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/fsharp-opensource?hl=en

---
You received this message because you are subscribed to the Google
Groups "FSharp Open Source Community" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to fsharp-opensou...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



------=_Part_78_1487008.1369166435760
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<html><head><meta content=3D"text/html; charset=3Dutf-8" http-equiv=3D"Cont=
ent-Type"></head><body><div><div style=3D"font-family: Calibri,sans-serif; =
font-size: 11pt;">Glad you found fracture useful! You probably noticed it i=
s windows only, at the moment. Dave and I were discussing whether to use li=
buv to allow it to work cross-platform. Would that help you? Also, please s=
uggest features or improvements in the github issues! I know it looks like =
we may have abandoned it, but we have just been deliberating what comes nex=
t ... for an extended period. :)<br><br>Sent from my Windows Phone<br></div=
></div><hr><span style=3D"font-family: Tahoma,sans-serif; font-size: 10pt; =
font-weight: bold;">From: </span><span style=3D"font-family: Tahoma,sans-se=
rif; font-size: 10pt;">Colin Bull</span><br><span style=3D"font-family: Tah=
oma,sans-serif; font-size: 10pt; font-weight: bold;">Sent: </span><span sty=
le=3D"font-family: Tahoma,sans-serif; font-size: 10pt;">5/21/2013 3:00 PM</=
span><br><span style=3D"font-family: Tahoma,sans-serif; font-size: 10pt; fo=
nt-weight: bold;">To: </span><span style=3D"font-family: Tahoma,sans-serif;=
font-size: 10pt;">fsharp-o...@googlegroups.com</span><br><span style=
=3D"font-family: Tahoma,sans-serif; font-size: 10pt; font-weight: bold;">Su=
bject: </span><span style=3D"font-family: Tahoma,sans-serif; font-size: 10p=
t;">Re: Fakka - F# Akka and the role it could play for f# broader appeal</s=
pan><br><br></body></html>Hey All,&nbsp;<div><br></div><div>In the past wee=
k or so I have had sometime and began looking at this. The code can be foun=
d at&nbsp;<a href=3D"https://github.com/colinbull/Fsharp.Actor">https://git=
hub.com/colinbull/Fsharp.Actor</a>.</div><div><br></div><div><br></div><div=
><br></div><div>At the minute, the following features are in a working(ish)=
state,</div><div><ul><li><b>Remoting</b> bit is built around Fracture (<a =
href=3D"https://github.com/fractureio/fracture">https://github.com/fracture=
io/fracture</a>) this seems to work quiet nicely, but I have no idea weathe=
r the way I am using it is the intended usage pattern, or not.<br></li><li>=
<b>Supervisors</b></li><li><b>Dynamic Behaviours</b></li></ul></div><div><b=
r></div><div>There is still lots and lots of work todo but let me know what=
you think.&nbsp;<br></div><div><br></div><div>Cheers</div><div><br></div><=
div>Colin</div><div><br>On Monday, April 22, 2013 9:22:41 AM UTC+1, hm wrot=
e:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;b=
order-left: 1px #ccc solid;padding-left: 1ex;">Simon,<div><br></div><div>I =
haven't been checking this forum for a while, and this thread is about a mo=
nth old. So not sure if you have made any further progress since.</div><div=
><br></div><div>Anyway, I'd be interested in (actually: I am) looking into =
suitable abstractions and foundations for a message-based distribution fram=
ework for F# as well. Important aspects for my own applications are proper =
handling of back pressure, dynamic topology changes and fairness and priori=
ty management for the underlying scheduling.</div><div><br></div><div>If th=
is is a project you'd still be interested in setting up and are looking for=
helping hands, please let me know.</div><div><br></div><div>- Martin<br><b=
r>On Sunday, March 24, 2013 3:40:08 PM UTC-7, Simon Skov Boisen wrote:<bloc=
kquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-lef=
t:1px #ccc solid;padding-left:1ex">Hello,<p>At NDC 2013 I will be giving a =
talk on F# agents entitled 'Building clean cohesive and concurrent systems =
with f# agents'. That together with the communities wishes to really solidi=
fy f# as a language with distinct business-friendly features that Microsoft=
should be prioritizing more heavily has gotten me thinking that something =
like more featurefull agent-framework akin to AKKA would fit well with MS' =
overall strategy of cloud through Azure. </p><p>These are some of the more =
obvious features of AKKA (and erlang) that I think is missing in f#:</p><p>=
* Durable mailboxes<br>* Distributed agents<br>* Supervison in a agent-tree=
</p><p>Now supervision-trees I believe can be implemented on a local machin=
e with relative ease but it gets much harder when your supervising remote a=
gents. <br>The distributed messages faces smallish challenges of serializat=
ion of Discriminated Unions and bigger once with the ability to guarentee a=
t-least-once delivery.<br>Durable mailboxes would just be nice to have buil=
t-in to the language but can probably be implemented by having proxy-agents=
that sit in front of other agents and record the messages to disk, forward=
the messages, waiting for reply and the removing it on succesful. In the e=
vent of a crash some govenor/supervisor of the actor-network would be respo=
nsible for rewiring the actor-network and starting both processing and pers=
iting actors in the right order.</p><p>How viable do you guys and girls thi=
nk it would be to implement these features in a framework without additiona=
l language support but building on the existing mailbox processors? Maybe t=
he distributed and persistent part of the equation could be solved by utili=
zing something like MSMQ or RabbitMQ but then were slowly moving away from =
the lighteweight actors that we know from f#, scala and erlang and more int=
o the domain of more traditionel and more heavyweight (both in terms of siz=
e and complexity) messages queing systems.</p><p>Hope to hear your thoughts=
</p><p>Regards</p><p>Simon, Denmark</p><p></p><p></p><p></p><p></p><p></p><=
p></p><p></p></blockquote></div></blockquote></div>

<p></p>

-- <br />
-- <br />
You received this message because you are subscribed to the Google<br />
Groups &quot;FSharp Open Source Community&quot; group.<br />
To post to this group, send email to fsharp-o...@googlegroups.com<br =
/>
To unsubscribe from this group, send email to<br />
fsharp-opensou...@googlegroups.com<br />
For more options, visit this group at<br />
<a href=3D"http://groups.google.com/group/fsharp-opensource?hl=3Den">http:/=
/groups.google.com/group/fsharp-opensource?hl=3Den</a><br />
&nbsp;<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;FSharp Open Source Community&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to fsharp-opensou...@googlegroups.com.<br />
For more options, visit <a href=3D"https://groups.google.com/groups/opt_out=
">https://groups.google.com/groups/opt_out</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_78_1487008.1369166435760--
Reply all
Reply to author
Forward
0 new messages