smartchat

Wiederholungen und Zustand

#Was als Erfolg zählt

Jeder 2xx-Status innerhalb von 10 Sekunden. Alles andere ist ein Fehlschlag: eine Zeitüberschreitung, ein Verbindungsfehler, ein Status 3xx, 4xx oder 5xx. Weiterleitungen werden nie befolgt, deshalb ist eine 3xx-Antwort ein Fehlschlag.

  • 410 Gone schaltet den Endpunkt sofort ab. Nutze es, wenn SmartChat aufhören soll.
  • Bei 429 und 5xx beachtet SmartChat den Header Retry-After (höchstens 24 Stunden).

#Zeitplan der Wiederholungen

Eine fehlgeschlagene Zustellung wird noch einmal versucht. Es gibt bis zu 9 Versuche, und zwar spätestens 72 Stunden nach dem Ereignis (der letzte Versuch wird auf diesen Zeitpunkt vorgezogen). Zu jeder Wartezeit kommt eine zufällige Änderung von bis zu 20 Prozent, damit viele Zustellungen nicht im selben Moment ankommen. Der Header SmartChat-Delivery-Attempt sagt dir, den wievielten Versuch du bekommen hast.

AttemptWait before the attempt
1immediately
230 seconds
32 minutes
410 minutes
51 hour
64 hours
712 hours
81 day
92 days

Nach dem letzten Versuch ist die Zustellung failed. Fehlgeschlagene Zustellungen bleiben 30 Tage im Zustellprotokoll. Du kannst sie von Hand noch einmal senden.

#Zustand eines Endpunkts

Ein Endpunkt wird nie nach einer einzigen fehlgeschlagenen Zustellung abgeschaltet.

ZustandWas er bedeutetWie er sich ändert
activeEmpfängt Ereignisse.5 fehlgeschlagene Versuche hintereinander: degraded.
degradedEmpfängt noch Ereignisse. Der Zustand steht in der App und im Endpunkt (status). SmartChat sendet noch keine Warn-Mail, prüfe den Status also ab und zu.Ein Erfolg: active. Mindestens 3 Tage ohne Erfolg und mindestens 20 Versuche hintereinander: paused.
pausedEmpfängt keine Ereignisse. Zustellungen, die beim Pausieren des Endpunkts warten, schlagen mit endpoint_paused fehl und werden nicht von selbst später gesendet.7 Tage ohne Erfolg: disabled. Der Aufruf "Wieder einschalten" macht ihn wieder active.
disabledEmpfängt keine Ereignisse.Eine 410-Antwort schaltet einen Endpunkt sofort ab. Der Aufruf "Wieder einschalten" macht ihn wieder active.

Der Test-Aufruf ändert den Zustand eines Endpunkts nicht.

Ereignisse während einer Pause kommen nur mit einem Replay zurück. Solange ein Endpunkt paused oder disabled ist, werden seine Ereignisse nicht für ihn eingereiht und wartende Zustellungen werden als fehlgeschlagen markiert. Schaltest du ihn wieder ein, sende replay_since im Aufruf "Wieder einschalten" (die Zeit deiner letzten guten Zustellung, höchstens 7 Tage zurück und 10.000 Ereignisse), oder rufe danach "Ereignisse erneut senden (Replay)" auf. Ohne Replay gehen diese Ereignisse für diesen Endpunkt verloren.

#Verpasste Ereignisse zurückholen

  • Eine Zustellung noch einmal senden: der Aufruf "Erneut zustellen" bei einer Zustellung.
  • Einen Endpunkt wieder einschalten: der Aufruf "Wieder einschalten" (für Endpunkte mit paused und disabled). Du kannst im selben Aufruf verlangen, dass Ereignisse ab einer Zeit erneut gesendet werden.
  • Ereignisse erneut senden (Replay): Der Aufruf "Ereignisse erneut senden (Replay)" sendet Ereignisse eines Zeitraums noch einmal (höchstens 7 Tage zurück und 10.000 Ereignisse; er braucht einen Idempotency-Key).

Alle Aufrufe stehen in der Webhook-Endpunkte API.