paper

Orleans: Distributed Virtual Actors for Programmability and Scalability

  • Authors:

📜 Abstract

High-scale interactive services demand high throughput with low latency and high availability, difficult goals to meet with the traditional stateless 3-tier architecture. The actor model makes it natural to build a stateful middle tier and achieve the required performance. However, the popular actor model platforms still pass many distributed systems problems to the developers. The Orleans programming model introduces the novel abstraction of virtual actors that solves a number of the complex distributed systems problems, such as reliability and distributed resource management, liberating the developers from dealing with those concerns. At the same time, the Orleans runtime enables applications to attain high performance, reliability and scalability. This paper presents the design principles behind Orleans and demonstrates how Orleans achieves a simple programming model that meets these goals. We describe how Orleans simplified the development of several scalable production applications on Windows Azure, and report on the performance of those production systems.

✨ Summary

The paper introduced Orleans’ virtual-actor abstraction, in which logical actors have persistent identities but are instantiated, placed, recovered, and reclaimed transparently by the runtime. Microsoft subsequently transferred the technology to production services, including Halo-related cloud services, open-sourced the core Orleans implementation in January 2015, and reported that Azure Reliable Actors was based heavily on the Orleans API. (microsoft.com)

The paper also became part of a continuing research line on actor-based cloud systems. Later Microsoft work extended the model to geo-distributed actor services, while other research cited Orleans’ design when developing reliable state-machine frameworks and actor-oriented data-processing systems. (microsoft.com)