Modul-Isolation
Grundregel
Section titled “Grundregel”Features und Module sind in ihrem eigenen Verzeichnis gekapselt
(api/src/modules/<name>/). Direkte Imports über Modulgrenzen hinweg sind
nicht erlaubt.
Erlaubte Kommunikationswege
Section titled “Erlaubte Kommunikationswege”Module kommunizieren ausschließlich über definierte Schnittstellen:
- API-Routes / Controller — für synchronen Zugriff zwischen Modulen
- Public API (
index.ts) — explizit exportierte Services eines Moduls - Event-Bus / Message-Queue — für asynchrone Entkopplung
- Shared-Package —
@flowgeist-kita/sharedfür gemeinsame Typen und Utils common/— für echte Querschnittsfunktionalität (Auth, Guards, Utilities)
Pre-Import-Check
Section titled “Pre-Import-Check”Vor jedem neuen Import prüfen: Geht dieser Import über eine Modulgrenze?
Wenn ja → nicht importieren, sondern die definierte Schnittstelle verwenden
oder die Funktionalität nach common/ bzw. shared/ verschieben.
Begründung
Section titled “Begründung”Strikte Modul-Isolation ist Voraussetzung für:
- Wartbarkeit durch externe Entwickler ohne Gesamtsystem-Kenntnis
- Testbarkeit der Module in Isolation
- spätere Erweiterbarkeit (z. B. optionale Module pro Mandant)
