KrakenD · Schema

KrakenD Async Agent

An Async Agent defines a consumer that subscribes to a queue or event stream (such as RabbitMQ, Kafka, or AWS SNS/SQS) and processes messages independently of HTTP request/response cycles.

AggregationAPI GatewayGoOpen Source

Properties

Name Type Description
name string A unique name for the async agent.
encoding string The encoding of the consumed messages.
backend array Backend definitions to process the consumed messages.
consumer object Consumer configuration including topic, subscription, and connection details.
connection object Connection settings for the message broker.
extra_config object Additional component configurations keyed by namespace.
View JSON Schema on GitHub

JSON Schema

async-agent.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/api-evangelist/krakend/blob/main/json-schema/async-agent.json",
  "title": "KrakenD Async Agent",
  "description": "An Async Agent defines a consumer that subscribes to a queue or event stream (such as RabbitMQ, Kafka, or AWS SNS/SQS) and processes messages independently of HTTP request/response cycles.",
  "type": "object",
  "required": ["name", "backend", "consumer"],
  "properties": {
    "name": {
      "type": "string",
      "description": "A unique name for the async agent."
    },
    "encoding": {
      "type": "string",
      "description": "The encoding of the consumed messages."
    },
    "backend": {
      "type": "array",
      "items": {
        "$ref": "backend.json"
      },
      "description": "Backend definitions to process the consumed messages."
    },
    "consumer": {
      "type": "object",
      "description": "Consumer configuration including topic, subscription, and connection details.",
      "properties": {
        "topic": {
          "type": "string",
          "description": "The topic or queue name to consume from."
        },
        "workers": {
          "type": "integer",
          "description": "Number of concurrent consumer workers."
        },
        "timeout": {
          "type": "string",
          "description": "Timeout for consuming a message."
        },
        "max_rate": {
          "type": "number",
          "description": "Maximum rate of messages consumed per second."
        }
      }
    },
    "connection": {
      "type": "object",
      "description": "Connection settings for the message broker.",
      "properties": {
        "max_retries": {
          "type": "integer",
          "description": "Maximum number of connection retry attempts."
        },
        "backoff_strategy": {
          "type": "string",
          "description": "Backoff strategy for reconnection attempts."
        },
        "health_interval": {
          "type": "string",
          "description": "Interval between health checks on the connection."
        }
      }
    },
    "extra_config": {
      "type": "object",
      "description": "Additional component configurations keyed by namespace."
    }
  }
}