An actor-model framework for Go, inspired by Erlang/OTP, for building supervised, network-transparent distributed systems.
dotnet/orleans
A cross-platform .NET framework for building distributed, scalable cloud applications using the virtual actor model.
- Stars
- 10,913
- Forks
- 2,148
- Open issues
- 645
- Last commit
- 3 hours ago
What is it?
Orleans brings familiar .NET concepts such as objects, interfaces, async/await and exceptions to distributed systems. Developers model application entities as grains, which have a stable identity, behavior and optional state. The Orleans runtime activates grains on demand, deactivates idle ones, and locates them across a cluster of silos, so calling code does not need to know which server hosts a given grain.
Grains can store state in any storage system, and support features such as timers, durable reminders, distributed ACID transactions with serializable isolation, managed streams backed by queues like Azure Event Hubs or Amazon Kinesis, and configurable grain placement. Clusters can scale from a single silo to many and recover from silo failures.
Orleans runs on Windows, Linux and macOS with .NET Standard 2.0 and newer .NET runtimes, and can be deployed to Kubernetes, virtual or physical machines, or PaaS services such as Azure App Service.
Key features
- 01Grains with stable identity and optional persistent state stored in any storage system
- 02Distributed ACID transactions with serializable isolation and no central coordinator
- 03Managed streams backed by queueing services such as Azure Event Hubs and Amazon Kinesis
- 04Durable reminders and non-durable timers for scheduled work
- 05Configurable grain placement policies and grain interface versioning
- 06Grain call filters for authorization, logging and error handling
Use cases
- Building IoT backends where each device is modeled as a digital twin grain
- Creating stateful, low-latency cloud services that scale out across multiple servers
- Processing near-real-time event streams with checkpointed consumers
- Migrating single-server .NET applications toward resilient distributed services
Things to know
- Requires the .NET ecosystem and C# to build applications with it.
- It is a framework for distributed applications, so running a cluster adds setup and operations effort compared with a single-process app.
In collections
Topics
FAQ
- What is orleans?
- A cross-platform .NET framework for building distributed, scalable cloud applications using the virtual actor model. Orleans brings familiar .NET concepts such as objects, interfaces, async/await and exceptions to distributed systems. Developers model application entities as grains, which have a stable identity, behavior and optional state. The Orleans runtime activates grains on demand, deactivates idle ones, and locates them across a cluster of silos, so calling code does not need to know which server hosts a given grain.
- Is orleans free to use? What license does it have?
- orleans is open source under the MIT license. Check the license terms before using it in commercial products.
- Is orleans still maintained?
- Actively maintained. The last commit to orleans was on Oct 24, 2026.
- What can I use orleans for?
- Building IoT backends where each device is modeled as a digital twin grain Creating stateful, low-latency cloud services that scale out across multiple servers Processing near-real-time event streams with checkpointed consumers Migrating single-server .NET applications toward resilient distributed services
- Where can I get orleans?
- The source code and installation instructions are on GitHub: https://github.com/dotnet/orleans
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
NATS server, a high-performance messaging system for connecting services, devices and edge systems, part of the CNCF.
Rivet is an open-source orchestrator that schedules durable, stateful Actors for agents, workflows, and realtime apps, as an alternative to pod-based scheduling.
An actor framework for Rust that runs typed message-passing actors on the Tokio runtime, with supervision support.
A cloud-native distributed SQL database built on a strongly-consistent key-value store, with PostgreSQL wire protocol compatibility.
An orchestration engine for background tasks, AI agents and durable workflows, with Python, TypeScript, Go and Ruby SDKs and Postgres as its durability layer.