Event-Driven Notification Platform  ·  View 26 of 26  ·  6 · Assurance

Failure Modes and Disaster Recovery

Everything that can break, what covers it, and the one trade-off deliberately accepted.

Editable source SVG draw.io All views
Infrastructure failure — red is the failure, the label is the cover
Infrastructure failure — red is the failure, the label is the cover
Compute and storage
Compute and storage
Node loss
PDB plus reschedule
Node loss...
Broker loss
RF 3 · min.insync 2
Broker loss...
Zone loss
3 zones · quorum holds
Zone loss...
Region loss
warm DR · RTO 30 min
Region loss...
Stateful services
Stateful services
PostgreSQL primary loss
auto failover under 30 s
PostgreSQL primary loss...
Flink job failure
checkpoint restore 60 s
Flink job failure...
Temporal outage
immediate path unaffected
Temporal outage...
Redis loss
dedup fails open · duplicates over loss
Redis loss...
Dependency failure
Dependency failure
Providers
Providers
Provider outage
circuit opens · secondary
Provider outage...
Both vendors down
park in DLQ · replay
Both vendors down...
Provider throttling
adaptive TPS · P2 shed
Provider throttling...
Internal services
Internal services
Template Service down
last published cached
Template Service down...
Config Service down
rules held in Flink state
Config Service down...
Customer Master down
24 h profile cache
Customer Master down...
Poison message
3 strikes then DLQ
Poison message...
Recovery tooling
Replay Service · DLQ console
Recovery tooling...
Backup
PITR 7 d · cross-region
Backup...
Game day
quarterly · these exact modes
Game day...
redrive when healthy
redrive when healthy
inspect and fix
inspect and fix
restore path
restore path
exercises quarterly
exercises quarterly
Failure Modes and Disaster Recovery
Failure Modes and Disaster Recovery
Risk / gap
Risk / gap
Application we own
Application we own
Data store
Data store
Security / platform
Security / platform
failure / alternate
failure / alternate
batch
batch
RPO 0 in-region for an acknowledged event, RPO 5 min cross-region, RTO 30 min. The one accepted trade-off is drawn in the second box: if Redis is lost, deduplication fails open and the platform sends duplicates rather than dropping notifications.
RPO 0 in-region for an acknowledged event, RPO 5 min cross-region, RTO 30 min. The one accepted trade-off is drawn in the second box: if Redis is lost, deduplication fails open and the platform sends duplicates rather than dropping notifications.
v 1.0 · owner SRE and Security Architecture · date 2026-08
v 1.0 · owner SRE and Security Architecture · date 2026-08
Text is not SVG - cannot display

The stated contract

  • At-least-once processing with idempotent consumers, and deduplication that suppresses duplicates where it can
  • The platform prefers duplicate processing over lost notifications, which is requirement nine restated as a design rule
  • No acknowledged event is lost: acknowledgement happens only after a durable quorum write

The accepted trade-off

  • If Redis is lost, deduplication fails open — the platform sends duplicates rather than dropping notifications
  • Flink keyed state and the unique dedup_key constraint still catch most of it, so the exposure is the window between them
  • Failing closed would drop transactional notifications during a cache incident, which is the worse outcome

Verification

  • Every mode on this page is exercised in a quarterly game day, not assumed
  • Broker kill, zone drain, provider blackhole and poison message are automated in the staging chaos run on every release train
  • Region failover is rehearsed twice a year with a real DNS cutover