ActorFX vs. Orleans

Sep 1, 2013 at 4:58 PM
So what are the differences between ActorFX and Orleans (other than Orleans is not publicly available as of yet)?
Sep 3, 2013 at 4:46 PM
Hi Niels,

Orleans is a fine actor model. It's been around for a while, and it has been battle tested. In fact, ActorFx is even now solving some problems (like multi-tenant actor containers, called "Silos" in Orleans) that Orleans has already addressed.

The main differentiators between Orleans and ActorFx, as I see them, are:
  • ActorFx is designed to be language-agnostic, both on the actor service side and on the client side. ActorFx supports actor methods written in .NET, JavaScript or Python at present, and we'll support more languages in the future. And ActorFx communicates in JSON strings, basically, so any platform that understands JSON can serve as a client to an ActorFx actor. My understanding of Orleans is that it is very .NET-centric -- their actor methods can only be written in .NET, and communication with their actors requires .NET-specific protocols and serialization schemes.
  • ActorFx supports dynamic behavior replacement. Since actor behavior is stored as delegates in the key-value store just like any other actor data, it can be updated on-the-fly without the need to recycle your actor service. Orleans does not support this.
We consider these to be important differentiators, but I would definitely be interested in feedback from you and the community in general as to whether or not you all see these as major differentiators.

Sep 3, 2013 at 6:56 PM
Hi Joe,

Thanks for the reply. I'll definitely give feed-back re Orleans and ActorFX.