81 lines
2.1 KiB
Markdown
81 lines
2.1 KiB
Markdown
# 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:
|
|
|
|
```text
|
|
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
|