Obsidian·RegTech / Reporting·April 2025

Multi-Tenant Reporting-Plattform mit Row-Level-Security

Jurisdiktions-genaue Reports für 180+ Tenants in DACH, mit garantierter Datenisolation auf DB-Ebene.

180+
Tenants
12k
Reports/Monat
<200ms
Query-P95
DB-Level
Isolation
ReactNode.jsTimescaleDBAWSRLS

Ausgangslage

Obsidian lieferte regulatorische Reports an 180+ Finanzinstitute in DACH. Die bestehende Plattform war Single-Tenant repliziert — jeder neue Kunde = separate DB-Instance, separate Deployment-Pipeline, 3 Wochen Onboarding-Zeit. Nicht skalierbar.

Unser Ansatz

Multi-Tenancy on a single shared Postgres (TimescaleDB-Extension für Zeitreihen), mit Row-Level Security Policies als harte Isolation. Jede Query läuft im Kontext einer Tenant-ID, die über Connection-Settings gesetzt wird — Datenleaks sind physikalisch unmöglich, nicht nur durch Application-Logic.

Architektur

  • TimescaleDB Hypertables für Report-Payloads (jurisdiction + period als Composite-Keys)
  • RLS Policies pro Tabelle mit current_setting('app.tenant_id')
  • Jurisdiction-Validation via PostgreSQL EXCLUDE Constraints (keine überlappenden Perioden)
  • React-Dashboard mit per-Tenant Themes (White-Label-Ready)
  • AWS ECS Deployment, Aurora Postgres Backend

Ergebnis

180+ Tenants auf einer DB. Onboarding von 3 Wochen auf 15 Minuten. 12.000 Reports/Monat, P95-Latenz unter 200ms. Zero Data-Leak-Incidents in 9 Monaten Production.

Was wir gelernt haben

RLS ist unterschätzt. Viele Teams schreiben ihre eigene Tenant-Isolation in der Application-Layer — fragil, error-prone. Postgres-native RLS verschiebt die Isolation auf die Ebene wo sie hingehört: in die Engine, die die Daten hält.

Ähnliches Projekt?

Lass uns darüber sprechen.

Projekt anfragen