Skip to main content

Backups

Quantaprice automatically backs up all data and syncs backups to cloud storage. You can list, create, and restore backups through the Management API.

Automatic Backups

The master node creates a backup every 10 minutes. Each backup captures a consistent snapshot of all data stores (articles, pricelists, prices, VAT rates, rules, etc.).

On first startup, an initial backup is created automatically.

Automatic backup frequency can be configured per deployment. Contact support if you need a different interval.

Where Backups Are Stored

Backups are stored in two locations:

  1. Local disk on the master node — the 2 most recent backups are kept for fast access
  2. Cloud object storage (S3) — all backups are synced to durable cloud storage within 60 seconds of creation

New backups are never deleted from local disk until they have been confirmed uploaded to cloud storage.

Retention Policy

Backups are automatically thinned over time to balance storage costs with recovery granularity:

AgeWhat's kept
0 - 4 hoursEvery backup (~one every 10 minutes)
4 - 24 hours1 backup per hour
1 - 7 days1 backup per day
1 - 4 weeks1 backup per week
1 - 6 months1 backup per month
Older than 6 monthsDeleted

Retained backups (created manually with retain: true) are exempt from automatic deletion and kept indefinitely.

Retention runs once per hour.

Listing Backups

GET /management/backups

Returns all available backups from both local disk and cloud storage, sorted by creation time (newest first). Each entry includes:

FieldDescription
idBackup identifier (e.g. default-2026-02-14T09-15-30.123456Z)
createdISO 8601 timestamp
typeautomatic or manual
retainWhether this backup is protected from automatic deletion

Creating a Manual Backup

POST /management/backups

Optional request body:

{
"retain": true
}

Creates an immediate backup. Set retain: true to protect it from the automatic retention policy.

Restoring from a Backup

POST /management/restore

Request body:

{
"backup_id": "default-2026-02-14T09-15-30.123456Z"
}

What happens during restore

  1. The restore starts immediately and runs in the background
  2. Write operations are blocked while the restore is in progress — the API returns 503 Service Unavailable with a Retry-After: 15 header for non-management endpoints
  3. Read-only management endpoints remain available so you can monitor restore progress
  4. All data stores are overwritten with the backup contents
  5. Search indices are rebuilt automatically
  6. Replicas resync from the restored master once complete

The service process does not restart — the API stays up throughout the restore, but rejects write traffic until it finishes.

Restore response

The endpoint returns 202 Accepted:

{
"status": "in_progress",
"backup_id": "default-2026-02-14T09-15-30.123456Z",
"started_at": "2026-02-14T09:16:00Z",
"completed_at": null,
"error": null
}

Monitoring restore progress

GET /management/restore/status

Returns the current restore status: idle, in_progress, completed, or failed.

Backup source

  • If the backup exists on local disk, it is used directly (fastest)
  • If the backup only exists in cloud storage, it is downloaded first before restoring

Best Practices

  • Before major data imports, create a manual retained backup so you have a clean rollback point
  • Monitor restore status after triggering a restore — the API will return 503 to clients until it completes
  • Retained backups are ideal for milestone snapshots (e.g. before a migration or pricing restructure)
  • You do not need to stop or restart the service for either backup or restore operations