Skip to content

feat: migrate a running instance between nodes with an evolution gate#81

Merged
joshua-temple merged 1 commit into
mainfrom
feat/cluster-migration
May 31, 2026
Merged

feat: migrate a running instance between nodes with an evolution gate#81
joshua-temple merged 1 commit into
mainfrom
feat/cluster-migration

Conversation

@joshua-temple
Copy link
Copy Markdown
Collaborator

Adds live instance migration: Capture snapshots a running instance, its actor tree, and its machine definition into a wire-shippable Checkpoint, and Restore rebuilds it on another node — resuming in place (no entry actions re-run) and reconstructing the actors from the target's behavior palette (WithActorBehaviors). The move is gated on schema compatibility: Restore diffs the source machine IR (carried in the checkpoint) against the target machine via state/evolution and refuses with ErrIncompatibleMigration if the target is a breaking change, so an instance never resumes against a definition that would misread its persisted configuration; an additive or identical target is allowed. The checkpoint is all JSON, so it ships over any transport. This reuses the kernel's existing snapshot/restore and actor-snapshot seams — no kernel change. Coverage: cluster 92 percent. Additive; stdlib-only.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
@joshua-temple joshua-temple force-pushed the feat/cluster-migration branch from 8c5d98b to e703f4a Compare May 31, 2026 16:56
@joshua-temple joshua-temple merged commit dd74b78 into main May 31, 2026
10 checks passed
@joshua-temple joshua-temple deleted the feat/cluster-migration branch May 31, 2026 17:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant