Queue
messagingqueue
Point-to-point message queue. Each message is processed by one consumer.
- Category
- Messaging
- Properties
- 11
- Components
- 24
- Rules
- 3
A node of this kind resolves each property from its own props, then the component's defaults, then the default below.
| 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 |
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 queue without backoffwarning
retry-without-backoffRetrying 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"
vendor-neutral
alibabacloud
cloudflare
default
openstack
# yaml-language-server: $schema=../schema/kind.schema.json # Point-to-point message queue. Each message is consumed by one consumer. # role distinguishes work queues from dead-letter, retry, offline-mailbox and crawl-frontier uses. # deadLetterQueue and backoff are deliberately optional so rules can catch their absence. schemaVersion: "1" type: "kind" id: "queue" category: "messaging" properties: delivery: type: "enum" values: ["at-most-once", "at-least-once", "exactly-once"] required: true ordering: type: "enum" values: ["none", "per-key", "global"] default: "none" deadLetterQueue: type: "boolean" default: false replay: type: "boolean" default: false retentionDays: type: "integer" role: type: "enum" values: ["work", "dlq", "retry", "offline-mailbox", "frontier"] default: "work" persistence: type: "boolean" default: true backoff: type: "enum" values: ["none", "fixed", "exponential", "exponential-jitter"] maxAttempts: type: "integer" instances: type: "integer" managed: type: "boolean" default: false