Shardis.Migration 0.2.2

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

Shardis.Migration

Key migration execution primitives for Shardis. This package contains the executor, planner abstractions, checkpoint store contracts, and reference in-memory implementations used for tests and prototypes.

NuGet Downloads License

Install

dotnet add package Shardis.Migration --version 0.2.*

When to use

  • Deterministic, idempotent key migration (copy → verify → swap) between shard topologies.
  • Need pluggable verification (checksum, rowversion via provider) & projection abstractions.
  • Require checkpointing & resume support during long-running migrations.

What’s included

  • Planner models: MigrationPlan<TKey>, KeyMove<TKey>, MigrationCheckpoint<TKey>.
  • ShardMigrationExecutor<TKey> — orchestrates copy → verify → swap with checkpoint persistence & metrics hooks.
  • Abstractions: IShardDataMover<TKey>, IVerificationStrategy<TKey>, IShardMigrationCheckpointStore<TKey>, IShardMapSwapper<TKey>, IShardMigrationMetrics.
  • Duration instrumentation: executor records per-key copy / verify latency, per-swap-batch latency, and total elapsed (extend IShardMigrationMetrics for export).
  • Reference in-memory checkpoint store & test doubles (see tests) for prototyping.
  • Default stable canonicalization + hashing abstractions (IStableCanonicalizer, IStableHasher) consumed by checksum strategies. See docs/canonicalization.md.

Quick start

// register migration runtime + (optionally) provider-specific support (e.g. EF / Marten)
services.AddShardisMigration<string>(); // core abstractions & executor

var planner = services.GetRequiredService<IShardMigrationPlanner<string>>(); // if planner registered
var executor = services.GetRequiredService<ShardMigrationExecutor<string>>();

var plan = await planner.CreatePlanAsync(fromSnapshot, toSnapshot, CancellationToken.None);
var result = await executor.ExecuteAsync(plan, progress: null, CancellationToken.None);

Integration notes

  • For long migrations use a durable checkpoint store implementation (custom). An experimental SQL-backed implementation lives in Shardis.Migration.Sql (preview; API stability not yet guaranteed).
  • Verification strategy can be swapped (rowversion, checksum) by provider DI extensions before execution.
  • Projection strategy (IEntityProjectionStrategy) allows shape normalization (exclude volatile fields) — ensure determinism.

Samples & tests

Contributing

License

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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 (3)

Showing the top 3 NuGet packages that depend on Shardis.Migration:

Package Downloads
Shardis.Migration.Marten

Marten migration provider for Shardis (document data mover + checksum verification).

Shardis.Migration.Sql

Durable SQL-backed components (checkpoint store, shard map + history) for Shardis migration.

Shardis.Migration.EntityFrameworkCore

Entity Framework Core migration provider for Shardis (data mover + verification strategies).

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.2 249 9/11/2025
0.2.2-prerelease0001 249 9/11/2025
0.2.1 238 9/10/2025
0.2.1-prerelease0001 240 9/9/2025
0.2.0 221 9/8/2025
0.1.0-prerelease0097 129 1/15/2026
0.1.0-prerelease0094 303 12/15/2025
0.1.0-prerelease0093 280 12/15/2025
0.1.0-prerelease0092 290 12/15/2025
0.1.0-prerelease0091 217 12/14/2025
0.1.0-prerelease0090 494 12/9/2025
0.1.0-prerelease0086 207 9/7/2025
0.1.0-prerelease0085 215 9/7/2025
0.1.0-prerelease0084 209 8/31/2025
0.1.0-prerelease0083 204 8/31/2025
0.1.0-prerelease0082 249 8/28/2025
0.1.0-prerelease0075 261 8/28/2025
0.1.0-prerelease0067 253 8/27/2025