Skip to content

AtLeastOnceQueue — takoform_at_least_once_queue

Workload and consumer

A worker defers work — webhooks, fan-out, retries — by sending messages that a consumer worker processes asynchronously. Producers use module-worker.queue-producer bindings; consumption is the QueueConsumer attachment.

Role

identity.

Observable semantics

Exactly the edge.queue@1.0.0 contract: send/sendBatch with at-least-once delivery and no ordering guarantee. An accepted message is delivered one or more times, possibly out of send order; consumers must be idempotent. messageRetentionSeconds (60..1209600) bounds how long an undelivered message survives; deliveryDelaySeconds (0..43200) defers deliverability. Both are portable retention/delay semantics, not host capacity.

Why this is one Form

The delivery guarantee is the contract consumers program against. There is deliberately no ordering field: an ordering selector would change consumer correctness requirements invisibly.

What would require a separate Form

A FIFO queue, an exactly-once-effect queue, or a multi-consumer published stream each change delivery or ordering semantics and are different Forms.

Provided Interfaces

edge.queue@1.0.0.

Accepted Bindings

None; it is a binding target (module-worker.queue-producer) and an attachment target (QueueConsumer).

Lifecycle risks

Deleting a queue with producer bindings or consumers must fail with dependency_in_use. Retained messages are destroyed with the queue.

Prior art

The at-least-once queue of a proven edge platform. The retained v1alpha2 Queue candidate, whose open ordering enum this Form replaces by fixing one delivery shape.