7 ms·
> It was created by Microsoft Research and introduced the Virtual Actor Model as a novel approach to building a new generation of distributed systems for the Cl
by rattray 6y ago
> It was created by Microsoft Research and introduced the Virtual Actor Model as a novel approach to building a new generation of distributed systems for the Cloud era.
Okay, sounds like an academic, Microsofty take on Erlang's Actors? But from docs, sounds like it's at least used in practice at MSFT:
> Since 2011, it has been used extensively in the cloud and on premises by several Microsoft product groups, most notably by game studios, such as 343 Industries and The Coalition as a platform for cloud services behind Halo 4 and 5, and Gears of War 4, as well as by a number of other companies.
> Orleans was open-sourced in January 2015, and attracted many developers that formed one of the most vibrant open source communities in the .NET ecosystem.
- oldmanhorton 6y agoIt also underpins Service Fabric Actors, I believe
- keithnz 6y agothe actor model isn't erlangs, it's actually a surprisingly old idea ( 1973 ). The virtual actor model is an interesting spin on the idea that simplifies a few things. Orleans itself is quite nice, I've used it a few times on some smallish things. Looking at using it in anger for a large distributed backend system in the nearish future.
- picodguyo 6y ago"Looking at using it in anger..." Orleans DDoS?
- jolux 6y ago"in anger" typically means for a real-world, serious project.
- picodguyo 6y agoThanks, first encounter with this expression.
- chrisseaton 6y agoIs this a Britishism? I find Americans often are confused by it when I use it.
- swyx 6y agoi first heard about "in anger" from David Nolen, an American https://www.youtube.com/watch?v=8o01g6C7jWg&feature=emb_title https://www.youtube.com/watch?v=8o01g6C7jWg&feature=emb_titl...
- thom 6y agoI use it too much and it has caused consternation with both American and Egyptian colleagues. Not sure what to reprogram my brain to use because it’s pretty ingrained at this point.
- keithnz 6y agoI'm from New Zealand, so maybe! never knew it was not a thing in America.
- contextfree 6y agoAs an American I realize I've only ever encountered it (that I remember) in the context of software development libraries and tools.
- ldayley 6y agoOr perhaps rather they were referring to the classic Erlang in Anger document: https://erlang-in-anger.com/ https://erlang-in-anger.com/
- to11mtm 6y agoAcademically (And, to some extent, practically speaking) Orleans Virtual actors aren't the same as Erlang (or Akka) actors. Major differences: - Normal actors are pretty flexible, can work in local or remote contexts. Orleans is probably best described as Sharded Actors, It's a 'guided' implementation of Actors compared to Erlang or Akka where you are given a toolkit and have to build out what you intend to do. - Orleans doesn't have any ordering guarantees. While this is not a firm requirement of the Actor model itself, both Erlang and Akka guarantee ordering between a given Sender-receiver pair (i.e. messages sent from A to C will be sent in order) - Akka and Erlang have the concept of Supervision. i.e. An actor may have a child, and if that child crashes, the (parent) is notified and may choose how to react (restart child, don't restart child, crash itself) - Orleans may allow more than one activation of the same grain at the same time. A stable and properly configured Akka Shard cluster will never have more than one of the same entity actor alive at a time. - Orleans can magically scale out with the cloud (If you're running them on Azure.) Erlang/Akka you'll have to deploy your new nodes.
- Jtsummers 6y ago> - Orleans doesn't have any ordering guarantees. While this is not a firm requirement of the Actor model itself, both Erlang and Akka guarantee ordering between a given Sender-receiver pair (i.e. messages sent from A to C will be sent in order) I thought Erlang only guaranteed that if the processes are on the same node. Is that not correct?
- ramchip 6y agoIt’s true even with distribution, see e.g.: http://erlang.org/faq/academic.html#idp33052176 http://erlang.org/faq/academic.html#idp33052176 http://erlang.org/pipermail/erlang-questions/2017-September/093666.html http://erlang.org/pipermail/erlang-questions/2017-September/...
- to11mtm 6y agoHuh. Never actually looked into HOW it worked in erlang, but basically it looks like it works the same way as Akka/AkkaDotNet; VM skates on top of the underlying transport's ordering guarantees. For a long time I was curious how Akka Artery preserved message ordering for it's 'dedicated large message' lane. in short it really just means you are dedicating a specific TCP or Aeron connection dedicated to those actors, there's no magic ordering sauce underneath. (just a little disappointed to find that out, but appreciate the simplicity upon consideration.)