Devlooped.CloudActors.Streamstone
1.0.0-alpha
Prefix Reserved
See the version list below for details.
dotnet add package Devlooped.CloudActors.Streamstone --version 1.0.0-alpha
NuGet\Install-Package Devlooped.CloudActors.Streamstone -Version 1.0.0-alpha
<PackageReference Include="Devlooped.CloudActors.Streamstone" Version="1.0.0-alpha" />
<PackageVersion Include="Devlooped.CloudActors.Streamstone" Version="1.0.0-alpha" />
<PackageReference Include="Devlooped.CloudActors.Streamstone" />
paket add Devlooped.CloudActors.Streamstone --version 1.0.0-alpha
#r "nuget: Devlooped.CloudActors.Streamstone, 1.0.0-alpha"
#:package Devlooped.CloudActors.Streamstone@1.0.0-alpha
#addin nuget:?package=Devlooped.CloudActors.Streamstone&version=1.0.0-alpha&prerelease
#tool nuget:?package=Devlooped.CloudActors.Streamstone&version=1.0.0-alpha&prerelease
Streamstone storage provider for Orleans grain persistence, supporting Cloud Actors on Azure Table Storage.
Features
- Supports plain CLR objects as grain state
- Supports event sourced actors
- Supports automatic snapshots for faster state reading
See Streamstone for more details.
Usage
Register the provider via the Orleans silo builder:
and provide a CloudStorageAccount singleton:
var builder = WebApplication.CreateBuilder(args);
builder.UseOrleans(silo =>
{
// 👇 register Streamstone as the default storage provider for all grains/actors
silo.AddStreamstoneActorStorageAsDefault(opt => opt.AutoSnapshot = true);
});
builder.Services.AddCloudActors(); // 👈 registers grains, serializers, etc.
Alternatively, you can register the provider under a specific name instead of the default:
silo.AddStreamstoneActorStorage("streamstone", opt => opt.AutoSnapshot = true);
And actors can then opt in to the named provider explicitly:
[Actor(nameof(Account), "streamstone")]
public partial class Account : IEventSourced
Storage
The Streamstone storage provider depends on Devlooped.CloudStorage
(CloudStorageAccount) which must be registered in the DI container too:
builder.Services.AddSingleton(
builder.Environment.IsDevelopment() ?
// Use the development emulator locally:
CloudStorageAccount.DevelopmentStorageAccount :
// Or provide a real account for production:
CloudStorageAccount.Parse(builder.Configuration.GetConnectionString("AzureStorage") ??
throw new ArgumentException("Missing required AzureStorage connection string.")));
Clustering
It's quite common to use localhost clustering during development, and azure storage in production, for example:
builder.UseOrleans(silo =>
{
if (builder.Environment.IsProduction())
{
silo.UseAzureStorageClustering(options =>
{
options.TableServiceClient = new Azure.Data.Tables.TableServiceClient(
builder.Configuration["AzureStorage"] ??
builder.Configuration["AzureWebJobsStorage"]);
});
}
else
{
silo.UseLocalhostClustering();
}
// 👇 register Streamstone as the default storage provider for all grains/actors
silo.AddStreamstoneActorStorageAsDefault(opt => opt.AutoSnapshot = true);
});
Open Source Maintenance Fee
To ensure the long-term sustainability of this project, users of this package who generate revenue must pay an Open Source Maintenance Fee. While the source code is freely available under the terms of the License, this package and other aspects of the project require adherence to the Maintenance Fee.
To pay the Maintenance Fee, become a Sponsor at the proper OSMF tier. A single fee covers all of Devlooped packages.
Sponsors
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Devlooped.CloudActors (>= 1.0.0-alpha)
- Devlooped.CloudActors.Abstractions (>= 1.0.0-alpha)
- Devlooped.CloudStorageAccount (>= 1.4.0)
- Microsoft.Orleans.Runtime (>= 10.1.0)
- Streamstone (>= 3.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-rc | 95 | 4/17/2026 |
| 1.0.0-beta | 93 | 4/16/2026 |
| 1.0.0-alpha | 95 | 4/15/2026 |
| 0.5.0-rc.2 | 286 | 11/12/2025 |
| 0.5.0-rc.1 | 282 | 11/11/2025 |
| 0.5.0-rc | 179 | 11/9/2025 |
| 0.5.0-beta | 229 | 11/6/2025 |
| 0.4.0 | 307 | 6/14/2024 |
| 0.3.0 | 361 | 8/8/2023 |
| 0.2.2 | 276 | 8/7/2023 |
| 0.2.1 | 288 | 8/7/2023 |
| 0.2.0 | 282 | 8/7/2023 |