Wie wir mit Lambda, EventBridge und SNS ein skalierbares Alerting-System für Wetterwarnungen aufgebaut haben.
Der Auftrag
Ein Kunde aus dem öffentlichen Sektor brauchte ein System zur automatisierten Alarmierung bei Extremwetterereignissen. Die Anforderungen:
- Echtzeit-Verarbeitung von Wetterdaten
- Regelbasierte Alarmierung (Schwellwerte, Kombinationen)
- Multi-Channel-Benachrichtigung (SMS, E-Mail, Push)
- Audit-Trail für alle Entscheidungen
- Hohe Verfügbarkeit (99.9%)
Timeline: 6 Wochen für ein funktionierendes MVP.
Die Architektur
Datenquellen
Wetterdaten kommen aus verschiedenen Quellen:
- DWD Open Data: Offizielle Warnungen des Deutschen Wetterdienstes
- Sensornetzwerk: Lokale Messstationen (Temperatur, Niederschlag, Wind)
- Pegelstände: Wasserstände von Flüssen
Ingestion Layer
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ DWD API │ │ Sensoren │ │ Pegel │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
▼ ▼ ▼
┌──────────────────────────────────────────────────────┐
│ API Gateway │
└──────────────────────────┬───────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────┐
│ Lambda: Data Normalizer │
└──────────────────────────┬───────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────┐
│ EventBridge │
└──────────────────────────────────────────────────────┘
Processing Layer
EventBridge routet Events basierend auf Typ und Region:
- Rule Engine Lambda: Prüft definierte Schwellwerte
- Aggregation Lambda: Kombiniert mehrere Datenpunkte
- Decision Lambda: Entscheidet über Alarmierung
Notification Layer
┌─────────────────────────────────────────────────────┐
│ Lambda: Notification Router │
└───────────┬─────────────┬─────────────┬─────────────┘
│ │ │
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌────────┐
│ SNS │ │ SES │ │ Pinpoint│
│ (SMS) │ │(E-Mail)│ │ (Push) │
└────────┘ └────────┘ └────────┘
Technische Details
Latenz-Optimierung
Bei Katastrophenwarnungen zählt jede Sekunde. Unsere Maßnahmen:
- Provisioned Concurrency: Keine Cold Starts für kritische Lambdas
- Regional Deployment: eu-central-1 für minimale Latenz
- Async Processing: Nicht-kritische Aufgaben entkoppelt
Zuverlässigkeit
- Dead Letter Queues: Keine verlorenen Events
- Retry-Strategien: Exponential Backoff mit Jitter
- Multi-AZ: Automatisches Failover
- Monitoring: CloudWatch Alarms für alle kritischen Metriken
Audit & Compliance
Jede Entscheidung wird dokumentiert:
- Eingangsdaten
- Angewandte Regeln
- Ergebnis der Entscheidung
- Ausgelöste Benachrichtigungen
- Zustellstatus
Kosten
Serverless bedeutet: Pay per use. Bei typischer Last:
- Lambda: ~$50/Monat
- EventBridge: ~$10/Monat
- SNS/SES: ~$30/Monat (abhängig von Alerts)
- CloudWatch: ~$20/Monat
Gesamt: ~$110/Monat für ein hochverfügbares Alerting-System.
Lessons Learned
- EventBridge ist mächtig: Content-based Routing spart viel Code
- Teste Failure Modes: Was passiert, wenn SNS ausfällt?
- Observability first: Ohne gutes Monitoring bist du blind
- Dokumentiere Regeln: Warum wurde dieser Alert ausgelöst?
Sie brauchen ein zuverlässiges Alerting-System? Wir helfen.
PROJEKT BESPRECHEN →