Skip to main content
net8.0

Package Description

Published
Sep 1, 2026
1mo ago
Total Downloads
4.8K
4,755

Install

dotnet add package Orleans.Providers.RavenDB --version 1.0.8
ProductVersions
.NET
net8.0

README

RavenDB-Orleans Provider

Build NuGet License

πŸ“Œ Overview

RavenDB-Orleans Provider is a Microsoft Orleans storage provider that integrates RavenDB as a backing store for grain persistence, reminders, and clustering.

This provider enables high-performance, distributed applications that leverage the event-driven, distributed actor model of Orleans with the scalability and flexibility of RavenDB.


πŸš€ Features

βœ” Grain Storage – Persist and retrieve Orleans grain states using RavenDB.
βœ” Reminders Provider – Stores Orleans timers and reminders in RavenDB.
βœ” Clustering Support – Uses RavenDB for Orleans cluster membership management.
βœ” Optimized Queries – Efficient indexing and querying using RavenDB’s built-in indexing.
βœ” Fully Asynchronous – Non-blocking, highly scalable storage provider.
βœ” .NET 8 Support – Fully compatible with the latest Orleans & .NET 8.


πŸ”§ Configuration


var host = Host.CreateDefaultBuilder(args)
	.UseOrleans(siloBuilder =>
	{
		// Define RavenDB connection settings
		string serverUrl = "http://localhost:8080";
		string databaseName = "OrleansDemo";

		siloBuilder
			// Configure clustering with RavenDB
			.UseRavenDbMembershipTable(options =>
			{
				options.Urls = new[] { serverUrl };
				options.DatabaseName = databaseName;
			})
			// Configure grain storage with RavenDB
			.AddRavenDbGrainStorage("RavenGrainStorage", options =>
			{
				options.Urls = new[] { serverUrl };
				options.DatabaseName = databaseName;
			})
			// Configure reminders with RavenDB
			.AddRavenDbReminderTable(options =>
			{
				options.Urls = new[] { serverUrl };
				options.DatabaseName = databaseName;
			})
			// Configure other Orleans settings
			.Configure<ClusterOptions>(options =>
			{
				options.ClusterId = "dev";
				options.ServiceId = "OrleansDemo";
			})
			.Configure<EndpointOptions>(options =>
			{
				options.AdvertisedIPAddress = IPAddress.Loopback;
				options.SiloPort = 11111;
				options.GatewayPort = 30000;
			})
			.ConfigureLogging(logging => logging.AddConsole());
	}).Build();

await host.RunAsync();

πŸ“¦ Installation

You can install the package via NuGet:

dotnet add package Orleans.Providers.RavenDb

To build the project locally, run:

pwsh ./build.ps1

or (on Linux/macOS)

./build.sh

πŸ“– Documentation Links

Changes from Previous Version

No structural changes between v1.0.7 and v1.0.8.

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

Compatibility metadata lists 1 target framework; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.