// case study · 2024
A MySQL backup orchestrator with point-in-time recovery
A backup management system for Docker-based and host-based MySQL installations. Full + incremental snapshots, point-in-time recovery, automated retention, compression, and verified restores.
The brief
Multiple databases, multiple environments, mixed Docker + bare-metal — and the backup story was a tangle of cron jobs and assumptions. We needed point-in-time recovery, tested restores, and an honest answer to “what’s our RPO and RTO” for every database we run.
What we built
- Full + incremental snapshots built on Percona XtraBackup with binlog application for point-in-time recovery to any second within the retention window.
- Docker + host-based MySQL support with a single config schema — the same orchestrator runs against containers and hardware.
- Automated retention — daily, weekly, monthly policies, enforced by the orchestrator, never by humans editing crontabs.
- zstd compression with verified integrity hashes; bandwidth costs dropped by ~60% vs. gzip without measurably impacting backup duration.
- Restore verification — every backup is restored into a sandbox automatically and validated against checksum + sample queries. Untested backups don’t count.
- Operator playbook for the top-five recovery scenarios, kept inside the same repo as the tooling.
Outcome
Documented RPO of 5 minutes and RTO of 30 minutes for every database in the system. First time the team had a backup playbook they actually trusted enough to run from cold.
// next step
Have a project like this?
Tell us about it. We respond within one working day with a written estimate or a calendar link.