Skip to main content

Snapshot Management

Snapshots serialize target state for fast restart without full re-baseline.

Configuration

snapshot {
enabled = true
store = s3
store_config {
bucket = my-bucket
prefix = "snapshots/"
region = us-east-1
}
serializer = jsonl
schedule = "every 6h"
on_shutdown = true
retention {
keep_count = 10
max_age = 7d
}
user_meta {
config_version = "2.1"
}
}

CLI commands

# Create a snapshot
laredo snapshot create --meta config_version=2.1

# List snapshots
laredo snapshot list

# Inspect a snapshot
laredo snapshot inspect snap_20260320_123456

# Restore from a snapshot
laredo snapshot restore snap_20260320_123456

# Delete a snapshot
laredo snapshot delete snap_20260319_183000

# Prune old snapshots (keep N most recent)
laredo snapshot prune --keep 3

Library usage

engine, _ := laredo.NewEngine(
// ... sources and pipelines ...
laredo.WithSnapshotStore(s3.New(
s3.Bucket("my-bucket"),
s3.Prefix("snapshots/"),
)),
laredo.WithSnapshotSerializer(jsonl.New()),
laredo.WithSnapshotSchedule(6 * time.Hour),
laredo.WithSnapshotOnShutdown(true),
)

Retention

After each snapshot, the engine enforces retention by deleting snapshots that exceed keep_count or max_age. Retention is also enforced on the prune CLI command and gRPC call.