OpenStack Zaqar

openstackQueueopenstack-zaqar

Multi-tenant messaging service delivering messages at least once through worker claims, with subscriptions for broadcast observers.

Provider
openstack
Kind
Queue
Category
Messaging
Also known as
Messaging service
Properties · 4 set by this component
propertytypevaluesrequiredkind defaultthis component
backoffenumnone | fixed | exponential | exponential-jitterno—inherited
claimBased · component propertyboolean—notrueinherited
deadLetterQueueboolean—nofalseinherited
deliveryenumat-most-once | at-least-once | exactly-onceyes—▸ at-least-once
instancesinteger—no—inherited
managedboolean—nofalse▸ false
maxAttemptsinteger—no—inherited
messageTtlExpiry · component propertyboolean—notrueinherited
orderingenumnone | per-key | globalnonone▸ none
persistenceboolean—notrueinherited
publishSubscribe · component propertyboolean—nofalseinherited
replayboolean—nofalseinherited
retentionDaysinteger—no—inherited
roleenumwork | dlq | retry | offline-mailbox | frontiernowork▸ work
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: "zaqar", component: "openstack-zaqar" }
Other Queue products · 23
Source
# yaml-language-server: $schema=../../schema/component.schema.json
# OpenStack Zaqar: multi-tenant messaging service. Per the "Getting Started Guide" only one worker can claim a
# message so no other worker duplicates the work, and a worker that will go offline can retire the claim TTL,
# "putting the message back into the queue for another worker to claim" - at-least-once delivery. Zaqar "is not
# responsible for the ordering of messages" except with a single producer; subscriptions add broadcast observers.
schemaVersion: "1"
type: "component"
id: "openstack-zaqar"
kind: "queue"
provider: "openstack"
docs: "https://docs.openstack.org/zaqar/latest/"
aliases: ["Messaging service"]
defaults:
  delivery: "at-least-once"
  ordering: "none"
  role: "work"
  managed: false
properties:
  claimBased:
    type: "boolean"
    default: true
  publishSubscribe:
    type: "boolean"
    default: false
  messageTtlExpiry:
    type: "boolean"
    default: true

The same page as markdown, for an agent: /catalogue/components/openstack-zaqar.md