1.3 KiB
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:
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