BTDB.Replication 35.11.0-preview

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

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 prepared as -preview versions. Open before production use: qualification with the production application (see Architecture).

Properties

  • Split-brain safety. A node leads only while it holds a finite Blob lease and the CAS-selected leader.json names 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.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 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.
  • net10.0

NuGet packages (2)

Showing the top 2 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.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
35.11.0-preview 80 10/3/2026