Backup and Restore Service · View 06 of 26 · 3 · Structure
Decisions
- Custody sits below recovery and proof, and nothing in it depends on anything above. The layers above can be rebuilt from Git and a scan. Custody cannot be rebuilt, so it depends on nothing.
- Tier 1 log shippers live in the capture layer but run inside the database's own processes (archive_command, binlog streamer, TiDB log task). The scheduler starts base copies, not log shipping.
- Experience is a thin layer over one API. The console, the CLI and the manual runbook call the same operations, so a restore rehearsed in one works in the others.
Deliberate omissions
- Identity (SPIRE, Keycloak) and observability run across every layer and are shown on views 21 and 24.
- The disposal worker sits in the custody domain under its own identity and appears on view 13.
Own code, kept thin
- Eight small Go services: API, policy compiler, coverage scanner, retention broker, custody copier, object mirror, verifier and disposal worker, plus the Temporal workflows. The engine tools move the bytes. The platform's code decides, records and proves.