Benachrichtigungs-System (Notification-Cluster)
Zweck
Das Benachrichtigungs-System in SpeamCore ist als Cluster aus sechs zusammenhaengenden Routen aufgebaut. Jede Route hat eine klare Zuständigkeit; zusammen ergeben sie eine Pipeline von „Etwas passiert" bis „Empfaenger hat die Nachricht erhalten".
Architektur-Ueberblick
Die sechs Routen
| Route | Zweck |
|---|---|
| /notification-event-types | Definition der Event-Typen (z. B. „Störung", „Wartung faellig", „Beleg überfällig"). |
/notification-events | Stream der konkret ausgeloesten Events. |
| /notification-channels | Konfiguration der Versand-Kanäle mit Provider und Credentials. |
| /notification-subscriptions | Wer empfaengt welche Events über welchen Kanal? |
| /notification-templates | Inhaltsvorlagen pro Event-Typ × Kanal × Sprache. |
| /notification-logs | Audit-Log mit Retry-Aktion. |
Lifecycle einer Benachrichtigung
- Event entsteht im System (z. B. Auftrag wird auf
finishedgesetzt) —NotificationEventmit Verweis auf einenNotificationEventType. - Subscription-Matching: Alle aktiven
NotificationSubscription-Einträge werden auf den Event-Typ geprüft. Match: passender Event-Typ + (optional)eventTypeOption+ (optional)speamboxId. - Template-Resolution: Pro Match wird eine
NotificationTemplateausgewaehlt — bevorzugt mit konkretem Event-Typ + Kanal + passender Sprache, sonst Fallback auf generische Vorlagen. - Versand:
NotificationChannelruft seinen Provider auf (SMTP, Graph, Twilio, VdS, ...) und sendet die gerenderte Nachricht. - Logging: Versuch, Erfolg oder Fehler werden im
NotificationLogfestgehalten. Beifailedist eine Retry-Aktion verfuegbar.
Channel-Typen
| Channel-Typ | Beispiel-Provider | Branchen-Relevanz |
|---|---|---|
email | smtp, graph (Microsoft 365) | hoch — Beleg- und Auftrags-Notifications |
sms | twilio | hoch — kritische Alarme |
call | provider-spezifisch | Notruf-Eskalation |
whatsapp | provider-spezifisch | informelle Kommunikation |
telegram / teams | jeweils provider-spezifisch | interne Teams |
push | apns (iOS), fcm (Android) | mobile Aussendienst-Apps |
vds | vds (proprietaer) | Notruf-Service-Leitstelle (NSL) — IK4-Frames-Protokoll für Brandmeldeanlagen |
Berechtigungen
Pro Sub-Bereich des Clusters gelten eigene Subjects (NotificationChannel, NotificationSubscription, NotificationTemplate etc.). Für eine vollständige Notification-Administration sind alle Bereiche notwendig — typischerweise eine eigene Admin-Rolle mit create/update/delete auf allen Notification-Subjects.
Drift-Risiken
- Subscription mit veraltetem Channel-/EventType-Verweis → Template-Resolution faellt auf Defaults zurück.
- Plaintext-Secrets in Debug-Logs bei Channel-Credential-Speicherung.
- Async-Cache-Invalidation in Template-Service — kurze Race-Window beim Bearbeiten.
- VdS-Counter und Lock-Holder werden bei Channel-Löschen nicht zurückgesetzt.
Hinweis für KIera
Verknuepfungen
- Benachrichtigungs-Kanaele
- Benachrichtigungs-Abonnements
- Benachrichtigungs-Vorlagen
- Benachrichtigungs-Log
Versionshinweise
- 2026-04-29: Initiale Veroeffentlichung als Querschnitts-Konzept für den Notification-Cluster.