Orleans NuGet packages
All official packages use the Microsoft.Orleans prefix and are published on NuGet.org. Keep Orleans package versions aligned within an application.
Start with a metapackage
Section titled “Start with a metapackage”| Package | Use it for |
|---|---|
| Microsoft.Orleans.Server | Applications which host an Orleans silo. It includes the runtime, SDK, client APIs, and memory persistence provider. |
| Microsoft.Orleans.Client | Standalone processes which connect to a cluster without hosting a silo. It includes the SDK. |
| Microsoft.Orleans.Sdk | Grain contract or implementation libraries which need Orleans analyzers, source generation, serialization, and core APIs. |
Most applications should begin with one of these packages and then add only the provider and feature packages they use.
For installation guidance, see dotnet package add and NuGet package installation workflows.
Hosting and observability
Section titled “Hosting and observability”| Package | Purpose |
|---|---|
| Microsoft.Orleans.Hosting.Kubernetes | Kubernetes hosting integration. |
| Microsoft.Orleans.Dashboard | Built-in Orleans Dashboard server and UI. |
| Microsoft.Orleans.Dashboard.Abstractions | Dashboard contracts for components which don’t host the UI. |
| Microsoft.Orleans.Connections.Security | TLS support for Orleans connections. |
Microsoft.Orleans.Runtime, Microsoft.Orleans.Core, and the abstractions packages are lower-level dependencies of the metapackages. Reference them directly only when building a library with a narrower dependency requirement.
Clustering
Section titled “Clustering”Every multi-silo production cluster needs a shared membership provider.
| Package | Backend |
|---|---|
| Microsoft.Orleans.Clustering.AdoNet | ADO.NET-compatible relational databases |
| Microsoft.Orleans.Clustering.AzureStorage | Azure Table Storage |
| Microsoft.Orleans.Clustering.Cassandra | Apache Cassandra |
| Microsoft.Orleans.Clustering.Consul | HashiCorp Consul |
| Microsoft.Orleans.Clustering.Cosmos | Azure Cosmos DB |
| Microsoft.Orleans.Clustering.DynamoDB | Amazon DynamoDB |
| Microsoft.Orleans.Clustering.Firestore | Google Cloud Firestore |
| Microsoft.Orleans.Clustering.Redis | Redis |
| Microsoft.Orleans.Clustering.ZooKeeper | Apache ZooKeeper |
Grain persistence
Section titled “Grain persistence”| Package | Backend |
|---|---|
| Microsoft.Orleans.Persistence.AdoNet | ADO.NET-compatible relational databases |
| Microsoft.Orleans.Persistence.AzureStorage | Azure Table and Blob Storage |
| Microsoft.Orleans.Persistence.Cosmos | Azure Cosmos DB |
| Microsoft.Orleans.Persistence.DynamoDB | Amazon DynamoDB |
| Microsoft.Orleans.Persistence.Firestore | Google Cloud Firestore |
| Microsoft.Orleans.Persistence.Redis | Redis |
| Microsoft.Orleans.Persistence.Memory | Process memory for development and testing |
Memory persistence distributes records across cluster storage grains but isn’t durable or replicated. Use it only when losing records with a hosting process is acceptable.
Reminders and durable jobs
Section titled “Reminders and durable jobs”| Package | Purpose |
|---|---|
| Microsoft.Orleans.Reminders | Core reminder support. |
| Microsoft.Orleans.Reminders.AdoNet | ADO.NET reminder storage. |
| Microsoft.Orleans.Reminders.AzureStorage | Azure Table Storage reminders. |
| Microsoft.Orleans.Reminders.Cosmos | Azure Cosmos DB reminders. |
| Microsoft.Orleans.Reminders.DynamoDB | Amazon DynamoDB reminders. |
| Microsoft.Orleans.Reminders.Firestore | Google Cloud Firestore reminders. |
| Microsoft.Orleans.Reminders.Redis | Redis reminders. |
| Microsoft.Orleans.DurableJobs | Distributed scheduling for durable one-time jobs. |
| Microsoft.Orleans.DurableJobs.AzureStorage | Azure Blob Storage for durable jobs. |
Use reminders for recurring durable callbacks and durable jobs for scheduled one-time work. Grain timers are activation-scoped and use the core runtime rather than a provider package.
Streams and broadcast channels
Section titled “Streams and broadcast channels”| Package | Purpose |
|---|---|
| Microsoft.Orleans.Streaming | Core Orleans Streams APIs and runtime. |
| Microsoft.Orleans.Streaming.AdoNet | ADO.NET-backed streams. |
| Microsoft.Orleans.Streaming.AzureStorage | Azure Queue Storage streams. |
| Microsoft.Orleans.Streaming.EventHubs | Azure Event Hubs streams. |
| Microsoft.Orleans.Streaming.Kinesis | Amazon Kinesis Data Streams. |
| Microsoft.Orleans.Streaming.NATS | NATS JetStream streams. |
| Microsoft.Orleans.Streaming.Redis | Redis Streams integration. |
| Microsoft.Orleans.Streaming.SQS | Amazon SQS streams. |
| Microsoft.Orleans.BroadcastChannel | Lightweight broadcast channels. |
Grain directories
Section titled “Grain directories”Custom grain directory providers store grain registration information for selected grain types.
| Package | Backend |
|---|---|
| Microsoft.Orleans.GrainDirectory.AdoNet | ADO.NET-compatible relational databases |
| Microsoft.Orleans.GrainDirectory.AzureStorage | Azure Table Storage |
| Microsoft.Orleans.GrainDirectory.Firestore | Google Cloud Firestore |
| Microsoft.Orleans.GrainDirectory.Redis | Redis |
These packages don’t replace the cluster membership provider.
State models and transactions
Section titled “State models and transactions”| Package | Purpose |
|---|---|
| Microsoft.Orleans.EventSourcing | Event-sourced grain base types and log-consistency abstractions. |
| Microsoft.Orleans.Journaling | Experimental durable journaled collections and values (ORLEANSEXP005). |
| Microsoft.Orleans.Journaling.AzureStorage | Experimental Azure Blob Storage provider for Orleans Journaling. |
| Microsoft.Orleans.Journaling.Redis | Experimental Redis storage provider for Orleans Journaling. |
| Microsoft.Orleans.Transactions | Distributed transaction runtime. |
| Microsoft.Orleans.Transactions.AzureStorage | Azure Storage transaction state. |
| Microsoft.Orleans.Transactions.DynamoDB | Amazon DynamoDB transaction state. |
Serialization
Section titled “Serialization”Orleans source-generates serializers for annotated application types. Add an integration package when using another format or ecosystem.
| Package | Purpose |
|---|---|
| Microsoft.Orleans.Serialization.SystemTextJson | System.Text.Json integration. |
| Microsoft.Orleans.Serialization.MessagePack | MessagePack integration. |
| Microsoft.Orleans.Serialization.Protobuf | Protocol Buffers integration. |
| Microsoft.Orleans.Serialization.NewtonsoftJson | Newtonsoft.Json integration. |
| Microsoft.Orleans.Serialization.FSharp | F# core type support. |
Microsoft.Orleans.Serialization and Microsoft.Orleans.Serialization.Abstractions are lower-level packages used by the SDK and integrations.
Testing
Section titled “Testing”| Package | Purpose |
|---|---|
| Microsoft.Orleans.TestingHost | Host configurable in-process test clusters. |
| Microsoft.Orleans.Serialization.TestKit | Verify custom serializer behavior. |
| Microsoft.Orleans.Transactions.TestKit.Base | Shared transaction test kit. |
| Microsoft.Orleans.Transactions.TestKit.xUnit | xUnit integration for the transaction test kit. |
For package installation commands in a multi-project application, see Build your first Orleans app.
