Continuous backup
High Availability & Resiliency
Availability comes in layers: within a region (Multi-AZ), across regions (Aurora Global, active-passive), and — as a premium option — across clouds (see Multi-Cloud). Each layer maps to an honest SLA tier.
Three tiers of state
Section titled “Three tiers of state”Understanding resiliency starts with where state lives:
| State | Home | Notes |
|---|---|---|
| Realms, clients, users, credentials, sessions | Aurora PostgreSQL (source of truth) | persistent-user-sessions (KC 26 default) writes sessions to the DB |
| In-progress logins, session near-cache, brute-force counters, action tokens | Infinispan (in-region) | a cache, not the system of record |
| Access tokens | Client | stateless signed JWTs, validated in your app — no server round-trip |
Single region — Multi-AZ
Section titled “Single region — Multi-AZ”Aurora runs Multi-AZ: a primary plus a synchronous replica in a second AZ, with automated failover. Keycloak tasks span AZs and cluster via JGroups/JDBC_PING with embedded Infinispan, in-region only (no cross-site RELAY). This is the 99.9% tier.
Multi-region — Aurora Global (active-passive)
Section titled “Multi-region — Aurora Global (active-passive)”For multi-region DR we use Aurora Global Database: one primary region takes writes; secondary regions are read-only. Global Accelerator / GeoDNS health-checks route users to the active region with sticky affinity.
- Replication lag: typically < 1s
- RPO: ~1s (unplanned), 0 (planned)
- RTO: ~1 min (managed promotion) + DNS re-route
What crosses regions: only the database (plus a tiny cache-invalidation signal). In-flight
login state (authenticationSessions) never leaves a region and is recreatable.
Failover behavior (be precise about “recovery”)
Section titled “Failover behavior (be precise about “recovery”)”The availability SLA, tiered by architecture
Section titled “The availability SLA, tiered by architecture”| Tier | Architecture | Target SLA | Downtime budget |
|---|---|---|---|
| Single region | Aurora Multi-AZ | 99.9% | ~43.8 min/month |
| Multi-region | Aurora Global active-passive + DNS failover | 99.95% | ~21.9 min/month |
| Active-active multi-cloud | YugabyteDB (no failover gap) | 99.99% | ~4.4 min/month |
Backups & recovery drills
Section titled “Backups & recovery drills”Config as data
Tested failover