Files
Hosting-Backoffice/decisions/0016-module-lifecycle.md
T
2026-05-18 04:37:23 +00:00

67 lines
1.3 KiB
Markdown

# ADR 0016 — Modul-Lifecycle
## Status
Accepted
## Kurz erklärt
Der Modul-Lifecycle beschreibt, was mit einem Modul passiert, wenn es installiert, aktiviert, deaktiviert oder entfernt wird.
## Kontext
Das Architekturreview hat kritisiert, dass Module zwar aktivierbar/deaktivierbar sein sollen, aber nicht definiert war, was mit bestehenden Daten passiert.
## Entscheidung
Module haben definierte Zustände:
- available
- installed
- enabled
- disabled
- archived
Deinstallation mit Datenlöschung ist kein Standardfall.
## Zustände
### available
Modul ist im System vorhanden, aber nicht installiert.
### installed
Modul ist installiert, aber nicht aktiv.
### enabled
Modul ist aktiv.
### disabled
Modul ist deaktiviert, Daten bleiben erhalten.
### archived
Modul wird nicht mehr genutzt, Daten bleiben aus Nachvollziehbarkeitsgründen erhalten.
## Datenregel
Daten werden beim Deaktivieren nicht gelöscht.
Grund:
- Audit
- GoBD
- Nachvollziehbarkeit
- Referenzintegrität
## Modul-Abhängigkeiten
Module müssen Abhängigkeiten deklarieren.
Beispiel:
```text
Invoice Ninja Adapter benötigt Billing-Modul.
```
## Migrationen
Jedes Modul verwaltet eigene Migrationen.
Core-Migrationen dürfen keine Anbieterlogik enthalten.
## Verwandte ADRs
- ADR 0007 — Modul-System
- ADR 0009 — Core-Grenzen