Generic queue

Queuequeue

Vendor-neutral queue. Use when the real product is not in the catalogue; every rule for this kind still applies.

Provider
default
Kind
Queue
Category
Messaging
Official docs
not recorded
Generic?
Vendor-neutral: the kind itself
Properties · 0 set by this component
propertytypevaluesrequireddefault
backoffenumnone | fixed | exponential | exponential-jitterno—
deadLetterQueueboolean—nofalse
deliveryenumat-most-once | at-least-once | exactly-onceyes—
instancesinteger—no—
managedboolean—nofalse
maxAttemptsinteger—no—
orderingenumnone | per-key | globalnonone
persistenceboolean—notrue
replayboolean—nofalse
retentionDaysinteger—no—
roleenumwork | dlq | retry | offline-mailbox | frontiernowork
Rules that apply · 3

Every rule whose selector covers this component's kind or its category. Whether a rule fires depends on the design: its properties, its edges and its groups.

queue-missing-dlq

A queue that receives asynchronous traffic and has no dead-letter queue either drops poison messages or retries them forever. Neither outcome leaves anything for a human to investigate.

  • — all of these hold:
  • — the node's `deadLetterQueue` is false
  • — the node has at least one asynchronous incoming edge
retry-queue-without-dlq

A retry queue is where poison messages end up. With no dead-letter queue they are retried forever or dropped in silence, and nobody ever looks at the failed payment.

  • — all of these hold:
  • — the node's `role` is "retry"
  • — the node's `deadLetterQueue` is false
retry-without-backoff

Retrying a transient failure at full speed turns one slow dependency into a retry storm. A retry queue backs off, preferably exponentially and with jitter.

  • — all of these hold:
  • — the node's `role` is "retry"
  • — any of these hold:
  • — the node's `backoff` has no value
  • — the node's `backoff` is "none"
Use it in a design
nodes:
  - { id: "queue", component: "queue" }
Other Queue products · 23
Source
# yaml-language-server: $schema=../../schema/component.schema.json
# The vendor-neutral queue: the kind itself, with no product behind it. It sets no
# defaults and adds no properties, so every required kind property stays required on the node.
schemaVersion: "1"
type: "component"
id: "queue"
kind: "queue"
provider: "default"

The same page as markdown, for an agent: /catalogue/components/queue.md