Skip to main content

Module suotar

Module suotar 

Source
Expand description

The study registry over Suotar, for phase iterations and for manual actions: the only part of the pipeline that names Suotar’s wire items and codes, or sends through its client.

Re-exports§

pub use breaker::is_waiting_to_probe;
pub use codes::is_waiting_item;

Modules§

breaker 🔒
The circuit breakers the study-registry phases share within one worker process: one every such phase stops for, and one only the phase that submits to Sisu stops for, since Sisu timing out on submissions says nothing about the rest of Suotar.
codes 🔒
What a Suotar per-item code means: the one place the wire vocabulary is spelled out. What may be done about the ledger error code it maps to is models’ classification::retryability.
course_codes 🔒
Validating course codes with course-codes/validate, as many per request as the allowance lets.
decode 🔒
Suotar’s answers and failures read into the registry’s terms.
encode 🔒
Requests into Suotar’s wire items, each under the requestItemId it goes out with.
executor 🔒
Sending one batch of a worker flow: fresh request ids, the limiter, the call, the gate record, and pairing each row with its answer and audit.
gate 🔒
The one place an iteration’s Suotar requests meet the circuit breakers and the limiter: every request is spent through the gate and recorded in it, and StudyRegistryGate::settle turns the records into the breaker and limiter effects.
health_report 🔒
Copying this process’s breaker and limiter state to the database for the dashboard, which runs in another process.
rate_limit 🔒
How much one worker process may ask of each rate-limited Suotar endpoint.
rosters 🔒
Course rosters from list-by-course: one request of a worker iteration, and the interactive search behind a linking mail resend.

Structs§

InteractiveSuotar 🔒
The InteractiveStudyRegistry over Suotar, for one manual action: the interactive timeout, and no gate.
SuotarStudyRegistry 🔒
The StudyRegistry over Suotar for one phase iteration: every request is spent through, and recorded in, the iteration’s gate.

Functions§

endpoint_of 🔒
The Suotar endpoint that serves operation, which is also what the call log, the limiter and the dashboard key on.
endpoints_paused_by
The Suotar endpoints whose phases process_name’s target breaker pauses, each once.
max_study_registry_wait
The longest one iteration of phase may wait on the study registry before its calls time out.
request_span 🔒
The span every request to endpoint runs in, whichever of the adapter’s call sites sends it. A resent half records resent_half on it.
reset_rate_limits
Forgets the limiter state of scope, so its endpoints are back at full rate with a full burst.
study_registry_endpoints 🔒
The Suotar endpoints one iteration of phase calls, in order: its crate::PhaseSpec::operations as the call log and the dashboard name them.