<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 24, 2014 at 12:35 AM, Miles Fidelman <span dir="ltr"><<a href="mailto:mfidelman@meetinghouse.net" target="_blank">mfidelman@meetinghouse.net</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":r7" class="a3s" style="overflow:hidden">This is the first I've heard of it.  Thanks for the pointers!<br>


<br>
Some interesting concepts - particularly the notion of persistent actors that never go away.</div></blockquote></div><br>[Orleans...]</div><div class="gmail_extra"><br></div><div class="gmail_extra">The thing about Orleans is frameworkizm. It provides you with a framework where actors are persisted, dynamically spawned and so on. But by doing so, it also trades off certain things. You can't (per CAP) guarantee an actor will be run on once machine only. Thus, you have to resolve conflicts in other ways, usually by having transactions in a subsystem somewhere. And then using those transactions to lift safety into the system as a whole. Imagine you run eventually consistent and asynchronous but once you do something with money, you become strongly consistent by using a database connection.</div>

<div class="gmail_extra"><br></div><div class="gmail_extra">When I read the paper my guess was that you could build something like Orleans in 2-3 weeks in Erlang tailored to your needs. Depending on the fit of Orleans to your problem space this might be slower or faster than understanding the framework in the first place.</div>

<div class="gmail_extra"><br></div><div class="gmail_extra">I don't particularly like that you have to program in a certain mode of operation in .NET for your code to be safe. While the same can be said for Node.js or OCaml+Core.Async it is still not as safe as Erlang, where the default mode of operation is the one you seek.</div>

<div class="gmail_extra"><br><br clear="all"><div><br></div>-- <br>J.
</div></div>