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
<PackageReference Include="Orleans.Lattice.Backup" Version="9.9.0" />
<PackageVersion Include="Orleans.Lattice.Backup" Version="9.9.0" />
<PackageReference Include="Orleans.Lattice.Backup" />
paket add Orleans.Lattice.Backup --version 9.9.0
#r "nuget: Orleans.Lattice.Backup, 9.9.0"
#:package Orleans.Lattice.Backup@9.9.0
#addin nuget:?package=Orleans.Lattice.Backup&version=9.9.0
#tool nuget:?package=Orleans.Lattice.Backup&version=9.9.0
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 | 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
- Microsoft.Orleans.Sdk (>= 10.2.2)
- Orleans.Lattice (>= 9.9.0)
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 |