Skip to main content
Audience: SREs, platform operators, engineering leadership Last updated: 2026-02-23 Infrastructure: AWS (EKS, RDS, ElastiCache, S3) Classification: Internal — Confidential

Table of Contents

  1. RTO/RPO Targets
  2. Backup Strategy
  3. Failover Procedures
  4. Recovery Steps
  5. DR Testing Schedule

1. RTO/RPO Targets

Definitions

  • RTO (Recovery Time Objective): Maximum acceptable time from failure to full service restoration.
  • RPO (Recovery Point Objective): Maximum acceptable data loss measured in time.

Targets by Tier

SLA Commitments


2. Backup Strategy

Overview

PostgreSQL Backups

Automated (RDS):
  • Automated daily snapshots at 02:00 UTC.
  • Retention: 7 days (automated), 90 days (manual).
  • Continuous WAL archiving enables point-in-time recovery (PITR) to any second within the retention window.
Manual snapshots:
Logical backups (pg_dump):

Redis Backups

ElastiCache snapshots:
Redis persistence configuration:

Application and Configuration Backups

Backup Verification

Backups are verified monthly. See DR Testing Schedule.

3. Failover Procedures

3.1 RDS Multi-AZ Failover

Automatic failover occurs when:
  • The primary instance becomes unreachable.
  • The primary AZ experiences an outage.
  • The primary instance is rebooted with failover.
  • The instance type is modified (with apply-immediately).
Expected downtime: 60-120 seconds. Manual failover (for testing or planned maintenance):
Post-failover verification:

3.2 Redis Failover

ElastiCache Multi-AZ automatic failover:
  • Promotes a read replica to primary within 60 seconds.
  • Application reconnects automatically via the primary endpoint.
Manual failover:
Post-failover verification:

3.3 EKS Multi-Node Failover

Node failure handling:
  • Kubernetes automatically reschedules pods from failed nodes.
  • PodDisruptionBudgets ensure minimum replicas remain available.
Current PDB configuration:
Node failure response:
Full AZ failure response:

3.4 Full Region Failure

This is the most severe scenario. Follow these steps in order. Prerequisites:
  • DR region (us-west-2) has a standby EKS cluster (provisioned via Terraform).
  • Database snapshots are replicated cross-region.
  • Container images are in ECR with cross-region replication.
  • DNS is managed via Route 53 with health checks.
Failover procedure:

4. Recovery Steps

4.1 Post-Incident Recovery Checklist

After any disaster recovery event, complete the following steps: Immediate (0-1 hour):
  • Verify all services are healthy (/api/health and /api/ready return 200).
  • Confirm decision API is processing requests.
  • Check error rates are at baseline levels.
  • Verify database connectivity from all pods.
  • Confirm Redis connectivity and cache warming.
  • Validate worker queues are draining normally.
Short-term (1-4 hours):
  • Run data integrity checks:
  • Replay any messages from the DLQ.
  • Verify all scheduled jobs are running (cron, batch).
  • Check replication lag if read replicas are active.
  • Review and resolve any stuck pipelines.
Medium-term (4-24 hours):
  • Run full application test suite against production.
  • Verify dashboard data is complete and accurate.
  • Confirm backup jobs are running in the new configuration.
  • Update monitoring and alerting for the new infrastructure.
  • Notify stakeholders of resolution and any data impact.
Long-term (1-7 days):
  • Conduct a post-mortem and publish findings.
  • Update this runbook with lessons learned.
  • Plan failback to the primary region (if regional failover occurred).
  • Review and update RTO/RPO targets based on actual recovery time.
  • Reprovision DR infrastructure to be ready for the next event.

4.2 Failback to Primary Region

After a regional failover, fail back to the primary region once it is stable.

4.3 Data Reconciliation

After any failover that may have caused data divergence:

5. DR Testing Schedule

Annual DR Testing Calendar

DR Test Procedure

Pre-test checklist:
  • Announce the test in #kaireon-incidents and #engineering at least 48 hours in advance.
  • Create a fresh RDS snapshot.
  • Verify DR region infrastructure is provisioned.
  • Assign roles: Incident Commander, Communications Lead, Technical Lead.
  • Prepare the rollback plan.
During the test:
  • Start a timer when the test begins.
  • Follow the relevant failover procedure from Section 3.
  • Record actual times for each step.
  • Monitor error rates, latency, and data integrity throughout.
  • Document any deviations from the runbook.
Post-test checklist:
  • Fail back to the primary region (if regional test).
  • Verify all services are healthy.
  • Record actual RTO and RPO achieved.
  • Write a DR test report including:
    • Actual RTO vs. target RTO.
    • Actual RPO vs. target RPO.
    • Issues encountered.
    • Runbook updates needed.
    • Action items with owners and deadlines.
  • Update this runbook with findings.

DR Test Report Template


Appendix: Emergency Contacts

Appendix: Key AWS Resources