mirror of
https://github.com/pocket-id/pocket-id.git
synced 2026-10-01 07:19:05 +02:00
FRANCIS_HOST decides where the Francis actor runtime lives. When set to "embedded" (the default), Pocket ID starts the runtime inside its own process. 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. Because when using a remote runtime, it's likewise not possible to enforce a single instance of Pocket ID is running at once, the env vars currently have the `EXPERIMENTAL_` prefix, are **undocumented**, and show a warning if used. Notes: - Connecting to a standalone runtime also needs FRANCIS_HOST_PSK or FRANCIS_HOST_JWT_FILE, and optionally (but recommended) FRANCIS_CA. - When connecting to a remote runtime, exporting Pocket ID data does not include the actor state, which will need to be backed up and restored separately
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
|
|
}
|