Der vollständige Zustandsraum
Sechs Zustände — der Workflow modelliert die Übergangsphase explizit, weil dort die parallele Orchestrierung der Sub-Workflows passiert. Zwei zentrale Guards sind technisch erzwungen: alte Kündigung mit Auszugsdatum + neuer Vertrag in QES für uebergangsphase_aktivieren, alte Wohnungsübergabe abgeschlossen für wohnungsuebergabe_neu (verhindert Doppelbelegung):
stateDiagram-v2
direction LR
[*] --> alter_mieter_kuendigung_aktiv
alter_mieter_kuendigung_aktiv --> neuer_mieter_in_qes : kandidat_ausgewaehlt
neuer_mieter_in_qes --> alter_mieter_kuendigung_aktiv : qes_abgebrochen
neuer_mieter_in_qes --> uebergangsphase_aktiv : qes_signiert<br/>[beide OK]
uebergangsphase_aktiv --> wohnungsuebergabe_alt : termin_alt
wohnungsuebergabe_alt --> wohnungsuebergabe_neu : uebergabe_alt_abgeschlossen
wohnungsuebergabe_neu --> abgeschlossen : uebergabe_neu_abgeschlossen
abgeschlossen --> [*]Der Rückfall-Pfad neuer_mieter_in_qes → alter_mieter_kuendigung_aktiv (bei qes_abgebrochen) ist entscheidend: Wenn der neue Mieter doch nicht unterschreibt, läuft der Inserate-Sub-Workflow ohne Reset weiter — bereits qualifizierte Interessenten bleiben in der Pipeline, der Verwalter setzt einfach auf den zweitbesten Kandidaten.
Beispiel: Frau S. zieht aus, Herr M. zieht ein — Lindenstraße 12, App. 4B
Frau S. kündigt am 28. Januar 2026 zum 30. April (3 Monate Frist). Auszug ist für den 30. April geplant. Die Verwaltung schaltet sofort das Inserat, am 15. März wird Herr M. als neuer Mieter ausgewählt. Mietvertrag wird in QES versendet, Herr M. unterschreibt am 16. März. Einzug zum 1. Mai.
Der Ablauf von Januar bis Mai:
sequenceDiagram
autonumber
participant FS as Frau S. (alter Mieter)
participant S as ImmoGenio
participant V as Verwalter
participant Inserat as Inserate-Sub-Workflow
participant HM as Herr M. (neuer Mieter)
participant UegAlt as Übergabe-Workflow alt
participant UegNeu as Übergabe-Workflow neu
participant Kaut as Kautions-Sub-Workflow
FS->>S: Kündigung zum 30.04. einreichen
S->>S: Zustand „alter_mieter_kuendigung_aktiv"
S->>Inserat: Inserate-Workflow starten (28.01.)
Inserat-->>V: 14 Anfragen, 4 Besichtigungen
V->>S: Herr M. ausgewählt (15.03.)
S->>HM: QES-Link für Mietvertrag
HM->>S: Signatur (16.03.)
S->>S: Zustand „neuer_mieter_in_qes" → „uebergangsphase_aktiv"
S->>UegAlt: Wohnungsübergabe alt für 30.04. terminieren
S->>UegNeu: Wohnungsübergabe neu für 01.05. terminieren
Note over S: Übergangsphase 16.03. bis 01.05.
UegAlt-->>V: Übergabe alt durchgeführt, 290 € Schadenspositionen
S->>Kaut: Kautions-Sub-Workflow starten (Saldo 1.500 € - 290 € = 1.210 €)
S->>S: Zustand „wohnungsuebergabe_neu"
UegNeu-->>V: Übergabe neu durchgeführt am 01.05.
S->>S: Zustand „abgeschlossen"
Note over S: Mietvertrag Frau S. inaktiv, Mietvertrag Herr M. aktiv ab 01.05.Wichtig ist Schritt 13: Die alte Wohnungsübergabe triggert automatisch den Kautions-Sub-Workflow mit den dokumentierten Schadenspositionen — keine manuelle Übertragung in eine Kautions-Abrechnung. Der Kautions-Workflow läuft unabhängig vom Mieterwechsel weiter (Frist nach § 551 BGB: 3–6 Monate) und schließt für sich ab.
Technisch erzwungene Compliance
Drei Punkte sind im Mieterwechsel besonders fehleranfällig — der Workflow erzwingt sie:
Keine Doppelbelegung: Der Übergang von wohnungsuebergabe_alt nach wohnungsuebergabe_neu ist nur möglich, wenn die alte Übergabe abgeschlossen ist (Terminal-State im Sub-Workflow Wohnungsübergabe). Eine parallele Übergabe am gleichen Tag ist konfigurierbar, aber technisch separiert — die Wohnung gilt nie „aktiv für zwei Mietverträge“.
Kautions-Trennung: § 551 BGB verlangt eine getrennte Treuhand-Verwaltung der alten und neuen Kaution. Eine Verrechnung zwischen alter Kautions-Rückzahlung und neuer Kautions-Einzahlung ist rechtlich angreifbar — der Workflow startet beide als getrennte Sub-Workflows mit getrennten Treuhandkonto-Buchungen.
Verzug-Dokumentation: Hält der alte Mieter den Auszugstermin nicht ein, alarmiert der Workflow den Verwalter und versendet automatisch einen Letter-Draft an den neuen Mieter — mit § 280-BGB-Vorbehalt für Schadensersatz (Hotelkosten, Möbeleinlagerung). Diese Dokumentation ist im Streitfall entscheidend: Der neue Mieter kann nicht erst Monate später Schadensersatz fordern, wenn er nie informiert wurde. Der Workflow dokumentiert lückenlos, dass die Information zeitnah erfolgt ist.