Orleans.Lattice.Backup 9.9.0

dotnet add package Orleans.Lattice.Backup --version 9.9.0
                    
NuGet\Install-Package Orleans.Lattice.Backup -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.Backup" 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.Backup" Version="9.9.0" />
                    
Directory.Packages.props
<PackageReference Include="Orleans.Lattice.Backup" />
                    
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.Backup --version 9.9.0
                    
#r "nuget: Orleans.Lattice.Backup, 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.Backup@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.Backup&version=9.9.0
                    
Install as a Cake Addin
#tool nuget:?package=Orleans.Lattice.Backup&version=9.9.0
                    
Install as a Cake Tool

Orleans.Lattice.Backup

Optional, opt-in causally-consistent backup and restore add-on for Orleans.Lattice. Captures a named, point-in-time backup of a selected scope of a lattice tree and restores it later without losing a single bit of causal metadata - zero runtime cost until AddLatticeBackup is registered.

Design

AddLatticeBackup() installs the storage and engine surface on top of the core snapshot, write-ahead-log, and merge machinery:

  • Full capture - a scoped snapshot exported through the core zero-observable-writes cursor, with a self-describing manifest that records the consistency cut, shard topology, per-key shape and merge-mode map, per-origin provenance high-water marks, and an optional compression-dictionary reference.
  • Incremental capture - a forward write-ahead-log differential layered on a base backup, resuming from the base's per-partition WAL offsets and falling back to a full capture when the resume point has been trimmed, a range delete surfaces in the delta window, or the base chain was captured on a different cluster.
  • Restore - a mode-faithful replay that reinstalls every entry's hybrid-logical-clock, version vector, origin cluster id, expiry, and tombstone flag exactly as captured, either in place (bulk-load or last-writer-wins merge) or via an atomic shadow-cutover to a fresh tree.
  • Scheduling and retention - opt-in recurring full and incremental schedules per scope, and a chain-aware retention policy that never prunes the base chain of a retained increment.

Every backup id is the SHA-256 content address of its captured payload (an incremental's id also folds in its base backup id), so a retried capture that produces identical bytes re-registers the same backup rather than a duplicate, and a restore is idempotent under retry. Artifact ids are per-capture, not content-addressed. Backups are written to a pluggable ILatticeBackupSink, defaulting to an in-cluster dogfooded tree, with a durable Azure Blob Storage sink shipped as a sibling package.

Security

Every capture and restore authorizes its scope through the same access gate the data path uses, against a dedicated Backup (capture) or Restore (author / bulk-load) capability, before touching data; the list, describe, and delete operations of the Orleans.Lattice.Api.Backup control facade authorize each manifest's scope the same way. The engine's catalog-store and sink seams themselves perform no authorization check. The catalog and store live in reserved sys-backup-* trees that inherit the core sys- catalog-hiding filter.

Registration

siloBuilder
    // Not durable: use a durable grain storage provider and a durable WAL in production.
    .AddLattice((silo, name) => silo.AddMemoryGrainStorage(name))
    .AddLatticeBackup();

With the in-memory grain storage above and the in-memory WAL that core registration installs by default, the default in-cluster sink's backups and the backup catalog - both ordinary reserved sys-backup-* trees - do not survive a restart. A durable deployment registers durable grain storage and a durable WAL provider, and for disaster recovery a durable external sink.

For operator-facing backup and restore, the API facade offers accept-then-poll operations with durable progress and cancellation. Engine service interfaces in this package remain current; the facade's older blocking verbs are deprecated and will be removed in the next major version. Migration guide: https://nsta1.github.io/Orleans.Lattice/docs/lattice.api.backup/operations.html#migrating-from-the-blocking-verbs.

Must be registered after AddLattice(...). For a remotely-drivable control plane, add the Orleans.Lattice.Api.Backup facade and its gRPC binding.

See the Backup documentation for the full guide.

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 (6)

Showing the top 5 NuGet packages that depend on Orleans.Lattice.Backup:

Package Downloads
Orleans.Lattice.Replication

Cross-cluster replication for Orleans.Lattice - sharded, CRDT-backed key-value replication between Orleans clusters.

Orleans.Lattice.Api.Abstractions

Shared contract package for the Orleans.Lattice API facades. Holds the transport-agnostic service interfaces and request/response models for the state, data, auth, backup, schema, tree-administration, tenancy, replication, telemetry, installable-app control, and region-discovery surfaces, so binding packages depend on a public, versioned contract instead of another package's internals. Contains no implementation and starts nothing; the facade packages implement these contracts and are registered separately.

Orleans.Lattice.Backup.AzureBlob

Azure Blob Storage ILatticeBackupSink for Orleans.Lattice.Backup. Persists backup manifests as block blobs and backup artifacts as append blobs of length-framed chunks (one blob per capture's artifact) in an Azure Storage container, so backups are durable off-cluster. Registered through DI in place of the in-cluster default sink; the capture and restore engines stay unaware of Azure specifics.

Orleans.Lattice.Api.Backup

Optional transport-agnostic control facade add-on for Orleans.Lattice backup and restore. Exposes fail-closed backup administration for full, incremental and backup-set capture, recurring schedules and per-scope status, restore and revert, cold restore, catalog rebuild from the sink and catalog scrub against it, catalog listing and inventory, chain describe, artifact export, deletion, backup health monitoring, and side-effect-free capability probes; transport packages adapt over this facade.

Orleans.Lattice.Api.TreeAdmin

Optional transport-agnostic control facade add-on for Orleans.Lattice whole-tree administration. Presents one discoverable, fail-closed surface for capability probes, shard diagnostics and hotness, tree statistics, storage and WAL usage, tree lifecycle, configuration and aliases, bulk load, resize, reshard, snapshots, restore, WAL placement and moves, view administration, tag-index repair, retention, shard compaction, the orphaned-leaf audit, survey and repair, and schema-capability delegation. Registered separately; adds no transport behaviour of its own.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
9.9.0 110 10/2/2026
9.8.1 114 9/29/2026
9.8.0 379 9/26/2026
9.7.1 103 9/24/2026
9.7.0 333 9/21/2026
9.6.2 390 9/9/2026
9.6.1 123 9/7/2026
9.6.0 681 9/5/2026
9.5.1 108 9/7/2026
9.5.0 376 9/2/2026
9.4.1 129 8/31/2026
9.4.0 703 8/29/2026
9.3.0 386 8/25/2026
9.2.0 451 8/23/2026
9.1.0 471 8/20/2026
9.0.0 405 8/14/2026
8.0.0 1,091 7/20/2026
7.9.4 121 7/17/2026
Loading failed