Files
pocket-id/backend/internal/service/actors_backup.go
T
2026-08-05 19:57:38 +00:00

22 lines
974 B
Go

package service
import (
"context"
"io"
)
// actorsBackupFileName is the name of the entry in the export ZIP that contains the actor host's data
// The payload is Francis' own backup stream, which is a binary, versioned, provider-neutral format
const actorsBackupFileName = "francis.bin"
// ActorsBackupProvider backs up and restores the actor host's data: actor state, alarms, and dead-lettered jobs.
type ActorsBackupProvider interface {
// Backup writes a snapshot of all the actor host's persistent data to w.
// It runs against a consistent snapshot without blocking writers, so it's safe to take while Pocket ID is running.
Backup(ctx context.Context, w io.Writer) error
// Restore wipes all the actor host's persistent data and loads a snapshot produced by Backup from r.
// It fails if any host is currently connected, since restoring underneath a running Pocket ID instance would corrupt active actors.
Restore(ctx context.Context, r io.Reader) error
}