Understanding "Project Orleans"

Posted: (EET/GMT+2)

 

During Build 2014, Microsoft made plenty of announcements, large and small. One of these announcements was "Project Orleans", which aims in making building scalable Azure cloud applications much easier.

Scaling your application isn't always easy, even though you'd be using the latest and greatest .NET and Visual Studio versions. Thus, there is indeed a need for libraries like Orleans, which, by the way, will later become a fully open-source project hosted on CodePlex.

What is Orleans, then? Shortly put, it's a set of classes to help you build scalable applications running on Azure. It is based on the Actor model, in which the so-called actor objects are the smallest units that can do some useful work.

In the Actor model (as well as in Orleans), the main idea is this: actors process something based on asynchronous messages they receive, and this message passing is separated from the actors (and their processing). This means the actors can be run concurrently and anywhere they have access to the data they need to process. Furthermore, Orleans makes sure a single actor type always runs single-threaded.

These features combined, you have an architecture that can be scaled easily to a large number of concurrent actors. With Orleans, you can code actors with C# for instance, and to get started, sample applications are provided.

If you are interested, be sure to also check out the Orleans FAQ.

Happy hacking!