2.1 KiB
ADR 0005 — Datenbankwahl
Status
Accepted
Kurz erklärt
Die Datenbank ist der zentrale Speicher für Kunden, Verträge, Domains, Tickets, Dokumente und technische Referenzen.
Die Wahl der Datenbank beeinflusst später besonders:
- Mandantenfähigkeit
- Sicherheit
- Performance
- Auditierbarkeit
- Skalierbarkeit
- Entwicklungsaufwand
Kontext
In der ersten Planung waren MariaDB und PostgreSQL offen.
Das Architekturreview hat kritisiert, dass eine offene Datenbankwahl bei Multi-Tenancy und API-first zu einem kleinsten gemeinsamen Nenner führen würde.
Entscheidung
Hosting-Backoffice verwendet PostgreSQL als primäre Datenbank.
Begründung
PostgreSQL bietet wichtige Funktionen für das Zielbild:
- Row Level Security
- starke Datenintegrität
- JSONB-Unterstützung
- gute Indexierungsoptionen
- transaktionale Migrationen
- gute Grundlage für Mandantenfähigkeit
- gute Grundlage für spätere SaaS-/Reseller-Strukturen
Row Level Security
Row Level Security bedeutet:
Die Datenbank kann Regeln erzwingen,
welche Datensätze ein Benutzer oder Prozess sehen darf.
Das ist besonders relevant, wenn mehrere Mandanten in einer gemeinsamen Datenbank verwaltet werden.
Nicht gewählt
MariaDB / MySQL
Vorteile:
- sehr weit verbreitet
- vielen Hostern bekannt
- einfacher Einstieg
Nachteile:
- schwächer für Row-Level-Isolation
- schwächer als Sicherheitsbasis für Mandantenfähigkeit
- langfristig weniger geeignet für das geplante SaaS-/Reseller-Modell
Konsequenzen
Positiv
- bessere Sicherheitsarchitektur
- bessere Grundlage für Multi-Tenancy
- bessere technische Zukunftsfähigkeit
Negativ
- etwas höhere Einstiegshürde
- nicht jeder kleine Shared-Hosting-Anbieter bietet PostgreSQL gleichwertig an
- Self-hosted-Installationen benötigen klare Systemvoraussetzungen
Leitlinie
Hosting-Backoffice wird nicht primär für beliebiges Billig-Shared-Hosting optimiert, sondern für eine seriöse, betreibbare Hosting-/Backoffice-Umgebung.
Verwandte ADRs
- ADR 0004 — Tenancy-Modell
- ADR 0010 — Secrets-Management
- ADR 0014 — Audit-Log-Strategie