// 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.

Client Direct (Internal Tooling)
Sector DevOps
Role Tech Lead
Engagement Internal tooling · 6 weeks
Team 1 (lead)
Stack Bash · Percona XtraBackup · Docker · MySQL
Year 2024

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.

Start a project