Skip to main content

Module task_delivery

Module task_delivery 

Source
Expand description

One awaited call that hands a task to an already-chosen worker over whichever transport it registered on, with the deregistration decision carried as a type rather than inferred from a missing sender (#52). One awaited call: hand an already-built task to an already-chosen worker, over whichever transport that worker registered on.

§Why this seam exists

Before it, the dispatcher’s delivery line assumed gRPC. A worker whose sender() was None — which is every liminal-delivered worker — was deregistered like a closed stream, on the premise that its presence could only be a leak. That premise held while the outbox chose one transport for the whole server, and stops holding the moment a row is routed by the worker’s own delivery (aion#52).

§The contract, and why the blocking shape wins

“Enqueued onto the stream” is the weakest truth a transport can offer: it says a message was accepted by a channel, not that a worker took the work. The liminal path already offers a stronger one — a correlated reply, with the run id resolved before an owner is bound — and that is the truth the completion fences actually want. So the seam is a single awaited call returning a typed outcome, and gRPC is the fast-completing case of it rather than a different shape. Latency is not the dispatcher’s concern; it awaits either.

§The outcome carries the deregistration decision as a TYPE

The distinction that used to live in a comment at the delivery line is now [Undeliverable]’s two variants, so a caller cannot act on it by accident: a worker the transport says is gone is deregistered, and a delivery that failed while the worker is alive leaves the registration standing.

Enums§

LivenessTracking
How a delivered task’s liveness is tracked, as a value the transport must interpret rather than a bare number it must remember the meaning of.
TaskDelivery
The outcome of one delivery attempt to one already-chosen worker.
Undeliverable
Why one delivery attempt did not place its task with a worker.

Traits§

DeliveryAccepted
What a transport arm calls at the instant the worker HOLDS the task — the gRPC stream accepted the frame; the liminal push was acknowledged — and before it waits for any reply.
WorkerTaskDelivery
A transport that can place one task with one already-selected worker.