Offline-Schreibweg in Pastro

Offline-Schreibweg in Pastro A lifecycle diagram generated by Archify. 01 / Hauptweg 02 / Wiederholung und Ende 03 / Outcomes Store-Action · lokal schon geändert · Hauptweg · optimistisch 01 Store-Action lokal schon geändert optimistisch shouldQueueWrites() · offline oder belegt · Hauptweg · Weiche 02 shouldQueueWrites() offline oder belegt Weiche In der Warteschlange · IndexedDB, je Zeile · Hauptweg · persistiert 03 In der Warteschlange IndexedDB, je Zeile persistiert Läuft · einzeln, der Reihe nach · Hauptweg · unterwegs 04 Läuft einzeln, der Reihe nach unterwegs Durch · Appwrite hat sie · Hauptweg · Endzustand 05 Durch Appwrite hat sie Endzustand Wieder eingereiht · Netz, 5xx, 401/408/429 · Wiederholung und Ende · wiederholbar Wieder eingereiht Netz, 5xx, 401/408/429 wiederholbar Verworfen · 4xx, nie wiederholt · Wiederholung und Ende · Endzustand Verworfen 4xx, nie wiederholt Endzustand ja nein: direkt an Appwrite flushPendingWrites 2xx nach 5 s erneut 4xx endgültig Legend start active state waiting decision terminal success failure / exit

Wann die Schlange greift

  • • Direkt nur mit Netz und leerer Schlange
  • • Sonst eingereiht, damit nichts die Älteren überholt
  • • Am Netz gescheitert heißt auch eingereiht, nicht verloren
  • • Mehrfaches an derselben Zeile wird vorher zusammengefasst
  • • Abarbeiten bei online, Sichtbarkeit, Start, neuem Eintrag

Wiederholen oder verwerfen

  • • Netz, 401, 408, 429, 5xx: zurück an den Anfang
  • • 4xx aus der Schlange: verworfen, 404 und 409 sind das Ziel
  • • 4xx direkt: writeOrRevert nimmt zurück und meldet