Backup Policy
Postgres PITR + daily snapshots for 30 days; S3 versioning + CRR; RPO ≤5 min (PG) / ≤15 min (S3)
What Gets Backed Up
| Component | Backed Up | Mechanism |
|---|---|---|
| Database (Heroku Postgres / AWS RDS) | Yes | Continuous PITR + daily snapshots/backups (30-day retention) |
| AWS S3 — documents | Yes | Versioning + cross-region replication (CRR) |
| Redis (cache/queue) | No | Redis is transient — it holds no critical persistent data |
Mechanisms and Retention
Relational Database
Shared Model (SaaS)
The database is Heroku Postgres (Standard plan).
| Parameter | Value |
|---|---|
| Type | Heroku-managed continuous Point-in-Time Recovery (PITR) via WAL + daily snapshots |
| Retention | 30 days |
| Continuous Protection | Enabled — every change is continuously backed up |
| RPO | ≤ 5 minutes |
The Heroku Postgres Standard plan retains up to 25 additional manual backups.
Enterprise Model (Dedicated)
The database is a dedicated AWS RDS PostgreSQL instance in the client's infrastructure.
| Parameter | Value |
|---|---|
| Type | Automatic daily AWS RDS backup + Point-in-Time Recovery (PITR) |
| Retention | 30 days |
| RPO | ≤ 5 minutes |
Automatic RDS snapshots are encrypted at rest (AWS KMS) and stored in AWS.
AWS S3 — Documents
| Parameter | Value |
|---|---|
| Type | Versioning enabled on the primary bucket + managed cross-region replication (CRR) to a separate AWS region |
| Lifecycle delete markers | 100 days (non-current versions expire after 100 days) |
| RPO | ≤ 15 minutes |
| CRR replica | Passive backup — no application reads from or writes to the replica directly |
Backup Encryption
All backups are encrypted at rest by the providers' managed services:
- Heroku Postgres backups: encryption at rest included
- AWS S3 (primary + CRR): Server-Side Encryption (SSE) enabled
Access to backups is restricted to the platform owner.
RPO — Recovery Point Objective
| Data | RPO |
|---|---|
| Relational data (Postgres) | ≤ 5 minutes |
| Documents (S3) | ≤ 15 minutes |
Integrity Verification
The integrity guarantees provided by the managed services are used (Heroku Postgres backups and AWS S3 versioning + CRR). Ad-hoc restores are performed when operationally necessary.
Backup Restoration — Tools
Database restoration is performed through the provider's managed tools, depending on the model:
| Model | Tool | Restore Types |
|---|---|---|
| Shared (SaaS) | Heroku Postgres (CLI / Dashboard) | PITR (most recent), specific daily backup |
| Enterprise (Dedicated) | AWS RDS (AWS Console / CLI) | PITR, automatic daily snapshot |
Important: Restoration is always performed over an HTTPS channel — transfer over HTTP is not supported.
Review Policy
This policy is reviewed annually or whenever there is a significant change to the architecture or compliance requirements.