Skip to main content

Module backoff

Module backoff 

Source
Expand description

How long the pipeline waits before trying again. Generic scheduling math; which error codes are even retryable is super::classification.

Constants§

JITTER_MAX
NOT_REGISTERED_REIMPORT_ADMIN_THRESHOLD
How many times Suotar may lose a submission (notRegistered) before a human looks. Each one still resubmits.
PARTIAL_REGISTRATION_ADMIN_AFTER
How long verify may see only the assessment item attainment before a human looks.
RESOLVING_RECOVERY_GRACE
A row still resolving_enrolment this long belongs to a worker that died mid-call, and goes back to ready_to_submit; a parked row’s claimed check expires after as long. Above the resolve timeout, and restarted before each resent half of a split batch, so a live answer still lands.
SUBMITTING_RECOVERY_GRACE
A row still submitting this long belongs to a worker that died mid-call. Above the import timeout, so a live request is never condemned to submission_uncertain.
SUBMIT_BASE_BACKOFF
SUBMIT_MAX_BACKOFF
SUBMIT_MAX_RETRY_AGE
After this long in failure a row stops being retried and becomes a support case.
SUOTAR_PENDING_WINDOW
Suotar’s PENDING_WINDOW_MS: how long it holds a submission it has not yet seen in Sisu as pending. Within it, a second import of the same completion can slip past Suotar’s duplicate check.
UNCERTAIN_ADMIN_AFTER
How long after the submission a human is asked to look in Sisu, well past the hour an attainment may take to show up. The row still never resubmits.
UNCERTAIN_MAX_RECHECK
UNCERTAIN_RECHECK
The first wait before looking for an attainment we may or may not have created; it doubles after every fruitless look.
VERIFY_BASE_BACKOFF
VERIFY_DENSE_WINDOW_END 🔒
VERIFY_GIVE_UP_POLL
VERIFY_LATE_WINDOW_INTERVAL 🔒
VERIFY_MAX_AGE
After this, polling drops to daily and a human looks. Never a failure: the attainment may exist, and calling it failed would invite a second submission.
VERIFY_MAX_BACKOFF
VERIFY_WINDOW_END 🔒
VERIFY_WINDOW_INTERVAL
VERIFY_WINDOW_START 🔒
Registrations land between about 5 and 29 hours after the submission, most of them in the first half: polls start shortly before, are close together through the dense part, and back off after.

Functions§

doubling 🔒
next_attempt_at
Spreads a batch that failed together, so it does not come back as one thundering herd.
submit_backoff
The wait before the next submit after retry_count failed ones.
submit_window_expired
uncertain_needs_admin
Whether an uncertain submission has waited long enough to be handed to an admin; never without a submission time.
uncertain_recheck_delay
lookup_count counts the look just made, so the wait after the first one is already doubled.
verify_delay
The wait from now until the next verify poll of a row submitted at submitted_at. Timed from the submission rather than by counting polls, so a resumed or delayed row still polls at the times registrations land.
verify_window_expired