Files
2026-05-18 04:37:23 +00:00

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