Using Project “Orleans” in Halo

UPDATE: Corrected date of talk.

On Wednesday I gave a talk at the Build 2014 conference on how we used the Project “Orleans” technology from Microsoft Research to build the cloud services that power Halo experiences.

Project “Orleans” is the result of work done in Microsoft Research to simplify the development of distributed systems by offering a programming model and runtime that embrace the Actor Model and enable developers to better reason about scalable, distributed concurrency. The result is increased developer productivity and services that scale well by default.

We’ve talked about this at some level before in videos and in other presentations but this talk was different for two reasons: First, we went into a lot more depth including showing code examples and detailing some of the unique benefits of the “Virtual” actor concept in “Orleans”. Second, we released a public preview of “Orleans” enabling folks to download it, play with it and give feedback to the development team.

I would love to talk more about this but before I do I’d love for folks to watch the video, download “Orleans”, play with the samples and engage in discussions on Codeplex. As I see the discussions evolve I will tailor future blog posts to address things I see.

Looking forward to seeing what cool things folks build with Orleans! Based on the current conversations I’ve been seeing on Twitter, it looks like I’m going to start working on a post to talk more about the programming model or Orleans.

Posted in Cloud, Project "Orleans"
3 comments on “Using Project “Orleans” in Halo
  1. Looks interesting, but seriously, make a Nuget package. The whole process to download the binaries is just too hard for today’s standards.


  2. hoopsomuah says:

    Nuget was considered as an option and we’ve played around with using it internally before but it doesn’t quite fit.

    Nuget is convenient when you want to add libraries to an existing project however when you think about Orleans, you’re usually creating an “Orleans” project so having project templates seems like the first choice. You wouldn’t generally “add” “Orleans” functionality to an existing project, in fact I wouldn’t recommend trying to “port” code to the “Orleans” runtime unless you really have to. In this light, the main part of the Project “Orleans” preview is a VSIX that installs the Orleans project types into Visual Studio for you.

    This could eventually be added to the Visual Studio gallery but for the preview it seemed better to pair it with other things like the local silo, samples, and documentation.


  3. ralph says:

    Dear Hoop,

    Great presentation and I started working with Orleans because everything about it appealed to me. What I’d like to read about is the degree to which — in bullet points, with some elaboration where necessary — you used a custom, code-first approach with Orleans, (as opposed to the templates) — to craft your Halo support. I’m expecting that you did most things from scratch, given that you started much, much earlier than this preview release.

    However, I’d appreciate a quick tour of the areas in which you think your team did something very very custom — especially if they had to — so that I could get a sense of where a serious scale-out application would typically have to focus their efforts outside of the API/Runtime support (which saves tons of time in some areas of development).

    Does that make sense?

    Cheers, Ralph


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: