AMQP · JSON Structure

Amqp Queue Structure

Schema describing an AMQP 0-9-1 queue. Queues store messages and deliver them to consumers. They can be durable, exclusive, or auto-deleted, and support various arguments for controlling message TTL, length limits, and dead-lettering.

Type: object Properties: 5 Required: 1
AMQPAsynchronousMessage QueueMessagingMiddlewareOpen StandardPublish Subscribe

AMQP Queue is a JSON Structure definition published by AMQP, describing 5 properties, of which 1 is required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

name durable exclusive autoDelete arguments

Meta-schema: https://json-structure.org/meta/core/v0/#

JSON Structure

Raw ↑
{
  "$id": "https://raw.githubusercontent.com/api-evangelist/amqp/refs/heads/main/json-structure/amqp-queue-structure.json",
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "name": "AMQP Queue",
  "description": "Schema describing an AMQP 0-9-1 queue. Queues store messages and deliver them to consumers. They can be durable, exclusive, or auto-deleted, and support various arguments for controlling message TTL, length limits, and dead-lettering.",
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the queue. An empty string causes the broker to generate a unique name."
    },
    "durable": {
      "type": "boolean",
      "description": "If true, the queue survives broker restarts.",
      "default": false
    },
    "exclusive": {
      "type": "boolean",
      "description": "If true, the queue is used by only one connection and will be deleted when that connection closes.",
      "default": false
    },
    "autoDelete": {
      "type": "boolean",
      "description": "If true, the queue is automatically deleted when the last consumer unsubscribes.",
      "default": false
    },
    "arguments": {
      "type": "object",
      "description": "Optional arguments for queue declaration providing extended configuration.",
      "properties": {
        "x-message-ttl": {
          "type": "int32",
          "description": "Per-queue message time-to-live in milliseconds. Messages older than this are discarded or dead-lettered.",
          "minimum": 0
        },
        "x-expires": {
          "type": "int32",
          "description": "Queue expiry time in milliseconds. The queue is deleted after being unused for this duration.",
          "minimum": 0
        },
        "x-max-length": {
          "type": "int32",
          "description": "Maximum number of messages the queue can hold. Overflow behavior is controlled by x-overflow.",
          "minimum": 0
        },
        "x-max-length-bytes": {
          "type": "int32",
          "description": "Maximum total size in bytes of all messages in the queue.",
          "minimum": 0
        },
        "x-overflow": {
          "type": "string",
          "description": "Overflow behavior when x-max-length or x-max-length-bytes is reached.",
          "enum": [
            "drop-head",
            "reject-publish",
            "reject-publish-dlx"
          ]
        },
        "x-dead-letter-exchange": {
          "type": "string",
          "description": "Name of the exchange to which dead-lettered messages are republished."
        },
        "x-dead-letter-routing-key": {
          "type": "string",
          "description": "Routing key to use when dead-lettering messages. If not set, the original routing key is used."
        },
        "x-max-priority": {
          "type": "int32",
          "description": "Maximum priority level the queue supports (0-255). Enables priority queuing.",
          "minimum": 0,
          "maximum": 255
        },
        "x-queue-mode": {
          "type": "string",
          "description": "Queue mode. 'lazy' mode moves messages to disk as early as possible to reduce memory usage.",
          "enum": [
            "default",
            "lazy"
          ]
        },
        "x-queue-type": {
          "type": "string",
          "description": "The queue type. Classic queues are the default; quorum queues provide data safety via replication.",
          "enum": [
            "classic",
            "quorum",
            "stream"
          ]
        }
      },
      "additionalProperties": true
    }
  },
  "additionalProperties": false
}