Sekiban.Dcb.BlobStorage.AzureStorage
1.0.2-preview05
See the version list below for details.
dotnet add package Sekiban.Dcb.BlobStorage.AzureStorage --version 1.0.2-preview05
NuGet\Install-Package Sekiban.Dcb.BlobStorage.AzureStorage -Version 1.0.2-preview05
<PackageReference Include="Sekiban.Dcb.BlobStorage.AzureStorage" Version="1.0.2-preview05" />
<PackageVersion Include="Sekiban.Dcb.BlobStorage.AzureStorage" Version="1.0.2-preview05" />
<PackageReference Include="Sekiban.Dcb.BlobStorage.AzureStorage" />
paket add Sekiban.Dcb.BlobStorage.AzureStorage --version 1.0.2-preview05
#r "nuget: Sekiban.Dcb.BlobStorage.AzureStorage, 1.0.2-preview05"
#:package Sekiban.Dcb.BlobStorage.AzureStorage@1.0.2-preview05
#addin nuget:?package=Sekiban.Dcb.BlobStorage.AzureStorage&version=1.0.2-preview05&prerelease
#tool nuget:?package=Sekiban.Dcb.BlobStorage.AzureStorage&version=1.0.2-preview05&prerelease
Sekiban.Dcb.BlobStorage.AzureStorage
Azure Blob Storage integration for Sekiban Dynamic Consistency Boundary (DCB) framework.
Overview
This package provides Azure Blob Storage-based snapshot offloading for Sekiban DCB MultiProjection. It enables efficient storage of large projection state snapshots in Azure Blob Storage, reducing memory pressure and improving scalability for projections with significant state.
Features
- Binary Snapshot Storage: Efficiently stores projection snapshots as binary data in Azure Blob Storage
- Automatic Container Management: Automatically creates blob containers if they don't exist
- Flexible Configuration: Supports both connection string and BlobServiceClient-based initialization
- Prefix Support: Organize snapshots with custom prefixes for multi-tenant scenarios
Installation
dotnet add package Sekiban.Dcb.BlobStorage.AzureStorage --version 1.0.2-preview03
Usage
Basic Setup with Connection String
services.AddSingleton<IBlobStorageSnapshotAccessor>(sp =>
{
var connectionString = configuration["AzureStorage:ConnectionString"];
return new AzureBlobStorageSnapshotAccessor(
connectionString,
"multiprojection-snapshots", // Container name
"production" // Optional prefix
);
});
Setup with BlobServiceClient (Recommended for Aspire)
services.AddSingleton<IBlobStorageSnapshotAccessor>(sp =>
{
var blobServiceClient = sp.GetRequiredService<BlobServiceClient>();
return new AzureBlobStorageSnapshotAccessor(
blobServiceClient,
"multiprojection-snapshots" // Container name
);
});
With Aspire and Keyed Services
services.AddSingleton<IBlobStorageSnapshotAccessor>(sp =>
{
// Use Aspire-configured BlobServiceClient
var blobServiceClient = sp.GetRequiredKeyedService<BlobServiceClient>("MultiProjectionOffload");
return new AzureBlobStorageSnapshotAccessor(
blobServiceClient,
"multiprojection-snapshots"
);
});
Integration with Sekiban DCB Orleans
This package is designed to work seamlessly with Sekiban.Dcb.Orleans for snapshot offloading in MultiProjection grains:
// In Orleans silo configuration
siloBuilder.ConfigureServices(services =>
{
// Register the Azure Blob Storage snapshot accessor
services.AddSingleton<IBlobStorageSnapshotAccessor>(sp =>
{
var blobServiceClient = sp.GetRequiredKeyedService<BlobServiceClient>("MultiProjectionOffload");
return new AzureBlobStorageSnapshotAccessor(blobServiceClient, "snapshots");
});
});
Configuration Options
Container Names
- Default:
multiprojection-snapshots
- Customize based on your application needs
- Containers are created automatically if they don't exist
Prefixes
- Use prefixes to organize snapshots by environment, tenant, or feature
- Example:
production/
,tenant-123/
,feature-x/
Requirements
- .NET 9.0 or later
- Azure Storage Account (or Azurite for local development)
- Sekiban.Dcb package
Dependencies
- Azure.Storage.Blobs (12.22.2)
- Sekiban.Dcb (1.0.2-preview03)
License
Apache-2.0
Support
For issues, questions, or contributions, please visit: https://github.com/J-Tech-Japan/Sekiban
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
-
net9.0
- Azure.Storage.Blobs (>= 12.25.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.8)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.8)
- Sekiban.Dcb (>= 1.0.2-preview05)
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.2-preview10 | 18 | 9/22/2025 |
1.0.2-preview09 | 21 | 9/22/2025 |
1.0.2-preview08 | 302 | 9/15/2025 |
1.0.2-preview07 | 112 | 9/13/2025 |
1.0.2-preview06 | 52 | 9/13/2025 |
1.0.2-preview05 | 186 | 9/5/2025 |
1.0.2-preview04 | 115 | 9/5/2025 |