---
title: "Documentation"
url: "https://nsta1.github.io/Orleans.Lattice/index.html"
source: "https://github.com/NSTA1/Orleans.Lattice/blob/release/9.9/docs-site/pages/index.md"
documents: "Orleans.Lattice 9.9.0 (release line 9.9)"
built: "2026-10-04"
all-pages: "https://nsta1.github.io/Orleans.Lattice/llms.txt"
---
# State that lives in your Orleans cluster and converges without locks.

Orleans.Lattice is a sorted, durable, horizontally-scalable key-value store embedded in your Orleans cluster. Its conflict resolution is algebraic, so any cluster can accept a write to any key with no lock manager and no consensus round trip. Run it on one machine, then active-active across regions, with the same `ILattice` code.

Build: Writing code against `ILattice`. Evaluate: Deciding whether it fits. Operate: Running a Lattice estate.

Figure: Two concurrent G-Counter increments meeting at their join. An order diagram shaped like a diamond. At the bottom is the shared starting state, A=0 and B=0, value 0. Cluster A adds 3 to its own component, reaching A=3, B=0, value 3. Cluster B, at the same time, adds 5 to its own, reaching A=0, B=5, value 5. Neither of those states is above the other. Merging takes the larger value for each replica, so both paths rise to the same top state, A=3, B=5, value 8.

Both clusters hold A=3, B=5, value 8. Either order of delivery reaches the same join.

The [G-Counter](docs/crdt/gcounter.md) example from the CRDT guide. Merge takes the larger value per replica, so it is commutative, associative, and idempotent.

## Orleans.Lattice in three minutes

Why Orleans.Lattice exists, what it is, and where to start.

Video: [Orleans.Lattice in three minutes, video, 3:01](media/introduction-231f8425d398.mp4). Captions: [English](media/introduction-231f8425d398.vtt).

- **Length:** 3:01
- **Captions:** English
- **Transcript:** [On its companion page](docs/videos/introduction.md#transcript), with the code it shows
- **Download:** [MP4](media/introduction-231f8425d398.mp4), 11.6 MB

[All videos](docs/videos/index.md)

## Three ways in

Each way in is a chain of pages in reading order. Start at its first node, or join it wherever you already are.

### Build

You have chosen Orleans.Lattice and are writing code against `ILattice`.

1. [Quick start](README.md#quick-start) Register Lattice on a silo, then read and write your first keys.
2. [API reference](docs/lattice/api.md) The public `ILattice` interface, batch operations, options, and serializable types.
3. [Configuration](docs/lattice/configuration.md) Options, per-tree overrides, immutability constraints, and the storage provider. Also on Operate
4. [Predicate operations](docs/lattice/predicated-operations.md) Server-side filters for typed reads, conditional writes, scans, cursors, and range deletes.
5. [CRDT primitives](docs/crdt/readme.md) Counters, registers, sets, and maps that resolve concurrent writes by construction.
6. [Atomic writes](docs/lattice/atomic-writes.md) All-or-nothing batches across keys, shards, trees, and replicating clusters.
7. [Samples](samples/index.md) Runnable projects, grouped by concern.

### Evaluate

You are deciding whether the platform fits, and want the evidence.

1. [What it is and why it exists](README.md#what-is-it) The store, the problem it solves, and the three positions it takes.
2. [A core plus seams](README.md#architecture-a-core-plus-seams) How companion packages fill documented seams, and why one you leave out costs nothing.
3. [Consistency guarantees](docs/lattice/consistency.md) The contract for what a caller of `ILattice` observes, operation by operation.
4. [Chaos tests](docs/lattice/chaos-tests.md) A live cluster under concurrent load, topology changes, network partitions, and storage faults.
5. [Verified atomic commit](docs/lattice/verified-atomic-commit.md) The commit protocol's deterministic core, machine-checked with Coyote and a TLA+ specification.
6. [Single-silo performance](docs/lattice/performance-single-silo.md) Measured throughput and latency against real Azure Tables.
7. [Reference architecture](reference-architecture.md) An active-active, cross-region estate on Azure Container Apps, with a deployment kit.

### Operate

You run a Lattice estate and need it sized, observed, and recoverable.

1. [Configuration](docs/lattice/configuration.md) The options reference and per-tree overrides. Also on Build
2. [Tree sizing](docs/lattice/tree-sizing.md) Resize a live tree's leaf and internal-node limits, with an undo window.
3. [WAL tuning](docs/lattice/wal-tuning.md) How the write-ahead log's concurrency limits meet a durable backend's throughput envelope.
4. [Multi-silo scaling](docs/lattice/performance-multi-silo.md) What each workload gains as silos are added, measured on real Azure Storage.
5. [Metrics](docs/lattice/metrics.md) Runtime telemetry through `System.Diagnostics.Metrics`, for any OpenTelemetry exporter.
6. [Dashboards](docs/lattice.dashboards/README.md) Bundled Grafana dashboards for the Lattice meters.
7. [Troubleshooting](docs/lattice/troubleshooting.md) Symptom-driven diagnosis, starting from a `DiagnoseAsync` report.
8. [Disaster recovery](docs/lattice.backup/disaster-recovery.md) Recovering backups after losing the cluster that took them.
9. [Explorer console](docs/lattice.explorer/running-the-explorer.md) An auth-aware web console over the cluster's gRPC APIs, with capability-gated admin areas.  (in progress)

## One programming model, Local to Global

A deployment grows in three stages. The code that reads and writes data resolves `ILattice` and calls it in all three; each stage adds companion packages and configuration, not a rewrite.

1. **Local**
   One machine, no cloud account, no external services.
   - [File write-ahead log](docs/lattice.storage.file/README.md)
   - [Explorer console](docs/lattice.explorer/running-the-explorer.md) (in progress)
   - [MCP server](docs/lattice.api.mcp/README.md)
2. **Team**
   A shared cluster with real users, so identity, policy, and data shape start to matter.
   - [Membership](docs/lattice.membership/README.md), with [OIDC](docs/lattice.membership.oidc/README.md) or [Entra ID](docs/lattice.membership.entra/README.md)
   - [Fail-closed authorization](docs/lattice/security.md)
   - [Schema](docs/lattice.schema/README.md)
   - [Tenancy](docs/lattice.tenancy/README.md)
3. **Global**
   Multiple regions, each serving reads and writes.
   - [Active-active replication](docs/lattice.replication/README.md)
   - [Backup and disaster recovery](docs/lattice.backup/README.md)
   - [Autoscaling signal](docs/lattice.scaling/README.md)

Programming model: `ILattice`, unchanged at every stage

## A core plus seams

Storage, identity, governance, replication, administration, and observability are companion packages behind documented seams. A host takes only what it registers; a capability it leaves out costs nothing.

- [Core](docs/index.md#core): 3 packages - Orleans.Lattice, GrainIndex, Vector
- [APIs](docs/index.md#apis): 21 packages - Api.Abstractions, Api.State, Api.State.Grpc, Api.Data, and 17 more
- [MCP](docs/index.md#mcp): 4 packages - Api.Mcp, Api.Mcp.Apps, Api.Mcp.Telemetry, Api.Mcp.Telemetry.Azure
- [AI / RepoContext](docs/index.md#ai--repocontext): 2 packages - Api.Mcp.RepoContext, Api.Mcp.RepoContext.Replication
- [Explorer](docs/index.md#explorer) (in progress): 6 packages - Explorer.Web, Explorer.Core, Explorer.UI, Explorer.AppKit, and 2 more
- [Identity and Security](docs/index.md#identity-and-security): 5 packages - Auth, Membership, Membership.Oidc, Membership.Entra, and 1 more
- [Governance](docs/index.md#governance): 3 packages - Schema, Tenancy, Apps
- [Replication](docs/index.md#replication): 2 packages - Replication, Replication.Grpc
- [Storage](docs/index.md#storage): 4 packages - Storage.AzureTable, Storage.File, Backup.AzureBlob, Caching.AzureBlob
- [Operations](docs/index.md#operations): 3 packages - Backup, Scaling, Dashboards

Browse every package in the [documentation map](docs/index.md), or install from the [package inventory](PACKAGES.md).

## New here?

The [overview](README.md) explains what the platform is, why it exists, and how a deployment grows from one machine to many regions. Every capability is catalogued in [Features](FEATURES.md), each with its documentation and, where one exists, a runnable sample.
