Generic queue
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
| property | type | values | required | default |
|---|---|---|---|---|
| backoff | enum | none | fixed | exponential | exponential-jitter | no | — |
| deadLetterQueue | boolean | — | no | false |
| delivery | enum | at-most-once | at-least-once | exactly-once | yes | — |
| instances | integer | — | no | — |
| managed | boolean | — | no | false |
| maxAttempts | integer | — | no | — |
| ordering | enum | none | per-key | global | no | none |
| persistence | boolean | — | no | true |
| replay | boolean | — | no | false |
| retentionDays | integer | — | no | — |
| role | enum | work | dlq | retry | offline-mailbox | frontier | no | work |
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.
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
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
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"
nodes:
- { id: "queue", component: "queue" }# 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"