Orleans (software framework)

Orleans is a cross-platform software framework for building scalable and robust distributed interactive applications based on the .NET Framework or on the more recent .NET.

Overview
Orleans was originally created by the eXtreme Computing Group at Microsoft Research and introduced the virtual actor model as a new approach to building distributed systems for the cloud. Orleans scales from a single on-premises server to highly-available and globally distributed applications in the cloud.

The virtual actor model is based on the actor model but has several differences:


 * 1) A virtual actor always exists, it cannot be explicitly created or destroyed.
 * 2) Virtual actors are automatically instantiated. If a server hosting an actor crashes, the next message sent to the actor causes it to be reinstantiated automatically.
 * 3) The server that an actor is on is transparent to the application code.
 * 4) Orleans can automatically create multiple instances of the same stateless actor.

Starting with cloud services for the Halo franchise, the framework has been used by a number of cloud services at Microsoft and other companies since 2011. The core Orleans technology was transferred to 343 Industries and is available as open source since January 2015. The source code is licensed under MIT License and hosted on GitHub.

Orleans runs on Microsoft Windows, Linux, and macOS and is compatible with .NET Standard 2.0 and above.

Features
Some Orleans features include:
 * Persistence
 * Distributed ACID transactions
 * Streams
 * Timers & Reminders
 * Fault tolerance

Related implementations
The Electronic Arts BioWare division created Project Orbit. It is a Java implementation of virtual actors that was heavily inspired by the Orleans project.