Stately
XState v6 alpha

Persist and restore actors

Save an actor snapshot and restore it later.

Use getPersistedSnapshot() to get serializable actor state.

const actor = createActor(machine).start();
actor.send({ type: 'next' });
const stored = JSON.stringify(actor.getPersistedSnapshot());
actor.stop();

Pass the parsed snapshot to createActor(...) when restoring the actor.

const restored = createActor(machine, {
  snapshot: JSON.parse(stored)
}).start();

Persisted snapshots include persisted child actors. Store the machine version with each snapshot and keep external resources out of context.

Restore a checkout after a refresh or resume an order when the next webhook arrives. Do not restore an old snapshot with incompatible actor logic.