# 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