Azure Queue Storage
Managed at-least-once message queue in a storage account; 64 KiB messages kept seven days by default.
| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| backoff | enum | none | fixed | exponential | exponential-jitter | no | — | inherited |
| deadLetterQueue | boolean | — | no | false | inherited |
| delivery | enum | at-most-once | at-least-once | exactly-once | yes | — | ▸ at-least-once |
| instances | integer | — | no | — | inherited |
| managed | boolean | — | no | false | ▸ true |
| maxAttempts | integer | — | no | — | inherited |
| maxMessageSizeKib | integer | — | no | 64 | inherited |
| maxMessagesPerRead | integer | — | no | 1 | inherited |
| ordering | enum | none | per-key | global | no | none | ▸ none |
| persistence | boolean | — | no | true | ▸ true |
| redundancy | enum | lrs | zrs | grs | gzrs | ra-grs | ra-gzrs | no | lrs | inherited |
| replay | boolean | — | no | false | inherited |
| retentionDays | integer | — | no | — | ▸ 7 |
| role | enum | work | dlq | retry | offline-mailbox | frontier | no | work | inherited |
| visibilityTimeoutSeconds | integer | — | no | 30 | inherited |
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-storage", component: "azure-queue-storage" }# yaml-language-server: $schema=../../schema/component.schema.json # Azure Queue Storage: managed point-to-point queue in a storage account. A retrieved message is # only hidden for the visibility timeout and reappears if it is not deleted, so delivery is # at-least-once; the default message time-to-live is seven days ("Introduction to Azure Queue # Storage", "Get Messages (REST API)"). schemaVersion: "1" type: "component" id: "azure-queue-storage" kind: "queue" provider: "azure" docs: "https://learn.microsoft.com/en-us/azure/storage/queues/storage-queues-introduction" defaults: delivery: "at-least-once" ordering: "none" persistence: true retentionDays: 7 managed: true properties: maxMessageSizeKib: type: "integer" default: 64 visibilityTimeoutSeconds: type: "integer" default: 30 maxMessagesPerRead: type: "integer" default: 1 redundancy: type: "enum" values: ["lrs", "zrs", "grs", "gzrs", "ra-grs", "ra-gzrs"] default: "lrs"