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.