BTDB.Replication
35.13.0-preview
dotnet add package BTDB.Replication --version 35.13.0-preview
NuGet\Install-Package BTDB.Replication -Version 35.13.0-preview
<PackageReference Include="BTDB.Replication" Version="35.13.0-preview" />
<PackageVersion Include="BTDB.Replication" Version="35.13.0-preview" />
<PackageReference Include="BTDB.Replication" />
paket add BTDB.Replication --version 35.13.0-preview
#r "nuget: BTDB.Replication, 35.13.0-preview"
#:package BTDB.Replication@35.13.0-preview
#addin nuget:?package=BTDB.Replication&version=35.13.0-preview&prerelease
#tool nuget:?package=BTDB.Replication&version=35.13.0-preview&prerelease
BTDB.Replication
BTDB.Replication runs one or more logical BTDB databases on several disposable compute nodes. One elected leader
authors a single canonical history in Azure Blob Storage; every node keeps a local, disposable BTDB cache and executes
the application's ordered events locally. The application's event log remains the source for replaying a recent tail
that was not yet published.
Status: preview. Implemented and tested with deterministic simulation and seeded schedule exploration, loopback HTTP,
Azurite, and subprocess failover and ObjectDB application tests; the adapter and subprocess suites also pass against
live Azure, and restore throughput is measured on Azure VMs. Packages are published as -preview versions. Open before
production use: qualification with the production application (see Architecture).
Install
Requires .NET 10. For an ASP.NET Core host with Azure Blob Storage, install both adapters at the same preview version:
dotnet add package BTDB.Replication.Http --version 35.11.0-preview
dotnet add package BTDB.Replication.Azure --version 35.11.0-preview
Both depend on BTDB.Replication, which brings in BTDB. The optional BTDB.Replication.EventLog namespace is
included in the core package; its HTTP hosting and Azure storage are included in the two adapters. There is no
separate EventLog package. See the package and release guide
and the hosting guide for integration.
Properties
- Split-brain safety. A node leads only while it holds a finite Blob lease and the CAS-selected
leader.jsonnames its term and session. Losing contact with the leader never grants authority; when authority cannot be proven, canonical progress stops. Every canonical write is a conditional operation checked against that authority. - One shared recovery base. Blob Storage holds one canonical history per database (native TRL chain plus KVI checkpoints), independent of the replica count. Local files are only a validated cache.
- Disposable compute. A new node restores from the latest checkpoint and canonical TRL, reusing local files only when their identity, length and SHA-256 match. No persistent volume is required. A restore keeps working while the leader publishes and cleans up.
- Local-speed commits. Application commits and default reads are local. Followers compare their native TRL bytes with the leader's through a lightweight poll; a mismatch restarts and rebuilds the follower.
- Independent compaction. Every node compacts locally without creating a KVI. Only the leader publishes checkpoints (native KVI written after all its files) and deletes superseded remote files after a delay.
- Rolling upgrades. A monotonic application generation and database-name set are selected with the term. A prepared newer node receives a planned lease handoff; older nodes never lead again. Added databases are initialized by the leader; removed ones continue locally on old nodes. Schema transactions detach running followers.
Projects
| Project | Contents |
|---|---|
BTDB.Replication |
Coordinator, authority, publication, comparison, file set, checkpoints and cleanup; the optional EventLog of opaque records (plan). |
BTDB.Replication.Http |
Peer transport over ASP.NET Core/Kestrel and hosting registration. |
BTDB.Replication.Azure |
Azure leader record/lease and data storage adapters. |
BTDB.Replication.EventSourcing |
Typed event validation, Layer2 data/metadata topics, ambient ObjectDB consumption and restart replay. |
BTDB.Replication.Process.Test |
Subprocess failover, partition, upgrade and ObjectDB application tests using only the public API. |
Documents
- Architecture: behavior, invariants, mechanisms, open work and design history.
- Hosting: how an application integrates and configures a node.
- Core APIs: the opt-in BTDB core features replication builds on.
- Object storage: the provider-neutral storage contract and Azure/S3 research.
- Testing: test harness, coverage and measurements. M1 evidence: authority clock model.
- Implementation plan: implementation status and remaining steps.
- Event log plan: design, measurements and status of the optional event log.
- AGENTS.md: working agreement for changes to this library.
| 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
- BTDB (>= 35.13.0)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on BTDB.Replication:
| Package | Downloads |
|---|---|
|
BTDB.Replication.Azure
Azure Blob Storage lease, leader record and canonical storage adapters for BTDB.Replication. |
|
|
BTDB.Replication.Http
ASP.NET Core hosting, health checks, metrics and the HTTP peer transport for BTDB.Replication. |
|
|
BTDB.Replication.EventSourcing
Typed event publishing, synchronous validation, Layer2 serialization, ambient ObjectDB transactions and replay over BTDB replication and EventLog. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 35.13.0-preview | 47 | 10/20/2026 |
| 35.12.1-preview | 57 | 10/19/2026 |
| 35.12.0-preview | 73 | 10/16/2026 |
| 35.11.3-preview | 65 | 10/16/2026 |
| 35.11.2-preview | 71 | 10/13/2026 |
| 35.11.1-preview | 60 | 10/12/2026 |
| 35.11.0-preview | 88 | 10/3/2026 |