Backup & Recovery
How Odento protects your data against loss. Learn about our automated backup schedule, point-in-time recovery, disaster recovery plan, and data export capabilities.
Overview
Data loss is one of the most serious risks for any healthcare platform. Odento implements a multi-layered backup and recovery strategy: automated daily full backups, continuous write-ahead log (WAL) archiving for point-in-time recovery, off-site backup replication, and a documented disaster recovery plan with defined RTO and RPO targets.
All backups are encrypted, stored in India (Mumbai region), and regularly tested for restorability. Backup operations are monitored 24/7 with alerts on any failures.
Recovery Targets
RTO (Recovery Time Objective): 4 hours — maximum time to restore service after a disaster. RPO (Recovery Point Objective): 15 minutes — maximum data loss in a disaster scenario.
Screenshot — Overview
Automated Daily Backups
Odento performs automated full database backups daily. Backups are scheduled during low-traffic hours (2:00 AM IST) to minimize impact on performance. The backup process is fully automated and monitored — no manual intervention required.
Backup Schedule
| Backup Type | Frequency | Retention | Storage |
|---|---|---|---|
| Full database backup | Daily (2:00 AM IST) | 30 days | GCS Coldline (Mumbai) |
| WAL archive | Continuous (every 60s) | 7 days | GCS Standard (Mumbai) |
| Redis snapshot | Every 6 hours | 7 days | GCS Standard (Mumbai) |
| File storage (GCS) | Continuous (GCS versioning) | 30 days of versions | GCS Standard (Mumbai) |
| Weekly archive | Every Sunday | 12 weeks | GCS Coldline (Mumbai) |
Backup Encryption
All backups are encrypted with AES-256-GCM before being written to GCS. Encryption keys are managed via Cloud KMS and are separate from the production database keys. This means even if backup storage is compromised, the data cannot be decrypted without the specific backup encryption key.
Screenshot — Automated Daily Backups
Point-in-Time Recovery
Point-in-time recovery (PITR) allows restoring the database to any specific moment within the last 7 days. This is powered by PostgreSQL's write-ahead log (WAL) archiving — every database transaction is logged to WAL files, which are continuously shipped to GCS every 60 seconds.
PITR is essential for recovering from accidental data deletion, corrupted transactions, or application bugs that modify data incorrectly. Instead of restoring to the last daily backup (which could be up to 24 hours old), you can restore to the exact moment before the incident occurred.
How Point-in-Time Recovery Works
1. Incident detected (e.g., accidental deletion at 3:15 PM)
├── Admin identifies the exact time of the incident
└── Recovery target: 3:14 PM (1 minute before)
2. Restore process initiated
├── Select base backup (previous night's full backup)
├── Replay WAL files up to the target timestamp
└── Database restored to 3:14 PM state
3. Verification
├── Verify restored data integrity
├── Confirm the incident is reversed
└── Application reconnects to restored database
4. Recovery time
├── Typical: 30-60 minutes
└── Maximum: 4 hours (RTO)PITR Limitations
Point-in-time recovery can only restore data within the WAL retention period (7 days). For older recovery needs, the last daily backup from the target date is used, which may result in up to 24 hours of data loss.
Disaster Recovery Plan
Odento has a documented and tested disaster recovery (DR) plan that covers scenarios ranging from single-component failures to complete regional outages. The plan is reviewed quarterly and tested with full recovery drills twice a year.
Disaster Scenarios and Response
- Database failure: VM disk failure or PostgreSQL corruption. Recovery: restore from latest backup + WAL replay. RTO: 1 hour.
- VM failure: Compute Engine VM becomes unavailable. Recovery: provision new VM, attach disk snapshot, restore services. RTO: 2 hours.
- Redis failure: Redis data loss or corruption. Recovery: restart Redis, replay AOF/RDB. RTO: 30 minutes. Minimal data impact (cache only).
- GCS outage: File storage unavailable. Recovery: GCS is highly available (99.95% SLA). If regional outage, switch to multi-regional bucket. RTO: 15 minutes.
- Regional outage: Complete Mumbai region failure. Recovery: provision infrastructure in secondary region, restore from cross-region backup. RTO: 4 hours.
- Ransomware/cyberattack: Recovery: isolate systems, restore from known-good backups, rotate all credentials, forensic analysis. RTO: 4-8 hours.
DR Testing
The disaster recovery plan is tested regularly:
- Monthly: Automated backup restoration test — a random backup is restored to a test environment and verified.
- Quarterly: Component failure simulation — a non-production service is intentionally failed to test failover.
- Semi-annually: Full DR drill — complete infrastructure is provisioned from backups in an isolated environment.
- Annually: Full regional failover test — infrastructure provisioned in a secondary region from cross-region backups.
99.9% Uptime SLA
Odento targets 99.9% uptime (max 8.76 hours downtime per year). The DR plan ensures rapid recovery from any failure scenario, keeping actual downtime well below this target.
Data Export
Organization owners can export their data at any time. Data export is available in multiple formats and includes all data belonging to the organization:
- Patient records: CSV or JSON with all clinical notes, treatment plans, and medical history.
- Appointments: CSV with full appointment history.
- Financial data: CSV with invoices, payments, and GST reports.
- Files (X-rays, photos): ZIP archive of all files from GCS (download links valid for 24 hours).
- Audit logs: CSV or JSON export of all audit log entries.
Export Process
- Navigate to Settings → Data Management → Export.
- Select the data types to export.
- Select the date range (or export all data).
- Choose the export format (CSV, JSON, or ZIP for files).
- Click Request Export. The export is prepared asynchronously.
- You receive a WhatsApp and email notification when the export is ready.
- Download the export from the dashboard. Download links are valid for 24 hours.
Export Security
Data exports contain sensitive patient information. Export files are encrypted and download links are single-use. Ensure you store exported data securely and delete it when no longer needed.
Data Restoration Requests
If you need to restore data from a backup (e.g., after accidental deletion), contact our support team. Restoration requests are processed within 4 hours during business hours and 8 hours outside business hours. The following information is required:
- Organization name and ID
- Specific data to restore (patient records, appointments, invoices, etc.)
- Target restore date and time (for point-in-time recovery)
- Reason for restoration
- Authorization from the organization owner
Contact support@odento.app or use the live chat in the dashboard to initiate a restoration request.
Screenshot — Data Restoration Requests
Was this page helpful?
Help us improve our documentation