Die Plattform verwandelt rohe Datenströme über eine bewusst
gestaffelte Pipeline in konvergente Entscheidungen. Jede Stufe
hat eine einzelne Verantwortlichkeit und emittiert durable Events
für die nächste.
Event-Bus. PostgreSQL LISTEN/NOTIFY transportiert Events
zwischen Daemons. Events werden in einer durable Tabelle
persistiert, nicht nur broadcasted — Consumer können nach einem
Reconnect von einem Cursor aus replayen.
At-least-once-Delivery. Consumer bestätigen verarbeitete
Events. Unbestätigte Events werden nach Timeout neu zugestellt.
Idempotenz ist die Verantwortung des Consumers.
Cursor-tracked Replay. Jeder Consumer hält seinen eigenen
Cursor. Nach einer Disconnect-Phase setzt er da fort, wo er
aufgehört hat — keine Events gehen verloren, keine werden über
die konfigurierten Retry-Semantiken hinaus doppelt verarbeitet.
Mandanten-Isolation wird auf zwei Ebenen durchgesetzt:
Stored Procedures. Alle mandantenseitigen Operationen
laufen über Stored Procedures, die Ownership durchsetzen.
Direkte Tabellen-Writes durch Tenant-Code sind nicht erlaubt.
Row-Level Security. Postgres-RLS als harter Backstop.
Selbst wenn die Anwendungslogik einen Bug hat, verhindert RLS
Cross-Tenant-Datenzugriff.
Pro-Mandanten-Konfiguration umfasst:
Schlüssel und Rate-Limits.
Kill-Switch. Operator-Override, um einen Mandanten ohne
Redeploy sofort zu deaktivieren.
Risiko-Profil. Schwellwertparameter pro Entscheidungsklasse.
Vor der Persistenz. Stream-Events, die die Validierung
nicht bestehen, werden markiert, nicht still gedroppt.
Operatoren sehen sie im Dashboard.
Vor dem Modell-Training. Features fürs Training werden
gegen das Schema neu validiert. Drift triggert einen Alert,
bevor Modelle nachtrainiert werden.
Zur Laufzeit. Feature-Validatoren laufen kontinuierlich mit
DATAMISSING-Auto-Recovery — wenn ein erwartetes Feature
fehlt, fällt der Daemon auf einen dokumentierten Default
zurück und feuert ein strukturiertes Event ab.
Circuit Breaker pro Datenquelle — Ausfälle degradieren
graceful statt zu kaskadieren.
E-Mail- und XMPP-Alerting für operatorrelevante Events.
Universal config-driven Defaults. Datenquellen-Mappings,
Fallback-Ketten, Einheits-Konvertierungen, Schwellwerte — alle
in JSON. Keine Magic Numbers im Code.
Prozess-Isolation via tmux + Devuan — Daemons können
einzeln neu gestartet werden ohne sich abzustimmen.
Keine Kubernetes-Style-Autoscaling-Plattform. Das läuft auf
einer kleinen Anzahl gut verstandener Maschinen mit bewusster
Daemon-Platzierung.
Keine „aufsetzen und vergessen"-Lösung. Token-Sets,
Modell-Versionen, Tenant-Configs und Dashboards brauchen
Operator-Aufmerksamkeit.
Nicht generisch. Die Plattform spiegelt eine spezifische
Klasse von Hochfrequenz-Entscheidungs-Problemen — die Anpassung
an einen sehr anderen Workload ist der
Entwicklung-Service.