Der vollständige Zustandsraum
Der Master-Workflow eigentuemerversammlung umfasst elf Zustände — neun produktive plus zwei terminale. Zwei Guards sind juristisch zwingend: einladungsfrist_abgelaufen für die Eröffnung der Versammlung (§ 24 WEG) und anfechtungsfrist_abgelaufen für den automatischen Übergang in bestandskraeftig (§ 45 WEG). Beide Fristen werden mit Werktags-Berechnung gegen den Kalender geprüft:
stateDiagram-v2
direction LR
[*] --> planung
planung --> einladung_versendet : einladung_versenden
einladung_versendet --> einladungsfrist_aktiv : frist_starten
einladungsfrist_aktiv --> durchfuehrung_in_arbeit : etv_eroeffnen<br/>[Frist >= 21 Tage]
durchfuehrung_in_arbeit --> durchgefuehrt : etv_schliessen
durchgefuehrt --> protokoll_in_erstellung : protokoll_starten
protokoll_in_erstellung --> protokoll_freigegeben_vorstand : beirat_freigibt
protokoll_freigegeben_vorstand --> protokoll_versendet : protokoll_versenden
protokoll_versendet --> anfechtungsfrist_aktiv : frist_starten
anfechtungsfrist_aktiv --> bestandskraeftig : auto_nach_30_tagen<br/>[keine Klage]
bestandskraeftig --> abgeschlossen : abschliessen
abgeschlossen --> [*]Die Einladungsfrist beginnt am Tag nach dem Versand, der Tag der ETV zählt nicht mit — entspricht der herrschenden Meinung zu § 24 WEG. Wird das ETV-Datum nachträglich vorverlegt, prüft die Engine erneut und blockiert ggf. die Eröffnung.
Beispiel: Frühjahrs-ETV der WEG Lindenstraße 12
Die WEG hat 24 Eigentümer und einen Verwaltungsbeirat aus drei Personen. Die Verwaltung plant die Frühjahrs-ETV für den 25. März mit vier TOPs: Wirtschaftsplan-Genehmigung, Sanierungsbeschluss Dach, Beirat-Wahl, Verwalter-Verträge.
Der vollständige Lebenszyklus:
sequenceDiagram
autonumber
participant V as Verwalter
participant W as Workflow-Engine
participant E as Eigentümer (24)
participant B as Beirat
participant S as Sub-Workflows
participant P as Pingen/Magic-Link
V->>W: ETV planen, 4 TOPs anlegen
V->>P: Einladung versenden (1. März)
W-->>V: Zustand "einladung_versendet", Frist startet
Note over W: Guard "einladungsfrist_abgelaufen": frühestens 22. März
V->>W: ETV eröffnen (25. März)
W->>S: 4 Sub-Workflows etv_beschluss starten
E->>S: Abstimmung TOP 1 — Wirtschaftsplan: 22 Ja
E->>S: Abstimmung TOP 2 — Sanierung: 19 Ja, 5 Nein
E->>S: Abstimmung TOP 3 — Beirat-Wahl
E->>S: Abstimmung TOP 4 — Verwalter-Verträge
V->>W: ETV schließen, Protokoll starten
V->>B: Protokoll-Entwurf zur Freigabe
B->>W: Beirat-Freigabe (2. April)
V->>P: Protokoll versenden (5. April)
P->>E: Magic-Link + Pingen-Brief
W-->>V: Anfechtungsfrist endet 5. Mai
Note over W: Cron prüft täglich auf Klagen
W->>W: 6. Mai — auto-Transition bestandskraeftigWährend der gesamten Phase blieben Beschluss-Sub-Workflows aktiv: TOP 2 (Sanierung) wechselte direkt in umsetzung_geplant, die anderen drei in beschlossen_wartet_auf_frist. Erst mit der Bestandskraft des Master-Workflows dürfen die Sub-Workflows in die produktive Umsetzungsphase wechseln.
Sub-Workflow-Lifecycle pro TOP
Der ETV-Master ist ein Container — die eigentliche Arbeit passiert in den etv_beschluss-Sub-Workflows. Beim Eröffnen der Versammlung erzeugt die Engine automatisch je beschlussreifem TOP einen Sub-Workflow und verknüpft ihn über parent_workflow_id mit dem Master:
- TOP-Vorbereitung im Master: Verwalter markiert TOP als „beschlussreif“ — Engine merkt sich den Auto-Start für
durchfuehrung_in_arbeit. - Beim ETV-Eröffnen: Lifecycle-Event
child_started:etv_beschlusswird je TOP gefeuert, der Sub-Workflow startet im Zustandvorgeschlagen. - Beim ETV-Schließen: Abstimmungsergebnis wird in den Sub-Workflow gespiegelt, der Sub wechselt nach
beschlossen_wartet_auf_frist. - Bei Master-Bestandskraft: Lifecycle-Event
parent_bestandskraeftigtriggert in allen Sub-Workflows den Übergang nachin_umsetzungoderumgesetzt— je nach Beschluss-Typ.
Diese Trennung erlaubt es, dass der Master nach 4 Wochen abgeschlossen ist, während Beschluss-Sub-Workflows (etwa zur Dachsanierung) noch monatelang laufen. Die Beschluss-Sammlung nach § 18 WEG aggregiert beide Ebenen.
Technisch erzwungene Compliance
Die zwei zentralen Fristen der ETV — Einladung und Anfechtung — sind keine Erinnerungs-Reminder, sondern Guards in der State-Machine. Eine ETV kann formal nicht eröffnet werden, wenn die Einladungsfrist nicht abgelaufen ist. Beschlüsse können nicht in die Umsetzung wechseln, solange der Master nicht bestandskräftig ist. Das schützt vor klassischen Anfechtungsgründen: zu kurze Einladungsfrist, vorzeitige Umsetzung anfechtbarer Beschlüsse, fehlende Eigentümer-Information.
In Notfällen (§ 24 Abs. 4 WEG für unaufschiebbare Maßnahmen) lässt sich die Einladungsfrist mit dokumentierter Begründung verkürzen — der Audit-Trail bewahrt Grund, Person und Zeitpunkt. Wird der Beschluss später angefochten, ist die juristische Begründung lückenlos nachweisbar.