mirror of
https://github.com/pocket-id/pocket-id.git
synced 2026-10-13 13:19:04 +02:00
FRANCIS_HOST decides where the Francis actor runtime lives. When it is empty or set to "embedded" (the default), Pocket ID starts the runtime inside its own process, backed by its own database. Any other value is the address, or a comma-separated list of addresses, of a standalone Francis runtime. Pocket ID then connects to it as a remote actor host and starts no embedded runtime. Note: connecting to a standalone runtime also needs FRANCIS_HOST_PSK or FRANCIS_HOST_JWT, and optionally (but recommended) FRANCIS_CA. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DMgoTZtznSjP4SHTaHbRen
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
|
|
}
|