Azure Queue Storage

azureQueueazure-queue-storage

Managed at-least-once message queue in a storage account; 64 KiB messages kept seven days by default.

Provider
azure
Kind
Queue
Category
Messaging
Properties · 5 set by this component
propertytypevaluesrequiredkind defaultthis component
backoffenumnone | fixed | exponential | exponential-jitterno—inherited
deadLetterQueueboolean—nofalseinherited
deliveryenumat-most-once | at-least-once | exactly-onceyes—▸ at-least-once
instancesinteger—no—inherited
managedboolean—nofalse▸ true
maxAttemptsinteger—no—inherited
maxMessageSizeKib · component propertyinteger—no64inherited
maxMessagesPerRead · component propertyinteger—no1inherited
orderingenumnone | per-key | globalnonone▸ none
persistenceboolean—notrue▸ true
redundancy · component propertyenumlrs | zrs | grs | gzrs | ra-grs | ra-gzrsnolrsinherited
replayboolean—nofalseinherited
retentionDaysinteger—no—▸ 7
roleenumwork | dlq | retry | offline-mailbox | frontiernoworkinherited
visibilityTimeoutSeconds · component propertyinteger—no30inherited
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-storage", component: "azure-queue-storage" }
Other Queue products · 23
Source
# 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"

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