Orleans.Lattice.Storage.File 9.9.0

dotnet add package Orleans.Lattice.Storage.File --version 9.9.0
                    
NuGet\Install-Package Orleans.Lattice.Storage.File -Version 9.9.0
                    
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="Orleans.Lattice.Storage.File" Version="9.9.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Orleans.Lattice.Storage.File" Version="9.9.0" />
                    
Directory.Packages.props
<PackageReference Include="Orleans.Lattice.Storage.File" />
                    
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 Orleans.Lattice.Storage.File --version 9.9.0
                    
#r "nuget: Orleans.Lattice.Storage.File, 9.9.0"
                    
#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 Orleans.Lattice.Storage.File@9.9.0
                    
#: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=Orleans.Lattice.Storage.File&version=9.9.0
                    
Install as a Cake Addin
#tool nuget:?package=Orleans.Lattice.Storage.File&version=9.9.0
                    
Install as a Cake Tool

Orleans.Lattice.Storage.File

Durable local disk backend for the Orleans.Lattice write-ahead log (IWalStorageProvider). Pluggable via the core AddWalStorage(...) seam, so a cloud-free, single-box deployment can persist its commit log to a mounted directory without an external storage account.

What it gives you

  • Durable commit log - persists the canonical WAL to a segmented, append-only log on disk, giving crash-safe recovery across silo restarts and redeployments.
  • All-or-nothing batches - a batch append is flushed to physical disk (fsync) before the write completes, preserving the WAL's all-or-nothing durability contract.
  • No cloud dependency - plugs into the core AddWalStorage(...) seam directly, so a laptop or a single container gets, for its commit log, the same observable durability guarantees as the Azure Table backend.
  • Self-compacting - trimmed (garbage-collected) payload bytes are reclaimed by rewriting a shard's segment file once enough dead space accumulates, with tunable thresholds.

Getting started

siloBuilder
    // Not durable: replace this in-memory grain storage with a durable
    // grain storage provider for a durable deployment (see below).
    .AddLattice((silo, storageName) => silo.AddMemoryGrainStorage(storageName))
    .AddFileWalStorage(options =>
    {
        options.RootDirectory = "/data/wal";
    });

The WAL is only half of a durable tree. Each leaf's state row and its snapshots live in the grain storage provider AddLattice registers, and the WAL garbage collector trims entries once a snapshot there covers them, so the in-memory grain storage above loses that state on restart - and with it any data whose WAL entries were already trimmed. For a durable deployment register a durable grain storage provider instead: the RepoContext container sample pairs this WAL with Orleans ADO.NET grain storage over a single SQLite file on the same volume.

The provider also wires the durable-WAL garbage-collection stack (WAL cursor registry, leaf reporter, and WAL GC). Each leaf's applied frontier is mirrored into durable pins the GC consults, so a restart that wipes the process-local cursor registry cannot let the GC trim entries a leaf still needs.

See the storage guide for the on-disk layout, the durability contract, compaction tuning, and operations guidance. For the core WAL provider seam, see WAL storage providers.

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
9.9.0 45 10/2/2026
9.8.0 86 9/26/2026
9.7.1 82 9/22/2026
9.7.0 87 9/21/2026
9.6.0 97 9/5/2026