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

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