Devlooped.CloudActors.Streamstone 1.0.0-alpha

Prefix Reserved
This is a prerelease version of Devlooped.CloudActors.Streamstone.
There is a newer prerelease version of this package available.
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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Devlooped.CloudActors.Streamstone" Version="1.0.0-alpha" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Devlooped.CloudActors.Streamstone" Version="1.0.0-alpha" />
                    
Directory.Packages.props
<PackageReference Include="Devlooped.CloudActors.Streamstone" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Devlooped.CloudActors.Streamstone --version 1.0.0-alpha
                    
#r "nuget: Devlooped.CloudActors.Streamstone, 1.0.0-alpha"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Devlooped.CloudActors.Streamstone@1.0.0-alpha
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Devlooped.CloudActors.Streamstone&version=1.0.0-alpha&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Devlooped.CloudActors.Streamstone&version=1.0.0-alpha&prerelease
                    
Install as a Cake Tool

Streamstone storage provider for Orleans grain persistence, supporting Cloud Actors on Azure Table Storage.

EULA OSS GitHub

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

Clarius Org MFB Technologies, Inc. Khamza Davletov SandRock DRIVE.NET, Inc. Keith Pickford Thomas Bolon Kori Francis Reuben Swartz Jacob Foshee alternate text is missing from this package README image Eric Johnson Jonathan Ken Bonny Simon Cropp agileworks-eu Zheyu Shen Vezel ChilliCream 4OTC domischell Adrian Alonso torutek mccaffers Seika Logiciel Andrew Grant Lars prime167

Sponsor this project

Learn more about GitHub Sponsors

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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