Skip to content

QueueConsumer — takoform_queue_consumer

Workload and consumer

A team wires one Module Worker as the batch consumer of one At-Least-Once Queue: the platform invokes the worker's queue handler with message batches and redelivers failed batches until retries are exhausted.

Role

attachment. Queue consumption is inward activation and therefore an attachment, never a binding (decision 0010). Deleting the consumer detaches it and never deletes the queue or the worker.

Observable semantics

queue and worker are immutable; changing either replaces the attachment. Batching is bounded by maxBatchSize (1..100) and maxBatchTimeoutSeconds (0..60). A failed batch is redelivered after retryDelaySeconds up to maxRetries times; exhausted messages go to deadLetterQueue when declared and are dropped otherwise. maxConcurrency (1..250) bounds concurrent batch invocations. All of these change observable delivery behavior and are therefore desired fields, not host tuning.

Why this is one Form

Retry, dead-lettering, and batch shape decide what an application observes under failure; they must travel with the consumer edge itself.

What would require a separate Form

Pull-based consumption through a client API, or push consumption with per-message acknowledgement semantics, are different shapes.

Provided Interfaces

None.

Accepted Bindings

None.

Lifecycle risks

Attaching to a worker whose versions do not declare the queue handler must fail closed. A dead-letter queue must be a distinct queue; hosts must reject self-dead-lettering. Deleting the referenced queue or worker while attached must fail with dependency_in_use.

Prior art

The queue-consumer wiring of a proven edge platform, with its retry and dead-letter semantics made explicit desired state.