Eine Seitenfolge muss Fortschritt machen und enden
Zeitgrenzen, Cursorprüfung und Teilfehler gemeinsam entwerfen.
Eine endliche Liste von Offsets begrenzt die Zahl der Aufrufe, nicht die Dauer jedes Aufrufs. Unser Client erhält deshalb Request-Timeout, Gesamtbudget und maximale Seitenzahl. Jede Antwort wird auf Status, JSON-Form, IDs und Fortsetzung geprüft, bevor sie übernommen wird. Ein bereits gesehener Cursor oder fehlender Fortschritt löst einen begründeten Abbruch aus. Eine unerwartet leere Seite kann ein Fehler sein; nur das vereinbarte Endsignal beweist das Ende. Sichere Lesezugriffe können begrenzt wiederholt werden. Derselbe Seiteninhalt wird dabei höchstens einmal übernommen. Sind Wiederholungen erschöpft, lautet das Ergebnis partial mit bestätigten Einträgen, Abbruchgrund und erlaubter Fortsetzungsinformation.
Ein Beispiel
Seite eins bestätigt A und B. Seite zwei läuft zweimal in einen simulierten Timeout; das Retry-Budget ist erschöpft. Das Resultat lautet partial, loaded_count=2, next_cursor=c2. Eine separate Probe lässt c2 erneut c2 zurückgeben: Der Client stoppt wegen fehlenden Fortschritts. Kein echter Netzwerkdienst wird aufgerufen.