JK
JustKalm
Disaster Recovery

Business Continuity

Enterprise-grade disaster recovery with 15-minute RTO, multi-region active-active architecture, and automated failover ensuring 99.99% availability.

15 min

RTO

1 min

RPO

99.99%

Availability

12

DR Tests/Year

Multi-Region Architecture

Active-active deployment across three AWS regions with intelligent traffic routing and automatic failover.

us-east-1 (Primary)
Active45% load
eu-west-1 (Secondary)
Active35% load
ap-northeast-1 (Tertiary)
Active20% load
us-west-2 (DR Hot Standby)
Standby0% load

RTO/RPO Targets

# disaster_recovery/sla_config.py
from dataclasses import dataclass
from enum import Enum
from typing import Dict

class ServiceTier(Enum):
    CRITICAL = "critical"      # Core API, Auth
    HIGH = "high"              # ML scoring, Analytics
    MEDIUM = "medium"          # Reporting, Batch jobs
    LOW = "low"                # Internal tools

@dataclass
class RecoveryTarget:
    service_tier: ServiceTier
    rto_minutes: int           # Recovery Time Objective
    rpo_minutes: int           # Recovery Point Objective
    mttr_minutes: int          # Mean Time To Recovery
    availability_target: float

# Recovery targets by service tier
RECOVERY_TARGETS: Dict[ServiceTier, RecoveryTarget] = {
    ServiceTier.CRITICAL: RecoveryTarget(
        service_tier=ServiceTier.CRITICAL,
        rto_minutes=15,          # Back online in 15 minutes
        rpo_minutes=1,           # Max 1 minute data loss
        mttr_minutes=10,         # Mean recovery time
        availability_target=0.9999  # 99.99% uptime (52.6 min/year)
    ),
    ServiceTier.HIGH: RecoveryTarget(
        service_tier=ServiceTier.HIGH,
        rto_minutes=30,
        rpo_minutes=5,
        mttr_minutes=20,
        availability_target=0.999   # 99.9% uptime (8.76 hrs/year)
    ),
    ServiceTier.MEDIUM: RecoveryTarget(
        service_tier=ServiceTier.MEDIUM,
        rto_minutes=60,
        rpo_minutes=15,
        mttr_minutes=45,
        availability_target=0.995   # 99.5% uptime (1.83 days/year)
    ),
    ServiceTier.LOW: RecoveryTarget(
        service_tier=ServiceTier.LOW,
        rto_minutes=240,
        rpo_minutes=60,
        mttr_minutes=120,
        availability_target=0.99    # 99% uptime (3.65 days/year)
    ),
}

# Service tier assignments
SERVICE_TIERS = {
    "api-gateway": ServiceTier.CRITICAL,
    "auth-service": ServiceTier.CRITICAL,
    "valuation-engine": ServiceTier.CRITICAL,
    "ml-scoring": ServiceTier.HIGH,
    "analytics-pipeline": ServiceTier.HIGH,
    "reporting-service": ServiceTier.MEDIUM,
    "batch-processor": ServiceTier.MEDIUM,
    "admin-portal": ServiceTier.LOW,
}

Disaster Recovery Strategy

Active-Active

Multi-region with real-time data replication

RTO:< 5 minCost:High
API GatewayAuthCore API

Warm Standby

Pre-provisioned infrastructure at reduced capacity

RTO:15-30 minCost:Medium
ML ScoringAnalyticsSearch

Pilot Light

Minimal resources with automated scaling

RTO:1-2 hoursCost:Low
Batch JobsReportingAdmin

Always Ready. Always Resilient.

Disaster recovery isn't a feature—it's a culture of continuous validation.

15 min RTO1 min RPO99.99% SLA