# Business Continuity And Disaster Recovery Runbook

Owner: Platform operations
Severity: SEV1 for regional outage, database unavailability, restore activation or loss of critical provider connectivity.

## Objectives

- API recovery time objective: 60 minutes for critical read paths in preprod/production design.
- Database point-in-time recovery objective: 15 minutes once managed PostgreSQL PITR is active.
- Customer communication: first approved update within 60 minutes for customer-impacting SEV1.

## Quarterly DR Test

1. Record `BANKING_BCDR_TEST_REFERENCE` in the change or incident system.
2. Restore latest encrypted backup to an isolated environment.
3. Run migrations in dry-run mode and then restore validation queries.
4. Verify `/readyz`, login, account list, transfer listing, ledger trial balance and reconciliation dashboard.
5. Exercise provider degraded-mode toggles and support/customer communication draft.
6. Attach screenshots/logs, restore timestamp, data timestamp, operator and approver.

## Continuity Actions

- Regional app failure: route traffic to standby deployment after health checks and database connectivity pass.
- Database primary failure: follow managed PostgreSQL failover; pause money movement until consistency checks pass.
- Provider failure: use `docs/runbooks/provider-outage.md`.
- Ledger or settlement integrity issue: use dedicated runbook before reopening money movement.

## Closure

Close the DR exercise only when restore evidence, validation output, incident channel transcript and follow-up actions are attached.
