Hallo karle,
karle:Jemand eine Idee, wie man das ganz grundsätzlich angehen könnte, das abzusichern, damit nicht das gesamtsystem auf der kippe steht?
Meine Idee wäre, die Subscription 2-stufig zu realsieren (A) oder die Reihenfolge umzudrehen (B), weitere Möglichkeit wäre eine Heartbeat-Variante (C).
A: Die Subscription-Logik wird 2-stufig angeboten. Erster Schritt eine Voranmeldung, etwa so, wie es bereits realsiert wird. Der Observer merkt sich allerding auch die Subscription Uhrzeit. Bereits nach der Voranmeldung bekommt der Abonennt auch die Events zugestellt. Sollte aber nach einer konfigurierbaren Zeitspanne die Subscription nicht noch einmal bestätigt werden, dann schmeißt der Observer die Subscription wieder raus.
B: Eventuell kann man die Initialisierungsreihenfolge der Objekte so drehen, dass die Subscription erst als Letztes gemacht wird (situationsbedingt und dann auch nicht einheitlich garantiert)
C: Der Observer schmeißt ein Heartbeat Event (oder Delegate Aufruf, das ist egal), das der Client per Ereignisparameter bestätigt, die Implementierung muss dann so aussehen, dass ein Heartbeat nur dann bestätigt wird, wenn eine vollständige und erfolgreiche Initailisierung erfolgte. Ein mehrfach unbeantwortetes Heartbeat sorgt dann beim Observer für die Austragung.
Das wären jetzt meine Ideen, die vielleicht als Anregungen dienen?
Grüße
Timo