mirror of
https://github.com/pocket-id/pocket-id.git
synced 2026-09-25 12:29:04 +02:00
Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Elias Schneider <login@eliasschneider.com>
22 lines
974 B
Go
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
|
|
}
|