Orleans: A Distributed Systems Runtime
Orleans is a runtime and programming model developed by the eXtreme Computing Group at Microsoft Research for building distributed systems based on the actor model. It was open-sourced in 2015 and has since been used internally for various projects. Orleans is designed for scalability, availability, and reliability, supporting over 11 million players and powering 1.5 billion games, including HALO 4. The system is ideal for building stateless services and data shipping paradigms, offering a powerful framework for developing complex distributed applications.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Walk in a distributed systems park with Orleans Yevhen Bobrov yevhen YouScan.io @
Orleans is runtime and programming model for building distributed systems based on actor model
Built by eXtreme Computing Group at Microsoft Research Has been used internally (during last few years) Open-sourced in 2015 (available on GitHub and Nuget)
Scalability Availability Reliablity built for *
11+ million players 1.5 billion games 270 million hours powered by Orleans HALO4
Why do we need it?
Stateless Services Service
Stateless Services Service
Stateless Services Service Service
Stateless Services Service Service
Stateless Services Service Service
Stateless Services Service Service Service
Stateless Services Service Service Service
Data Shipping Paradigm Service Service Service
Data Shipping Paradigm Service Service Service
Data Shipping Paradigm Service Service Service
Data Shipping Paradigm Service Service Service
Data Shipping Paradigm Service Service Service
Data Shipping Paradigm Service Service Service
Data Shipping Paradigm Service Service Service
Data Shipping Paradigm Service Service Service
Data Shipping Paradigm Service Service Service
Data Shipping Paradigm Service Service Service
Data Shipping Paradigm Service Service Service
Data Shipping Paradigm Service Service Service
Data Shipping Paradigm Service Service Service
Data Shipping Paradigm Service Service Service
Stateless Services (a.k.a 3-tier) scales very badly
In a Cloud latency will kill you
Function Shipping Paradigm Service Service Service
Function Shipping Paradigm Service Service Service
Function Shipping Paradigm Service Service Service
Function Shipping Paradigm Service Service Service
Function Shipping Paradigm Service Service Service
Function Shipping Paradigm Service Service Service
Function Shipping Paradigm Service Service Service
Function Shipping Paradigm Service Service Service
Function Shipping Paradigm Service Service Service
Function Shipping Paradigm Service Service Service
Function Shipping Paradigm Service Service Service
Stateful Services shared state
Stateful Services shared state concurrency, locks, and all that jazz
Stateful Services shared state concurrency, locks, and all that jazz
Actor Model Single-threaded execution (no need to use locks) Data locality and consistency (due to encapsulation) Objects on steroids
Stateful Services Actors make it simple
Akka / Erlang var game = activate( game , tcp://10.0.0.1 ) game.invoke( foo() ) 10.0.0.1 var user = activate( user , tcp://10.0.0.2 ) user.invoke( bar() ) 10.0.0.2
Routing Problems 10.0.0.5 10.0.0.1 10.0.0.2 10.0.0.8