MigrationHandle interface

The six verbs of a live migration between two Norsk instances, as one node speaks them. Every participating node — each rendition’s CMAF output, the multi-variant playlist — answers all six, so a coordinator never has to special-case a participant that implements only some.

The same migrationId runs through every verb of one handover. A node answers verbs out of order (an abort overtakes a ready that is still waiting for a segment), which is why each call resolves on its own.

A handover, in order:

  1. getState on the SOURCE, before the target is launched. Its payload is what the target is booted with. 2. applyInitialState on the TARGET, at boot. 3. ready on the TARGET. Resolves once it is at a known position. 4. stop on the SOURCE, given the target’s ready payload. 5. apply on the TARGET, given the source’s stop payload.

abort at any point releases anything still waiting. Nothing already published is undone: a source that has stopped pushing cannot resume.

Signature:

export interface MigrationHandle