Skip to main content

Module taxonomy

Module taxonomy 

Source
Expand description

The reason taxonomy and the typed WorkerUnavailable dispatch failure. The queue-service taxonomy and its typed dispatch failure.

Every reason in QueueServiceReason is emitted by a real path at the bridge seam — six from the selection census ([super::census::classify]) and QueueServiceReason::Saturated from the delivery-backpressure path ([super::delivery]). A variant that could not fire would be a name that does not mean what it says.

R1 defined four of these. QueueServiceReason::PollersUnreachable is the fifth: a pool whose workers all serve the activity but have all lost dispatch eligibility used to classify as served — because the census counts compatible workers without an eligibility filter — and so parked with nothing published about why.

QueueServiceReason::PollersAtCapacity is the sixth, and the only one that describes a fleet with nothing wrong with it: every compatible worker is connected, serving the activity, and already running as many activities as it advertised it would. It exists because the alternative was to report a busy pool with one of the five sentences above, all of which are false about it — and one of which advises the opposite of what would actually help.

QueueServiceReason::PollersCapacityUnannounced is the seventh, and it exists for the same reason the sixth does: a state that is real, that no existing sentence is true of, and that would otherwise be reported as a busy pool. A liminal worker cannot state its capacity in its registration frame — liminal::protocol::WorkerRegistration is a published wire type with no such field — so it registers with capacity UNKNOWN and announces the number a frame later. Selection treats unknown as full, which is the safe direction and the wrong WORD: a pool of workers that have not yet said what they can take is not a pool of workers that are busy, and the two have opposite remedies. Waiting fixes the busy one; only the worker announcing (or being replaced) fixes this one, and starting another worker of the same build fixes nothing at all.

Structs§

ServiceAddress
The pool address a dispatch could not be served at.
UnavailableSummary
The typed head of a queue-service refusal, recovered from its string form.
WorkerUnavailable
A typed dispatch refusal: the taxonomy reason, which clock expired (if any), how long the dispatch waited, and the live poller census behind the verdict. Never a generic timeout, never a bare string.

Enums§

ExpiredClock
Which of the two never-conflated service clocks expired.
QueueServiceReason
Why a (namespace, task_queue, activity_type) address is not being served.