<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Pub/sub brokers component specs on Dapr Docs</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/</link><description>Recent content in Pub/sub brokers component specs on Dapr Docs</description><generator>Hugo</generator><language>en</language><atom:link href="https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/index.xml" rel="self" type="application/rss+xml"/><item><title>Apache Kafka</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-apache-kafka/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-apache-kafka/</guid><description>&lt;h2 id="component-format">Component format&lt;/h2>
&lt;p>To set up Apache Kafka pub/sub, create a component of type &lt;code>pubsub.kafka&lt;/code>. See the &lt;a href="https://v1-18.docs.dapr.io/operations/components/setup-pubsub/">pub/sub broker component file&lt;/a> to learn how ConsumerID is automatically generated. Read the &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-1-setup-the-pubsub-component">How-to: Publish and Subscribe guide&lt;/a> on how to create and apply a pub/sub configuration.&lt;/p>
&lt;p>All component metadata field values can carry &lt;a href="https://v1-18.docs.dapr.io/reference/resource-specs/component-schema/#templated-metadata-values">templated metadata values&lt;/a>, which are resolved on Dapr sidecar startup.
For example, you can choose to use &lt;code>{namespace}&lt;/code> as the &lt;code>consumerGroup&lt;/code> to enable using the same &lt;code>appId&lt;/code> in different namespaces using the same topics as described in &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-namespace/#with-namespace-consumer-groups">this article&lt;/a>.&lt;/p></description></item><item><title>AWS SNS/SQS</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-aws-snssqs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-aws-snssqs/</guid><description>&lt;h2 id="component-format">Component format&lt;/h2>
&lt;p>To set up AWS SNS/SQS pub/sub, create a component of type &lt;code>pubsub.aws.snssqs&lt;/code>.&lt;/p>
&lt;p>By default, the AWS SNS/SQS component:&lt;/p>
&lt;ul>
&lt;li>Generates the SNS topics&lt;/li>
&lt;li>Provisions the SQS queues&lt;/li>
&lt;li>Configures a subscription of the queues to the topics&lt;/li>
&lt;/ul>


&lt;div class="alert alert-primary" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>

 &lt;p>If you only have a publisher and no subscriber, only the SNS topics are created.&lt;/p>
&lt;p>However, if you have a subscriber, SNS, SQS, and the dynamic or static subscription thereof are generated.&lt;/p></description></item><item><title>Azure Event Hubs</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-azure-eventhubs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-azure-eventhubs/</guid><description>&lt;h2 id="component-format">Component format&lt;/h2>
&lt;p>To set up an Azure Event Hubs pub/sub, create a component of type &lt;code>pubsub.azure.eventhubs&lt;/code>. See the &lt;a href="https://v1-18.docs.dapr.io/operations/components/setup-pubsub/">pub/sub broker component file&lt;/a> to learn how ConsumerID is automatically generated. Read the &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-1-setup-the-pubsub-component">How-to: Publish and Subscribe guide&lt;/a> on how to create and apply a pub/sub configuration.&lt;/p>
&lt;p>Apart from the configuration metadata fields shown below, Azure Event Hubs also supports &lt;a href="https://v1-18.docs.dapr.io/developing-applications/integrations/azure/azure-authentication/authenticating-azure/">Azure Authentication&lt;/a> mechanisms.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">apiVersion&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr.io/v1alpha1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">kind&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">Component&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">eventhubs-pubsub&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">type&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">pubsub.azure.eventhubs&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">version&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">v1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Either connectionString or eventHubNamespace is required&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Use connectionString when *not* using Microsoft Entra ID&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">connectionString&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;Endpoint=sb://{EventHubNamespace}.servicebus.windows.net/;SharedAccessKeyName={PolicyName};SharedAccessKey={Key};EntityPath={EventHub}&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Use eventHubNamespace when using Microsoft Entra ID&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">eventHubNamespace&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;namespace&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">consumerID&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional. If not supplied, the runtime will create one.&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;channel1&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">enableEntityManagement&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;false&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">enableInOrderMessageDelivery&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;false&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># The following four properties are needed only if enableEntityManagement is set to true&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">resourceGroupName&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;test-rg&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">subscriptionID&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;value of Azure subscription ID&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">partitionCount&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;1&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">messageRetentionInDays&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;3&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Checkpoint store attributes&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">storageAccountName&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;myeventhubstorage&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">storageAccountKey&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;112233445566778899&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">storageContainerName&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;myeventhubstoragecontainer&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Alternative to passing storageAccountKey&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">storageConnectionString&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;DefaultEndpointsProtocol=https;AccountName=&amp;lt;account&amp;gt;;AccountKey=&amp;lt;account-key&amp;gt;&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>

&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Warning&lt;/h4>

 The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described &lt;a href="https://v1-18.docs.dapr.io/operations/components/component-secrets/">here&lt;/a>.

&lt;/div>

&lt;h2 id="spec-metadata-fields">Spec metadata fields&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Field&lt;/th>
 &lt;th style="text-align: center">Required&lt;/th>
 &lt;th>Details&lt;/th>
 &lt;th>Example&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>connectionString&lt;/code>&lt;/td>
 &lt;td style="text-align: center">Y*&lt;/td>
 &lt;td>Connection string for the Event Hub or the Event Hub namespace.&lt;br>* Mutually exclusive with &lt;code>eventHubNamespace&lt;/code> field.&lt;br>* Required when not using &lt;a href="https://v1-18.docs.dapr.io/developing-applications/integrations/azure/azure-authentication/authenticating-azure/">Microsoft Entra ID Authentication&lt;/a>&lt;/td>
 &lt;td>&lt;code>&amp;quot;Endpoint=sb://{EventHubNamespace}.servicebus.windows.net/;SharedAccessKeyName={PolicyName};SharedAccessKey={Key};EntityPath={EventHub}&amp;quot;&lt;/code> or &lt;code>&amp;quot;Endpoint=sb://{EventHubNamespace}.servicebus.windows.net/;SharedAccessKeyName={PolicyName};SharedAccessKey={Key}&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>eventHubNamespace&lt;/code>&lt;/td>
 &lt;td style="text-align: center">Y*&lt;/td>
 &lt;td>The Event Hub Namespace name.&lt;br>* Mutually exclusive with &lt;code>connectionString&lt;/code> field.&lt;br>* Required when using &lt;a href="https://v1-18.docs.dapr.io/developing-applications/integrations/azure/azure-authentication/authenticating-azure/">Microsoft Entra ID Authentication&lt;/a>&lt;/td>
 &lt;td>&lt;code>&amp;quot;namespace&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>consumerID&lt;/code>&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Consumer ID (consumer tag) organizes one or more consumers into a group. Consumers with the same consumer ID work as one virtual consumer; for example, a message is processed only once by one of the consumers in the group. If the &lt;code>consumerID&lt;/code> is not provided, the Dapr runtime set it to the Dapr application ID (&lt;code>appID&lt;/code>) value.&lt;/td>
 &lt;td>Can be set to string value (such as &lt;code>&amp;quot;channel1&amp;quot;&lt;/code> in the example above) or string format value (such as &lt;code>&amp;quot;{podName}&amp;quot;&lt;/code>, etc.). &lt;a href="https://v1-18.docs.dapr.io/reference/resource-specs/component-schema/#templated-metadata-values">See all of template tags you can use in your component metadata.&lt;/a>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>enableEntityManagement&lt;/code>&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Boolean value to allow management of the EventHub namespace and storage account. Default: &lt;code>false&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;, &amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>enableInOrderMessageDelivery&lt;/code>&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Input/Output&lt;/td>
 &lt;td>Boolean value to allow messages to be delivered in the order in which they were posted. This assumes &lt;code>partitionKey&lt;/code> is set when publishing or posting to ensure ordering across partitions. Default: &lt;code>false&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>storageAccountName&lt;/code>&lt;/td>
 &lt;td style="text-align: center">Y&lt;/td>
 &lt;td>Storage account name to use for the checkpoint store.&lt;/td>
 &lt;td>&lt;code>&amp;quot;myeventhubstorage&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>storageAccountKey&lt;/code>&lt;/td>
 &lt;td style="text-align: center">Y*&lt;/td>
 &lt;td>Storage account key for the checkpoint store account.&lt;br>* When using Microsoft Entra ID, it&amp;rsquo;s possible to omit this if the service principal has access to the storage account too.&lt;/td>
 &lt;td>&lt;code>&amp;quot;112233445566778899&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>storageConnectionString&lt;/code>&lt;/td>
 &lt;td style="text-align: center">Y*&lt;/td>
 &lt;td>Connection string for the checkpoint store, alternative to specifying &lt;code>storageAccountKey&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;DefaultEndpointsProtocol=https;AccountName=myeventhubstorage;AccountKey=&amp;lt;account-key&amp;gt;&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>storageContainerName&lt;/code>&lt;/td>
 &lt;td style="text-align: center">Y&lt;/td>
 &lt;td>Storage container name for the storage account name.&lt;/td>
 &lt;td>&lt;code>&amp;quot;myeventhubstoragecontainer&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>resourceGroupName&lt;/code>&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Name of the resource group the Event Hub namespace is part of. Required when entity management is enabled&lt;/td>
 &lt;td>&lt;code>&amp;quot;test-rg&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>subscriptionID&lt;/code>&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Azure subscription ID value. Required when entity management is enabled&lt;/td>
 &lt;td>&lt;code>&amp;quot;azure subscription id&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>partitionCount&lt;/code>&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Number of partitions for the new Event Hub namespace. Used only when entity management is enabled. Default: &lt;code>&amp;quot;1&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;2&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>messageRetentionInDays&lt;/code>&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Number of days to retain messages for in the newly created Event Hub namespace. Used only when entity management is enabled. Default: &lt;code>&amp;quot;1&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;90&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="microsoft-entra-id-authentication">Microsoft Entra ID authentication&lt;/h3>
&lt;p>The Azure Event Hubs pub/sub component supports authentication using all Microsoft Entra ID mechanisms. For further information and the relevant component metadata fields to provide depending on the choice of Microsoft Entra ID authentication mechanism, see the &lt;a href="https://v1-18.docs.dapr.io/developing-applications/integrations/azure/azure-authentication/authenticating-azure/">docs for authenticating to Azure&lt;/a>.&lt;/p></description></item><item><title>Azure Service Bus Queues</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-azure-servicebus-queues/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-azure-servicebus-queues/</guid><description>&lt;h2 id="component-format">Component format&lt;/h2>
&lt;p>To set up Azure Service Bus Queues pub/sub, create a component of type &lt;code>pubsub.azure.servicebus.queues&lt;/code>. See the &lt;a href="https://v1-18.docs.dapr.io/operations/components/setup-pubsub/">pub/sub broker component file&lt;/a> to learn how ConsumerID is automatically generated. Read the &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-1-setup-the-pubsub-component">How-to: Publish and Subscribe guide&lt;/a> on how to create and apply a pub/sub configuration.&lt;/p>
&lt;blockquote>
&lt;p>This component uses queues on Azure Service Bus; see the official documentation for the differences between &lt;a href="https://learn.microsoft.com/azure/service-bus-messaging/service-bus-queues-topics-subscriptions">topics and queues&lt;/a>.
For using topics, see the &lt;a href="https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-azure-servicebus-topics/">Azure Service Bus Topics pubsub component&lt;/a>.&lt;/p></description></item><item><title>Azure Service Bus Topics</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-azure-servicebus-topics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-azure-servicebus-topics/</guid><description>&lt;h2 id="component-format">Component format&lt;/h2>
&lt;p>To set up Azure Service Bus Topics pub/sub, create a component of type &lt;code>pubsub.azure.servicebus.topics&lt;/code>. See the &lt;a href="https://v1-18.docs.dapr.io/operations/components/setup-pubsub/">pub/sub broker component file&lt;/a> to learn how ConsumerID is automatically generated. Read the &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-1-setup-the-pubsub-component">How-to: Publish and Subscribe guide&lt;/a> on how to create and apply a pub/sub configuration.&lt;/p>
&lt;blockquote>
&lt;p>This component uses topics on Azure Service Bus; see the official documentation for the differences between &lt;a href="https://learn.microsoft.com/azure/service-bus-messaging/service-bus-queues-topics-subscriptions">topics and queues&lt;/a>.&lt;br>
For using queues, see the &lt;a href="https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-azure-servicebus-queues/">Azure Service Bus Queues pubsub component&lt;/a>.&lt;/p></description></item><item><title>GCP</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-gcp-pubsub/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-gcp-pubsub/</guid><description>&lt;h2 id="create-a-dapr-component">Create a Dapr component&lt;/h2>
&lt;p>To set up GCP pub/sub, create a component of type &lt;code>pubsub.gcp.pubsub&lt;/code>. See the &lt;a href="https://v1-18.docs.dapr.io/operations/components/setup-pubsub/">pub/sub broker component file&lt;/a> to learn how ConsumerID is automatically generated. Read the &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-1-setup-the-pubsub-component">How-to: Publish and Subscribe guide&lt;/a> on how to create and apply a pub/sub configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">apiVersion&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr.io/v1alpha1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">kind&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">Component&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">gcp-pubsub&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">type&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">pubsub.gcp.pubsub&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">version&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">v1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">type&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">service_account&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">projectId&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">&amp;lt;PROJECT_ID&amp;gt;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># replace&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">endpoint&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional.&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;http://localhost:8085&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">consumerID&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional - defaults to the app&amp;#39;s own ID&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">&amp;lt;CONSUMER_ID&amp;gt;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">identityProjectId&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">&amp;lt;IDENTITY_PROJECT_ID&amp;gt;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># replace&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">privateKeyId&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">&amp;lt;PRIVATE_KEY_ID&amp;gt;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic">#replace&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">clientEmail&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">&amp;lt;CLIENT_EMAIL&amp;gt;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic">#replace&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">clientId&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">&amp;lt;CLIENT_ID&amp;gt;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># replace&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">authUri&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">https://accounts.google.com/o/oauth2/auth&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">tokenUri&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">https://oauth2.googleapis.com/token&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">authProviderX509CertUrl&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">https://www.googleapis.com/oauth2/v1/certs&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">clientX509CertUrl&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">https://www.googleapis.com/robot/v1/metadata/x509/&amp;lt;PROJECT_NAME&amp;gt;.iam.gserviceaccount.com&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic">#replace PROJECT_NAME&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">privateKey&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">&amp;lt;PRIVATE_KEY&amp;gt;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># replace x509 cert&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">disableEntityManagement&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;false&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">enableMessageOrdering&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;false&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">orderingKey&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">&amp;lt;ORDERING_KEY&amp;gt;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">maxReconnectionAttempts&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">30&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">connectionRecoveryInSec&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">2&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">deadLetterTopic&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">&amp;lt;EXISTING_PUBSUB_TOPIC&amp;gt;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">maxDeliveryAttempts&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">5&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">maxOutstandingMessages&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">1000&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">maxOutstandingBytes&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">1000000000&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">maxConcurrentConnections&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">10&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>

&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Warning&lt;/h4>

 The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described &lt;a href="https://v1-18.docs.dapr.io/operations/components/component-secrets/">here&lt;/a>.

&lt;/div>

&lt;h2 id="spec-metadata-fields">Spec metadata fields&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Field&lt;/th>
 &lt;th style="text-align: center">Required&lt;/th>
 &lt;th>Details&lt;/th>
 &lt;th>Example&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>projectId&lt;/td>
 &lt;td style="text-align: center">Y&lt;/td>
 &lt;td>GCP project ID&lt;/td>
 &lt;td>&lt;code>myproject-123&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>endpoint&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>GCP endpoint for the component to use. Only used for local development (for example) with &lt;a href="https://cloud.google.com/pubsub/docs/emulator">GCP Pub/Sub Emulator&lt;/a>. The &lt;code>endpoint&lt;/code> is unnecessary when running against the GCP production API.&lt;/td>
 &lt;td>&lt;code>&amp;quot;http://localhost:8085&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>consumerID&lt;/code>&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The Consumer ID organizes one or more consumers into a group. Consumers with the same consumer ID work as one virtual consumer; for example, a message is processed only once by one of the consumers in the group. If the &lt;code>consumerID&lt;/code> is not provided, the Dapr runtime set it to the Dapr application ID (&lt;code>appID&lt;/code>) value. The &lt;code>consumerID&lt;/code>, along with the &lt;code>topic&lt;/code> provided as part of the request, are used to build the Pub/Sub subscription ID&lt;/td>
 &lt;td>Can be set to string value (such as &lt;code>&amp;quot;channel1&amp;quot;&lt;/code>) or string format value (such as &lt;code>&amp;quot;{podName}&amp;quot;&lt;/code>, etc.). &lt;a href="https://v1-18.docs.dapr.io/reference/resource-specs/component-schema/#templated-metadata-values">See all of template tags you can use in your component metadata.&lt;/a>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>identityProjectId&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>If the GCP pubsub project is different from the identity project, specify the identity project using this attribute&lt;/td>
 &lt;td>&lt;code>&amp;quot;myproject-123&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>privateKeyId&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>If using explicit credentials, this field should contain the &lt;code>private_key_id&lt;/code> field from the service account json document&lt;/td>
 &lt;td>&lt;code>&amp;quot;my-private-key&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>privateKey&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>If using explicit credentials, this field should contain the &lt;code>private_key&lt;/code> field from the service account json&lt;/td>
 &lt;td>&lt;code>-----BEGIN PRIVATE KEY-----MIIBVgIBADANBgkqhkiG9w0B&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>clientEmail&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>If using explicit credentials, this field should contain the &lt;code>client_email&lt;/code> field from the service account json&lt;/td>
 &lt;td>&lt;code>&amp;quot;myservice@myproject-123.iam.gserviceaccount.com&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>clientId&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>If using explicit credentials, this field should contain the &lt;code>client_id&lt;/code> field from the service account json&lt;/td>
 &lt;td>&lt;code>106234234234&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>authUri&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>If using explicit credentials, this field should contain the &lt;code>auth_uri&lt;/code> field from the service account json&lt;/td>
 &lt;td>&lt;code>https://accounts.google.com/o/oauth2/auth&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>tokenUri&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>If using explicit credentials, this field should contain the &lt;code>token_uri&lt;/code> field from the service account json&lt;/td>
 &lt;td>&lt;code>https://oauth2.googleapis.com/token&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>authProviderX509CertUrl&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>If using explicit credentials, this field should contain the &lt;code>auth_provider_x509_cert_url&lt;/code> field from the service account json&lt;/td>
 &lt;td>&lt;code>https://www.googleapis.com/oauth2/v1/certs&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>clientX509CertUrl&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>If using explicit credentials, this field should contain the &lt;code>client_x509_cert_url&lt;/code> field from the service account json&lt;/td>
 &lt;td>&lt;code>https://www.googleapis.com/robot/v1/metadata/x509/myserviceaccount%40myproject.iam.gserviceaccount.com&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>disableEntityManagement&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>When set to &lt;code>&amp;quot;true&amp;quot;&lt;/code>, topics and subscriptions do not get created automatically. Default: &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>enableMessageOrdering&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>When set to &lt;code>&amp;quot;true&amp;quot;&lt;/code>, subscribed messages will be received in order, depending on publishing and permissions configuration.&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>orderingKey&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The key provided in the request. It&amp;rsquo;s used when &lt;code>enableMessageOrdering&lt;/code> is set to &lt;code>true&lt;/code> to order messages based on such key.&lt;/td>
 &lt;td>&amp;ldquo;my-orderingkey&amp;rdquo;&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>maxReconnectionAttempts&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Defines the maximum number of reconnect attempts. Default: &lt;code>30&lt;/code>&lt;/td>
 &lt;td>&lt;code>30&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>connectionRecoveryInSec&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Time in seconds to wait between connection recovery attempts. Default: &lt;code>2&lt;/code>&lt;/td>
 &lt;td>&lt;code>2&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>deadLetterTopic&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Name of the GCP Pub/Sub Topic. This topic &lt;strong>must&lt;/strong> exist before using this component.&lt;/td>
 &lt;td>&lt;code>&amp;quot;myapp-dlq&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>maxDeliveryAttempts&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Maximum number of attempts to deliver the message. If &lt;code>deadLetterTopic&lt;/code> is specified, &lt;code>maxDeliveryAttempts&lt;/code> is the maximum number of attempts for failed processing of messages. Once that number is reached, the message will be moved to the dead-letter topic. Default: &lt;code>5&lt;/code>&lt;/td>
 &lt;td>&lt;code>5&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>type&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;strong>DEPRECATED&lt;/strong> GCP credentials type. Only &lt;code>service_account&lt;/code> is supported. Defaults to &lt;code>service_account&lt;/code>&lt;/td>
 &lt;td>&lt;code>service_account&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>maxOutstandingMessages&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Maximum number of outstanding messages a given &lt;a href="https://cloud.google.com/pubsub/docs/pull#streamingpull_api">streaming-pull&lt;/a> connection can have. Default: &lt;code>1000&lt;/code>&lt;/td>
 &lt;td>&lt;code>50&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>maxOutstandingBytes&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Maximum number of outstanding bytes a given &lt;a href="https://cloud.google.com/pubsub/docs/pull#streamingpull_api">streaming-pull&lt;/a> connection can have. Default: &lt;code>1000000000&lt;/code>&lt;/td>
 &lt;td>&lt;code>1000000000&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>maxConcurrentConnections&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Maximum number of concurrent &lt;a href="https://cloud.google.com/pubsub/docs/pull#streamingpull_api">streaming-pull&lt;/a> connections to be maintained. Default: &lt;code>10&lt;/code>&lt;/td>
 &lt;td>&lt;code>2&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>ackDeadline&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Message acknowledgement duration deadline. Default: &lt;code>20s&lt;/code>&lt;/td>
 &lt;td>&lt;code>1m&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>


&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Warning&lt;/h4>

 If &lt;code>enableMessageOrdering&lt;/code> is set to &amp;ldquo;true&amp;rdquo;, the roles/viewer or roles/pubsub.viewer role will be required on the service account in order to guarantee ordering in cases where order tokens are not embedded in the messages. If this role is not given, or the call to Subscription.Config() fails for any other reason, ordering by embedded order tokens will still function correctly.

&lt;/div>

&lt;h2 id="gcp-credentials">GCP Credentials&lt;/h2>
&lt;p>Since the GCP Pub/Sub component uses the GCP Go Client Libraries, by default it authenticates using &lt;strong>Application Default Credentials&lt;/strong>. This is explained further in the &lt;a href="https://cloud.google.com/docs/authentication/client-libraries">Authenticate to GCP Cloud services using client libraries&lt;/a> guide.&lt;/p></description></item><item><title>In-memory</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-inmemory/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-inmemory/</guid><description>&lt;p>The in-memory pub/sub component operates within a single Dapr sidecar. This is primarily meant for development purposes. State is not replicated across multiple sidecars and is lost when the Dapr sidecar is restarted.&lt;/p>
&lt;h2 id="component-format">Component format&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">apiVersion&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr.io/v1alpha1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">kind&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">Component&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">pubsub&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">type&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">pubsub.in-memory&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">version&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">v1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000;font-weight:bold">[]&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>Note: in-memory does not require any specific metadata for the component to work, however spec.metadata is a required field.&lt;/p></description></item><item><title>JetStream</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-jetstream/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-jetstream/</guid><description>&lt;h2 id="component-format">Component format&lt;/h2>
&lt;p>To set up JetStream pub/sub, create a component of type &lt;code>pubsub.jetstream&lt;/code>. See the &lt;a href="https://v1-18.docs.dapr.io/operations/components/setup-pubsub/">pub/sub broker component file&lt;/a> to learn how ConsumerID is automatically generated. Read the &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-1-setup-the-pubsub-component">How-to: Publish and Subscribe guide&lt;/a> on how to create and apply a pub/sub configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">apiVersion&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr.io/v1alpha1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">kind&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">Component&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">jetstream-pubsub&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">type&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">pubsub.jetstream&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">version&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">v1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">natsURL&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;nats://localhost:4222&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">jwt&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional. Used for decentralized JWT authentication.&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;eyJhbGciOiJ...6yJV_adQssw5c&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">seedKey&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional. Used for decentralized JWT authentication.&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;SUACS34K232O...5Z3POU7BNIL4Y&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">tls_client_cert&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional. Used for TLS Client authentication.&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;/path/to/tls.crt&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">tls_client_key&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional. Used for TLS Client authentication.&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;/path/to/tls.key&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">token&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional. Used for token based authentication.&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;my-token&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">name&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;my-conn-name&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">streamName&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;my-stream&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">durableName &lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;my-durable-subscription&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">queueGroupName&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;my-queue-group&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">startSequence&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">startTime&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># In Unix format&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">1630349391&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">flowControl&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">false&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">ackWait&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">10s&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">maxDeliver&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">5&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">backOff&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;50ms, 1s, 10s&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">maxAckPending&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">5000&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">replicas&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">memoryStorage&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">false&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">rateLimit&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">1024&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">heartbeat&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">15s&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">ackPolicy&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">explicit&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">deliverPolicy&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">all&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">domain&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">hub&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">apiPrefix&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">PREFIX&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="spec-metadata-fields">Spec metadata fields&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Field&lt;/th>
 &lt;th style="text-align: center">Required&lt;/th>
 &lt;th>Details&lt;/th>
 &lt;th>Example&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>natsURL&lt;/td>
 &lt;td style="text-align: center">Y&lt;/td>
 &lt;td>NATS server address URL&lt;/td>
 &lt;td>&lt;code>&amp;quot;nats://localhost:4222&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>jwt&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>NATS decentralized authentication JWT&lt;/td>
 &lt;td>&lt;code>&amp;quot;eyJhbGciOiJ...6yJV_adQssw5c&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>seedKey&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>NATS decentralized authentication seed key&lt;/td>
 &lt;td>&lt;code>&amp;quot;SUACS34K232O...5Z3POU7BNIL4Y&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>tls_client_cert&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>NATS TLS Client Authentication Certificate&lt;/td>
 &lt;td>&lt;code>&amp;quot;/path/to/tls.crt&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>tls_client_key&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>NATS TLS Client Authentication Key&lt;/td>
 &lt;td>&lt;code>&amp;quot;/path/to/tls.key&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>token&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;a href="https://docs.nats.io/running-a-nats-service/configuration/securing_nats/auth_intro/tokens">NATS token based authentication&lt;/a>&lt;/td>
 &lt;td>&lt;code>&amp;quot;my-token&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>name&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>NATS connection name&lt;/td>
 &lt;td>&lt;code>&amp;quot;my-conn-name&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>streamName&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Name of the JetStream Stream to bind to&lt;/td>
 &lt;td>&lt;code>&amp;quot;my-stream&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>durableName&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;a href="https://docs.nats.io/jetstream/concepts/consumers#durable-name">Durable name&lt;/a>&lt;/td>
 &lt;td>&lt;code>&amp;quot;my-durable&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>queueGroupName&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Queue group name&lt;/td>
 &lt;td>&lt;code>&amp;quot;my-queue&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>startSequence&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;a href="https://docs.nats.io/jetstream/concepts/consumers#deliverbystartsequence">Start Sequence&lt;/a>&lt;/td>
 &lt;td>&lt;code>1&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>startTime&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;a href="https://docs.nats.io/jetstream/concepts/consumers#deliverbystarttime">Start Time&lt;/a> in Unix format&lt;/td>
 &lt;td>&lt;code>1630349391&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>flowControl&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;a href="https://docs.nats.io/jetstream/concepts/consumers#flowcontrol">Flow Control&lt;/a>&lt;/td>
 &lt;td>&lt;code>true&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>ackWait&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;a href="https://docs.nats.io/jetstream/concepts/consumers#ackwait">Ack Wait&lt;/a>&lt;/td>
 &lt;td>&lt;code>10s&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>maxDeliver&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;a href="https://docs.nats.io/jetstream/concepts/consumers#maxdeliver">Max Deliver&lt;/a>&lt;/td>
 &lt;td>&lt;code>15&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>backOff&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;a href="https://docs.nats.io/jetstream/concepts/consumers#backoff">BackOff&lt;/a>&lt;/td>
 &lt;td>&lt;code>&amp;quot;50ms, 1s, 5s, 10s&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>maxAckPending&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;a href="https://docs.nats.io/jetstream/concepts/consumers#maxackpending">Max Ack Pending&lt;/a>&lt;/td>
 &lt;td>&lt;code>5000&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>replicas&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;a href="https://docs.nats.io/jetstream/concepts/consumers#replicas">Replicas&lt;/a>&lt;/td>
 &lt;td>&lt;code>3&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>memoryStorage&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;a href="https://docs.nats.io/jetstream/concepts/consumers#memorystorage">Memory Storage&lt;/a>&lt;/td>
 &lt;td>&lt;code>false&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>rateLimit&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;a href="https://docs.nats.io/jetstream/concepts/consumers#ratelimit">Rate Limit&lt;/a>&lt;/td>
 &lt;td>&lt;code>1024&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>heartbeat&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;a href="https://docs.nats.io/jetstream/concepts/consumers#heartbeat">Heartbeat&lt;/a>&lt;/td>
 &lt;td>&lt;code>10s&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>ackPolicy&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;a href="https://docs.nats.io/nats-concepts/jetstream/consumers#ackpolicy">Ack Policy&lt;/a>&lt;/td>
 &lt;td>&lt;code>explicit&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>deliverPolicy&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>One of: all, last, new, sequence, time&lt;/td>
 &lt;td>&lt;code>all&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>domain&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>[JetStream Leafondes]&lt;/td>
 &lt;td>&lt;code>HUB&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>apiPrefix&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>[JetStream Leafnodes]&lt;/td>
 &lt;td>&lt;code>PREFIX&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="create-a-nats-server">Create a NATS server&lt;/h2>






&lt;ul class="nav nav-tabs" id="tabs-2" role="tablist">
 &lt;li class="nav-item">
 &lt;button class="nav-link active"
 id="tabs-02-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-02-00" role="tab"
 data-td-tp-persist="self-hosted" aria-controls="tabs-02-00" aria-selected="true">
 Self-Hosted
 &lt;/button>
 &lt;/li>&lt;li class="nav-item">
 &lt;button class="nav-link"
 id="tabs-02-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-02-01" role="tab"
 data-td-tp-persist="kubernetes" aria-controls="tabs-02-01" aria-selected="false">
 Kubernetes
 &lt;/button>
 &lt;/li>
&lt;/ul>

&lt;div class="tab-content" id="tabs-2-content">
 &lt;div class="tab-body tab-pane fade show active"
 id="tabs-02-00" role="tabpanel" aria-labelled-by="tabs-02-00-tab" tabindex="2">
 &lt;p>You can run a NATS Server with JetStream enabled locally using Docker:&lt;/p></description></item><item><title>KubeMQ</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-kubemq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-kubemq/</guid><description>&lt;h2 id="component-format">Component format&lt;/h2>
&lt;p>To set up KubeMQ pub/sub, create a component of type &lt;code>pubsub.kubemq&lt;/code>. See the &lt;a href="https://v1-18.docs.dapr.io/operations/components/setup-pubsub/">pub/sub broker component file&lt;/a> to learn how ConsumerID is automatically generated. Read the &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-1-setup-the-pubsub-component">How-to: Publish and Subscribe guide&lt;/a> on how to create and apply a pub/sub configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">apiVersion&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr.io/v1alpha1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">kind&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">Component&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">kubemq-pubsub&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">type&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">pubsub.kubemq&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">version&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">v1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">address&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">localhost:50000&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">store&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">false&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">consumerID&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">channel1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="spec-metadata-fields">Spec metadata fields&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Field&lt;/th>
 &lt;th style="text-align: center">Required&lt;/th>
 &lt;th>Details&lt;/th>
 &lt;th>Example&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>address&lt;/td>
 &lt;td style="text-align: center">Y&lt;/td>
 &lt;td>Address of the KubeMQ server&lt;/td>
 &lt;td>&lt;code>&amp;quot;localhost:50000&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>store&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>type of pubsub, true: pubsub persisted (EventsStore), false: pubsub in-memory (Events)&lt;/td>
 &lt;td>&lt;code>true&lt;/code> or &lt;code>false&lt;/code> (default is &lt;code>false&lt;/code>)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>consumerID&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Consumer ID (consumer tag) organizes one or more consumers into a group. Consumers with the same consumer ID work as one virtual consumer; for example, a message is processed only once by one of the consumers in the group. If the &lt;code>consumerID&lt;/code> is not provided, the Dapr runtime set it to the Dapr application ID (&lt;code>appID&lt;/code>) value.&lt;/td>
 &lt;td>Can be set to string value (such as &lt;code>&amp;quot;channel1&amp;quot;&lt;/code> in the example above) or string format value (such as &lt;code>&amp;quot;{podName}&amp;quot;&lt;/code>, etc.). &lt;a href="https://v1-18.docs.dapr.io/reference/resource-specs/component-schema/#templated-metadata-values">See all of template tags you can use in your component metadata.&lt;/a>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>clientID&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Name for client id connection&lt;/td>
 &lt;td>&lt;code>sub-client-12345&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>authToken&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Auth JWT token for connection Check out &lt;a href="https://docs.kubemq.io/learn/access-control/authentication">KubeMQ Authentication&lt;/a>&lt;/td>
 &lt;td>&lt;code>ew...&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>group&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Subscriber group for load balancing&lt;/td>
 &lt;td>&lt;code>g1&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>disableReDelivery&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Set if message should be re-delivered in case of error coming from application&lt;/td>
 &lt;td>&lt;code>true&lt;/code> or &lt;code>false&lt;/code> (default is &lt;code>false&lt;/code>)&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="create-a-kubemq-broker">Create a KubeMQ broker&lt;/h2>






&lt;ul class="nav nav-tabs" id="tabs-3" role="tablist">
 &lt;li class="nav-item">
 &lt;button class="nav-link active"
 id="tabs-03-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-03-00" role="tab"
 data-td-tp-persist="self-hosted" aria-controls="tabs-03-00" aria-selected="true">
 Self-Hosted
 &lt;/button>
 &lt;/li>&lt;li class="nav-item">
 &lt;button class="nav-link"
 id="tabs-03-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-03-01" role="tab"
 data-td-tp-persist="kubernetes" aria-controls="tabs-03-01" aria-selected="false">
 Kubernetes
 &lt;/button>
 &lt;/li>
&lt;/ul>

&lt;div class="tab-content" id="tabs-3-content">
 &lt;div class="tab-body tab-pane fade show active"
 id="tabs-03-00" role="tabpanel" aria-labelled-by="tabs-03-00-tab" tabindex="3">
 &lt;ol>
&lt;li>&lt;a href="https://docs.kubemq.io/getting-started/quick-start#obtain-kubemq-license-key">Obtain KubeMQ Key&lt;/a>.&lt;/li>
&lt;li>Wait for an email confirmation with your Key&lt;/li>
&lt;/ol>
&lt;p>You can run a KubeMQ broker with Docker:&lt;/p></description></item><item><title>MQTT</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-mqtt/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-mqtt/</guid><description>&lt;h2 id="component-format">Component format&lt;/h2>
&lt;p>To set up MQTT pub/sub, create a component of type &lt;code>pubsub.mqtt&lt;/code>. See the &lt;a href="https://v1-18.docs.dapr.io/operations/components/setup-pubsub/">pub/sub broker component file&lt;/a> to learn how ConsumerID is automatically generated. Read the &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-1-setup-the-pubsub-component">How-to: Publish and Subscribe guide&lt;/a> on how to create and apply a pub/sub configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">apiVersion&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr.io/v1alpha1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">kind&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">Component&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">mqtt-pubsub&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">type&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">pubsub.mqtt&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">version&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">v1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">url&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;tcp://[username][:password]@host.domain[:port]&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">qos&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">retain&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;false&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">cleanSession&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;false&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">consumerID&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;channel1&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>

&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Warning&lt;/h4>

 The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described &lt;a href="https://v1-18.docs.dapr.io/operations/components/component-secrets/">here&lt;/a>.

&lt;/div>

&lt;h2 id="spec-metadata-fields">Spec metadata fields&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Field&lt;/th>
 &lt;th style="text-align: center">Required&lt;/th>
 &lt;th>Details&lt;/th>
 &lt;th>Example&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>url&lt;/td>
 &lt;td style="text-align: center">Y&lt;/td>
 &lt;td>Address of the MQTT broker. Can be &lt;code>secretKeyRef&lt;/code> to use a secret reference. &lt;br> Use the &lt;strong>&lt;code>tcp://&lt;/code>&lt;/strong> URI scheme for non-TLS communication. &lt;br> Use the &lt;strong>&lt;code>ssl://&lt;/code>&lt;/strong> URI scheme for TLS communication.&lt;/td>
 &lt;td>&lt;code>&amp;quot;tcp://[username][:password]@host.domain[:port]&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>consumerID&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The client ID used to connect to the MQTT broker for the consumer connection. Defaults to the Dapr app ID.&lt;br>Note: if &lt;code>producerID&lt;/code> is not set, &lt;code>-consumer&lt;/code> is appended to this value for the consumer connection&lt;/td>
 &lt;td>Can be set to string value (such as &lt;code>&amp;quot;channel1&amp;quot;&lt;/code> in the example above) or string format value (such as &lt;code>&amp;quot;{podName}&amp;quot;&lt;/code>, etc.). &lt;a href="https://v1-18.docs.dapr.io/reference/resource-specs/component-schema/#templated-metadata-values">See all of template tags you can use in your component metadata.&lt;/a>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>producerID&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The client ID used to connect to the MQTT broker for the producer connection. Defaults to &lt;code>{consumerID}-producer&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;myMqttProducerApp&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>qos&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Indicates the Quality of Service Level (QoS) of the message (&lt;a href="https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels/">more info&lt;/a>). Defaults to &lt;code>1&lt;/code>.&lt;/td>
 &lt;td>&lt;code>0&lt;/code>, &lt;code>1&lt;/code>, &lt;code>2&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>retain&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Defines whether the message is saved by the broker as the last known good value for a specified topic. Defaults to &lt;code>&amp;quot;false&amp;quot;&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>cleanSession&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Sets the &lt;code>clean_session&lt;/code> flag in the connection message to the MQTT broker if &lt;code>&amp;quot;true&amp;quot;&lt;/code> (&lt;a href="http://www.steves-internet-guide.com/mqtt-clean-sessions-example/">more info&lt;/a>). Defaults to &lt;code>&amp;quot;false&amp;quot;&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>caCert&lt;/td>
 &lt;td style="text-align: center">Required for using TLS&lt;/td>
 &lt;td>Certificate Authority (CA) certificate in PEM format for verifying server TLS certificates.&lt;/td>
 &lt;td>&lt;code>&amp;quot;-----BEGIN CERTIFICATE-----\n&amp;lt;base64-encoded DER&amp;gt;\n-----END CERTIFICATE-----&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>clientCert&lt;/td>
 &lt;td style="text-align: center">Required for using TLS&lt;/td>
 &lt;td>TLS client certificate in PEM format. Must be used with &lt;code>clientKey&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;-----BEGIN CERTIFICATE-----\n&amp;lt;base64-encoded DER&amp;gt;\n-----END CERTIFICATE-----&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>clientKey&lt;/td>
 &lt;td style="text-align: center">Required for using TLS&lt;/td>
 &lt;td>TLS client key in PEM format. Must be used with &lt;code>clientCert&lt;/code>. Can be &lt;code>secretKeyRef&lt;/code> to use a secret reference.&lt;/td>
 &lt;td>&lt;code>&amp;quot;-----BEGIN RSA PRIVATE KEY-----\n&amp;lt;base64-encoded PKCS8&amp;gt;\n-----END RSA PRIVATE KEY-----&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="enabling-message-delivery-retries">Enabling message delivery retries&lt;/h3>
&lt;p>The MQTT pub/sub component has no built-in support for retry strategies. This means that the sidecar sends a message to the service only once. If the service marks the message as not processed, the message won&amp;rsquo;t be acknowledged back to the broker. Only if broker resends the message, would it would be retried.&lt;/p></description></item><item><title>MQTT3</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-mqtt3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-mqtt3/</guid><description>&lt;h2 id="component-format">Component format&lt;/h2>
&lt;p>To set up a MQTT3 pub/sub, create a component of type &lt;code>pubsub.mqtt3&lt;/code>. See the &lt;a href="https://v1-18.docs.dapr.io/operations/components/setup-pubsub/">pub/sub broker component file&lt;/a> to learn how ConsumerID is automatically generated. Read the &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-1-setup-the-pubsub-component">How-to: Publish and Subscribe guide&lt;/a> on how to create and apply a pub/sub configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">apiVersion&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr.io/v1alpha1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">kind&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">Component&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">mqtt-pubsub&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">type&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">pubsub.mqtt3&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">version&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">v1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">url&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;tcp://[username][:password]@host.domain[:port]&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">retain&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;false&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">cleanSession&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;false&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">qos&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;1&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">consumerID&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;channel1&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>

&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Warning&lt;/h4>

 The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described &lt;a href="https://v1-18.docs.dapr.io/operations/components/component-secrets/">here&lt;/a>.

&lt;/div>

&lt;h2 id="spec-metadata-fields">Spec metadata fields&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Field&lt;/th>
 &lt;th style="text-align: center">Required&lt;/th>
 &lt;th>Details&lt;/th>
 &lt;th>Example&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>url&lt;/code>&lt;/td>
 &lt;td style="text-align: center">Y&lt;/td>
 &lt;td>Address of the MQTT broker. Can be &lt;code>secretKeyRef&lt;/code> to use a secret reference. &lt;br> Use the &lt;strong>&lt;code>tcp://&lt;/code>&lt;/strong> URI scheme for non-TLS communication. &lt;br> Use the &lt;strong>&lt;code>ssl://&lt;/code>&lt;/strong> URI scheme for TLS communication.&lt;/td>
 &lt;td>&lt;code>&amp;quot;tcp://[username][:password]@host.domain[:port]&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>consumerID&lt;/code>&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The client ID used to connect to the MQTT broker. Defaults to the Dapr app ID.&lt;/td>
 &lt;td>Can be set to string value (such as &lt;code>&amp;quot;channel1&amp;quot;&lt;/code> in the example above) or string format value (such as &lt;code>&amp;quot;{podName}&amp;quot;&lt;/code>, etc.). &lt;a href="https://v1-18.docs.dapr.io/reference/resource-specs/component-schema/#templated-metadata-values">See all of template tags you can use in your component metadata.&lt;/a>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>retain&lt;/code>&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Defines whether the message is saved by the broker as the last known good value for a specified topic. Defaults to &lt;code>&amp;quot;false&amp;quot;&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>cleanSession&lt;/code>&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Sets the &lt;code>clean_session&lt;/code> flag in the connection message to the MQTT broker if &lt;code>&amp;quot;true&amp;quot;&lt;/code> (&lt;a href="http://www.steves-internet-guide.com/mqtt-clean-sessions-example/">more info&lt;/a>). Defaults to &lt;code>&amp;quot;false&amp;quot;&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>caCert&lt;/code>&lt;/td>
 &lt;td style="text-align: center">Required for using TLS&lt;/td>
 &lt;td>Certificate Authority (CA) certificate in PEM format for verifying server TLS certificates.&lt;/td>
 &lt;td>See example below&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>clientCert&lt;/code>&lt;/td>
 &lt;td style="text-align: center">Required for using TLS&lt;/td>
 &lt;td>TLS client certificate in PEM format. Must be used with &lt;code>clientKey&lt;/code>.&lt;/td>
 &lt;td>See example below&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>clientKey&lt;/code>&lt;/td>
 &lt;td style="text-align: center">Required for using TLS&lt;/td>
 &lt;td>TLS client key in PEM format. Must be used with &lt;code>clientCert&lt;/code>. Can be &lt;code>secretKeyRef&lt;/code> to use a secret reference.&lt;/td>
 &lt;td>See example below&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>qos&lt;/code>&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Indicates the Quality of Service Level (QoS) of the message (&lt;a href="https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels/">more info&lt;/a>). Defaults to &lt;code>1&lt;/code>.&lt;/td>
 &lt;td>&lt;code>0&lt;/code>, &lt;code>1&lt;/code>, &lt;code>2&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="communication-using-tls">Communication using TLS&lt;/h3>
&lt;p>To configure communication using TLS, ensure that the MQTT broker (for example, emqx) is configured to support certificates and provide the &lt;code>caCert&lt;/code>, &lt;code>clientCert&lt;/code>, &lt;code>clientKey&lt;/code> metadata in the component configuration. For example:&lt;/p></description></item><item><title>Pulsar</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-pulsar/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-pulsar/</guid><description>&lt;h2 id="component-format">Component format&lt;/h2>
&lt;p>To set up Apache Pulsar pub/sub, create a component of type &lt;code>pubsub.pulsar&lt;/code>. See the &lt;a href="https://v1-18.docs.dapr.io/operations/components/setup-pubsub/">pub/sub broker component file&lt;/a> to learn how ConsumerID is automatically generated. Read the &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-1-setup-the-pubsub-component">How-to: Publish and Subscribe guide&lt;/a> on how to create and apply a pub/sub configuration.&lt;/p>
&lt;p>For more information on Apache Pulsar, &lt;a href="https://pulsar.apache.org/docs/en/concepts-overview/">read the official docs&lt;/a>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">apiVersion&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr.io/v1alpha1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">kind&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">Component&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">pulsar-pubsub&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">type&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">pubsub.pulsar&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">version&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">v1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">host&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;localhost:6650&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">enableTLS&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;false&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">tenant&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;public&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">token&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;eyJrZXlJZCI6InB1bHNhci1wajU0cXd3ZHB6NGIiLCJhbGciOiJIUzI1NiJ9.eyJzd&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">consumerID&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;channel1&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">namespace&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;default&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">persistent&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;true&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">disableBatching&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;false&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">receiverQueueSize&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;1000&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">&amp;lt;topic-name&amp;gt;.jsonschema&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># sets a json schema validation for the configured topic&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000;font-weight:bold">|&lt;/span>&lt;span style="color:#8f5902;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> {
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> &amp;#34;type&amp;#34;: &amp;#34;record&amp;#34;,
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> &amp;#34;name&amp;#34;: &amp;#34;Example&amp;#34;,
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> &amp;#34;namespace&amp;#34;: &amp;#34;test&amp;#34;,
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> &amp;#34;fields&amp;#34;: [
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> {&amp;#34;name&amp;#34;: &amp;#34;ID&amp;#34;,&amp;#34;type&amp;#34;: &amp;#34;int&amp;#34;},
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> {&amp;#34;name&amp;#34;: &amp;#34;Name&amp;#34;,&amp;#34;type&amp;#34;: &amp;#34;string&amp;#34;}
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> ]
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> }&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">&amp;lt;topic-name&amp;gt;.avroschema&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># sets an avro schema validation for the configured topic&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000;font-weight:bold">|&lt;/span>&lt;span style="color:#8f5902;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> {
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> &amp;#34;type&amp;#34;: &amp;#34;record&amp;#34;,
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> &amp;#34;name&amp;#34;: &amp;#34;Example&amp;#34;,
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> &amp;#34;namespace&amp;#34;: &amp;#34;test&amp;#34;,
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> &amp;#34;fields&amp;#34;: [
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> {&amp;#34;name&amp;#34;: &amp;#34;ID&amp;#34;,&amp;#34;type&amp;#34;: &amp;#34;int&amp;#34;},
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> {&amp;#34;name&amp;#34;: &amp;#34;Name&amp;#34;,&amp;#34;type&amp;#34;: &amp;#34;string&amp;#34;}
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> ]
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"> }&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>

&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Warning&lt;/h4>

 The above example uses secrets as plain strings. It is recommended to use a &lt;a href="https://v1-18.docs.dapr.io/operations/components/component-secrets/">secret store for the secrets&lt;/a>. This component supports storing the &lt;code>token&lt;/code> parameter and any other sensitive parameter and data as Kubernetes Secrets.

&lt;/div>

&lt;h2 id="spec-metadata-fields">Spec metadata fields&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Field&lt;/th>
 &lt;th style="text-align: center">Required&lt;/th>
 &lt;th>Details&lt;/th>
 &lt;th>Example&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>host&lt;/td>
 &lt;td style="text-align: center">Y&lt;/td>
 &lt;td>Address of the Pulsar broker. Default is &lt;code>&amp;quot;localhost:6650&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;localhost:6650&amp;quot;&lt;/code> OR &lt;code>&amp;quot;http://pulsar-pj54qwwdpz4b-pulsar.ap-sg.public.pulsar.com:8080&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>enableTLS&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Enable TLS. Default: &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>tenant&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The topic tenant within the instance. Tenants are essential to multi-tenancy in Pulsar, and spread across clusters. Default: &lt;code>&amp;quot;public&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;public&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>consumerID&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Used to set the subscription name or consumer ID.&lt;/td>
 &lt;td>Can be set to string value (such as &lt;code>&amp;quot;channel1&amp;quot;&lt;/code> in the example above) or string format value (such as &lt;code>&amp;quot;{podName}&amp;quot;&lt;/code>, etc.). &lt;a href="https://v1-18.docs.dapr.io/reference/resource-specs/component-schema/#templated-metadata-values">See all of template tags you can use in your component metadata.&lt;/a>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>namespace&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The administrative unit of the topic, which acts as a grouping mechanism for related topics. Default: &lt;code>&amp;quot;default&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;default&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>persistent&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Pulsar supports two kinds of topics: &lt;a href="https://pulsar.apache.org/docs/en/concepts-architecture-overview#persistent-storage">persistent&lt;/a> and &lt;a href="https://pulsar.apache.org/docs/en/concepts-messaging/#non-persistent-topics">non-persistent&lt;/a>. With persistent topics, all messages are durably persisted on disks (if the broker is not standalone, messages are durably persisted on multiple disks), whereas data for non-persistent topics is not persisted to storage disks.&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>disableBatching&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>disable batching.When batching enabled default batch delay is set to 10 ms and default batch size is 1000 messages,Setting &lt;code>disableBatching: true&lt;/code> will make the producer to send messages individually. Default: &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>receiverQueueSize&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Sets the size of the consumer receiver queue. Controls how many messages can be accumulated by the consumer before it is explicitly called to read messages by Dapr. Default: &lt;code>&amp;quot;1000&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;1000&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>redeliveryDelay&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Delay before redelivering a message that was not acknowledged by the app. Default: &lt;code>&amp;quot;30s&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;30s&amp;quot;&lt;/code>, &lt;code>&amp;quot;200ms&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>batchingMaxPublishDelay&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>batchingMaxPublishDelay set the time period within which the messages sent will be batched,if batch messages are enabled. If set to a non zero value, messages will be queued until this time interval or batchingMaxMessages (see below) or batchingMaxSize (see below). There are two valid formats, one is the fraction with a unit suffix format, and the other is the pure digital format that is processed as milliseconds. Valid time units are &amp;ldquo;ns&amp;rdquo;, &amp;ldquo;us&amp;rdquo; (or &amp;ldquo;µs&amp;rdquo;), &amp;ldquo;ms&amp;rdquo;, &amp;ldquo;s&amp;rdquo;, &amp;ldquo;m&amp;rdquo;, &amp;ldquo;h&amp;rdquo;. Default: &lt;code>&amp;quot;10ms&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;10ms&amp;quot;&lt;/code>, &lt;code>&amp;quot;10&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>batchingMaxMessages&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>batchingMaxMessages set the maximum number of messages permitted in a batch.If set to a value greater than 1, messages will be queued until this threshold is reached or batchingMaxSize (see below) has been reached or the batch interval has elapsed. Default: &lt;code>&amp;quot;1000&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;1000&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>batchingMaxSize&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>batchingMaxSize sets the maximum number of bytes permitted in a batch. If set to a value greater than 1, messages will be queued until this threshold is reached or batchingMaxMessages (see above) has been reached or the batch interval has elapsed. Default: &lt;code>&amp;quot;128KB&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;131072&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>compressionType&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Sets the compression type for messages sent by the producer. Default: &lt;code>&amp;quot;none&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;none&amp;quot;&lt;/code>, &lt;code>&amp;quot;lz4&amp;quot;&lt;/code>, &lt;code>&amp;quot;zlib&amp;quot;&lt;/code>, &lt;code>&amp;quot;zstd&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>compressionLevel&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Sets the compression level used when &lt;code>compressionType&lt;/code> is enabled. Default: &lt;code>&amp;quot;default&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;default&amp;quot;&lt;/code>, &lt;code>&amp;quot;faster&amp;quot;&lt;/code>, &lt;code>&amp;quot;better&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;topic-name>.jsonschema&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Enforces JSON schema validation for the configured topic.&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;topic-name>.avroschema&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Enforces Avro schema validation for the configured topic.&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;topic-name>.rawschema&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Registers the provided Avro or JSON schema as-is instead of wrapping it in a CloudEvents envelope schema. Default: &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>publicKey&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>A public key to be used for publisher and consumer encryption. Value can be one of two options: file path for a local PEM cert, or the cert data string value&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>privateKey&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>A private key to be used for consumer encryption. Value can be one of two options: file path for a local PEM cert, or the cert data string value&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>keys&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>A comma delimited string containing names of &lt;a href="https://pulsar.apache.org/docs/3.0.x/security-encryption/#how-it-works-in-pulsar">Pulsar session keys&lt;/a>. Used in conjunction with &lt;code>publicKey&lt;/code> for publisher encryption&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>processMode&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Enable processing multiple messages at once. Default: &lt;code>&amp;quot;async&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;async&amp;quot;&lt;/code>, &lt;code>&amp;quot;sync&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>subscribeType&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Pulsar supports four kinds of &lt;a href="https://pulsar.apache.org/docs/3.0.x/concepts-messaging/#subscription-types">subscription types&lt;/a>. Default: &lt;code>&amp;quot;shared&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;shared&amp;quot;&lt;/code>, &lt;code>&amp;quot;exclusive&amp;quot;&lt;/code>, &lt;code>&amp;quot;failover&amp;quot;&lt;/code>, &lt;code>&amp;quot;key_shared&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>subscribeInitialPosition&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Subscription position is the initial position which the cursor is set when start consuming. Default: &lt;code>&amp;quot;latest&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;latest&amp;quot;&lt;/code>, &lt;code>&amp;quot;earliest&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>subscribeMode&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Subscription mode indicates the cursor persistence, durable subscription retains messages and persists the current position. Default: &lt;code>&amp;quot;durable&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;durable&amp;quot;&lt;/code>, &lt;code>&amp;quot;non_durable&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>partitionKey&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Sets the key of the message for routing policy. Default: &lt;code>&amp;quot;&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>maxConcurrentHandlers&lt;/code>&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Defines the maximum number of concurrent message handlers. Default: &lt;code>100&lt;/code>&lt;/td>
 &lt;td>&lt;code>10&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>replicateSubscriptionState&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Enable replication of subscription state across geo-replicated Pulsar clusters. Default: &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="authenticate-using-token">Authenticate using Token&lt;/h3>
&lt;p>To authenticate to pulsar using a static &lt;a href="https://pulsar.apache.org/docs/en/security-jwt">JWT token&lt;/a>, you can use the following metadata field:&lt;/p></description></item><item><title>RabbitMQ</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-rabbitmq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-rabbitmq/</guid><description>&lt;h2 id="component-format">Component format&lt;/h2>
&lt;p>To set up RabbitMQ pub/sub, create a component of type &lt;code>pubsub.rabbitmq&lt;/code>. See the &lt;a href="https://v1-18.docs.dapr.io/operations/components/setup-pubsub/">pub/sub broker component file&lt;/a> to learn how ConsumerID is automatically generated. Read the &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-1-setup-the-pubsub-component">How-to: Publish and Subscribe guide&lt;/a> on how to create and apply a pub/sub configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">apiVersion&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr.io/v1alpha1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">kind&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">Component&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">rabbitmq-pubsub&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">type&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">pubsub.rabbitmq&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">version&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">v1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">connectionString&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;amqp://localhost:5672&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">protocol&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">amqp &lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">hostname&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">localhost &lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">username&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">username&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">password&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">password &lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">consumerID&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">channel1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">durable&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">false&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">deletedWhenUnused&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">false&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">autoAck&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">false&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">deliveryMode&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">0&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">requeueInFailure&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">false&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">prefetchCount&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">0&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">reconnectWait&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">0&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">concurrencyMode&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">parallel&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">publisherConfirm&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">false&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">enableDeadLetter&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional enable dead Letter or not&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">true&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">maxLen&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional max message count in a queue&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">3000&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">maxLenBytes&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Optional maximum length in bytes of a queue.&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">10485760&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">exchangeKind&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">fanout&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">saslExternal&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">false&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">ttlInSeconds&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">60&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">clientName&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>{&lt;span style="color:#000">podName}&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">heartBeat&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">10s&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">publishMessagePropertiesToMetadata&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;true&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>

&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Warning&lt;/h4>

 The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described &lt;a href="https://v1-18.docs.dapr.io/operations/components/component-secrets/">here&lt;/a>.

&lt;/div>

&lt;h2 id="spec-metadata-fields">Spec metadata fields&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Field&lt;/th>
 &lt;th style="text-align: center">Required&lt;/th>
 &lt;th>Details&lt;/th>
 &lt;th>Example&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>connectionString&lt;/td>
 &lt;td style="text-align: center">Y*&lt;/td>
 &lt;td>The RabbitMQ connection string. *Mutually exclusive with protocol, hostname, username, password field&lt;/td>
 &lt;td>&lt;code>amqp://user:pass@localhost:5672&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>protocol&lt;/td>
 &lt;td style="text-align: center">N*&lt;/td>
 &lt;td>The RabbitMQ protocol. *Mutually exclusive with connectionString field&lt;/td>
 &lt;td>&lt;code>amqp&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>hostname&lt;/td>
 &lt;td style="text-align: center">N*&lt;/td>
 &lt;td>The RabbitMQ hostname. *Mutually exclusive with connectionString field&lt;/td>
 &lt;td>&lt;code>localhost&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>username&lt;/td>
 &lt;td style="text-align: center">N*&lt;/td>
 &lt;td>The RabbitMQ username. *Mutually exclusive with connectionString field&lt;/td>
 &lt;td>&lt;code>username&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>password&lt;/td>
 &lt;td style="text-align: center">N*&lt;/td>
 &lt;td>The RabbitMQ password. *Mutually exclusive with connectionString field&lt;/td>
 &lt;td>&lt;code>password&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>consumerID&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Consumer ID (consumer tag) organizes one or more consumers into a group. Consumers with the same consumer ID work as one virtual consumer; for example, a message is processed only once by one of the consumers in the group. If the &lt;code>consumerID&lt;/code> is not provided, the Dapr runtime set it to the Dapr application ID (&lt;code>appID&lt;/code>) value.&lt;/td>
 &lt;td>Can be set to string value (such as &lt;code>&amp;quot;channel1&amp;quot;&lt;/code> in the example above) or string format value (such as &lt;code>&amp;quot;{podName}&amp;quot;&lt;/code>, etc.). &lt;a href="https://v1-18.docs.dapr.io/reference/resource-specs/component-schema/#templated-metadata-values">See all of template tags you can use in your component metadata.&lt;/a>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>durable&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Whether or not to use &lt;a href="https://www.rabbitmq.com/queues.html#durability">durable&lt;/a> queues. Defaults to &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>deletedWhenUnused&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Whether or not the queue should be configured to &lt;a href="https://www.rabbitmq.com/queues.html">auto-delete&lt;/a> Defaults to &lt;code>&amp;quot;true&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>autoAck&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Whether or not the queue consumer should &lt;a href="https://www.rabbitmq.com/confirms.html">auto-ack&lt;/a> messages. Defaults to &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>deliveryMode&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Persistence mode when publishing messages. Defaults to &lt;code>&amp;quot;0&amp;quot;&lt;/code>. RabbitMQ treats &lt;code>&amp;quot;2&amp;quot;&lt;/code> as persistent, all other numbers as non-persistent&lt;/td>
 &lt;td>&lt;code>&amp;quot;0&amp;quot;&lt;/code>, &lt;code>&amp;quot;2&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>requeueInFailure&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Whether or not to requeue when sending a &lt;a href="https://www.rabbitmq.com/nack.html">negative acknowledgement&lt;/a> in case of a failure. Defaults to &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>prefetchCount&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Number of messages to &lt;a href="https://www.rabbitmq.com/consumer-prefetch.html">prefetch&lt;/a>. Consider changing this to a non-zero value for production environments. Defaults to &lt;code>&amp;quot;0&amp;quot;&lt;/code>, which means that all available messages will be pre-fetched.&lt;/td>
 &lt;td>&lt;code>&amp;quot;2&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>publisherConfirm&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>If enabled, client waits for &lt;a href="https://www.rabbitmq.com/confirms.html#publisher-confirms">publisher confirms&lt;/a> after publishing a message. Defaults to &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>reconnectWait&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>How long to wait (in seconds) before reconnecting if a connection failure occurs&lt;/td>
 &lt;td>&lt;code>&amp;quot;0&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>concurrencyMode&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>&lt;code>parallel&lt;/code> is the default, and allows processing multiple messages in parallel (limited by the &lt;code>app-max-concurrency&lt;/code> annotation, if configured). Set to &lt;code>single&lt;/code> to disable parallel processing. In most situations there&amp;rsquo;s no reason to change this.&lt;/td>
 &lt;td>&lt;code>parallel&lt;/code>, &lt;code>single&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>enableDeadLetter&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Enable forwarding Messages that cannot be handled to a dead-letter topic. Defaults to &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>maxLen&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The maximum number of messages of a queue and its dead letter queue (if dead letter enabled). If both &lt;code>maxLen&lt;/code> and &lt;code>maxLenBytes&lt;/code> are set then both will apply; whichever limit is hit first will be enforced. Defaults to no limit.&lt;/td>
 &lt;td>&lt;code>&amp;quot;1000&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>maxLenBytes&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Maximum length in bytes of a queue and its dead letter queue (if dead letter enabled). If both &lt;code>maxLen&lt;/code> and &lt;code>maxLenBytes&lt;/code> are set then both will apply; whichever limit is hit first will be enforced. Defaults to no limit.&lt;/td>
 &lt;td>&lt;code>&amp;quot;1048576&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>exchangeKind&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Exchange kind of the rabbitmq exchange. Defaults to &lt;code>&amp;quot;fanout&amp;quot;&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;fanout&amp;quot;&lt;/code>,&lt;code>&amp;quot;topic&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>saslExternal&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>With TLS, should the username be taken from an additional field (for example, CN). See &lt;a href="https://www.rabbitmq.com/access-control.html#mechanisms">RabbitMQ Authentication Mechanisms&lt;/a>. Defaults to &lt;code>&amp;quot;false&amp;quot;&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>ttlInSeconds&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Set message TTL at the component level, which can be overwritten by message level TTL per request.&lt;/td>
 &lt;td>&lt;code>&amp;quot;60&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>caCert&lt;/td>
 &lt;td style="text-align: center">Required for using TLS&lt;/td>
 &lt;td>Certificate Authority (CA) certificate in PEM format for verifying server TLS certificates.&lt;/td>
 &lt;td>&lt;code>&amp;quot;-----BEGIN CERTIFICATE-----\n&amp;lt;base64-encoded DER&amp;gt;\n-----END CERTIFICATE-----&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>clientCert&lt;/td>
 &lt;td style="text-align: center">Required for using TLS&lt;/td>
 &lt;td>TLS client certificate in PEM format. Must be used with &lt;code>clientKey&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;-----BEGIN CERTIFICATE-----\n&amp;lt;base64-encoded DER&amp;gt;\n-----END CERTIFICATE-----&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>clientKey&lt;/td>
 &lt;td style="text-align: center">Required for using TLS&lt;/td>
 &lt;td>TLS client key in PEM format. Must be used with &lt;code>clientCert&lt;/code>. Can be &lt;code>secretKeyRef&lt;/code> to use a secret reference.&lt;/td>
 &lt;td>&lt;code>&amp;quot;-----BEGIN RSA PRIVATE KEY-----\n&amp;lt;base64-encoded PKCS8&amp;gt;\n-----END RSA PRIVATE KEY-----&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>clientName&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>This RabbitMQ &lt;a href="https://www.rabbitmq.com/connections.html#client-provided-names">client-provided connection name&lt;/a> is a custom identifier. If set, the identifier is mentioned in RabbitMQ server log entries and management UI. Can be set to {uuid}, {podName}, or {appID}, which is replaced by Dapr runtime to the real value.&lt;/td>
 &lt;td>&lt;code>&amp;quot;app1&amp;quot;&lt;/code>, &lt;code>{uuid}&lt;/code>, &lt;code>{podName}&lt;/code>, &lt;code>{appID}&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>heartBeat&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Defines the heartbeat interval with the server, detecting the aliveness of the peer TCP connection with the RabbitMQ server. Defaults to &lt;code>10s&lt;/code> .&lt;/td>
 &lt;td>&lt;code>&amp;quot;10s&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>publishMessagePropertiesToMetadata&lt;/code>&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Whether to publish AMQP message properties (headers, message ID, etc.) to the metadata.&lt;/td>
 &lt;td>&amp;ldquo;true&amp;rdquo;, &amp;ldquo;false&amp;rdquo;&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="communication-using-tls">Communication using TLS&lt;/h2>
&lt;p>To configure communication using TLS, ensure that the RabbitMQ nodes have TLS enabled and provide the &lt;code>caCert&lt;/code>, &lt;code>clientCert&lt;/code>, &lt;code>clientKey&lt;/code> metadata in the component configuration. For example:&lt;/p></description></item><item><title>Redis Streams</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-redis-pubsub/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-redis-pubsub/</guid><description>&lt;h2 id="component-format">Component format&lt;/h2>
&lt;p>To set up Redis Streams pub/sub, create a component of type &lt;code>pubsub.redis&lt;/code>. See the &lt;a href="https://v1-18.docs.dapr.io/operations/components/setup-pubsub/">pub/sub broker component file&lt;/a> to learn how ConsumerID is automatically generated. Read the &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-1-setup-the-pubsub-component">How-to: Publish and Subscribe guide&lt;/a> on how to create and apply a pub/sub configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">apiVersion&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr.io/v1alpha1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">kind&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">Component&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">redis-pubsub&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">type&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">pubsub.redis&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">version&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">v1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">redisHost&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">localhost:6379&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">redisPassword&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;KeFg23!&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">consumerID&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;channel1&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">useEntraID&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;true&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">enableTLS&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;false&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>

&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Warning&lt;/h4>

 The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described &lt;a href="https://v1-18.docs.dapr.io/operations/components/component-secrets/">here&lt;/a>.

&lt;/div>

&lt;h2 id="spec-metadata-fields">Spec metadata fields&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Field&lt;/th>
 &lt;th style="text-align: center">Required&lt;/th>
 &lt;th>Details&lt;/th>
 &lt;th>Example&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>redisHost&lt;/td>
 &lt;td style="text-align: center">Y&lt;/td>
 &lt;td>Connection-string for the redis host. If &lt;code>&amp;quot;redisType&amp;quot;&lt;/code> is &lt;code>&amp;quot;cluster&amp;quot;&lt;/code>, it can be multiple hosts separated by commas or just a single host. When using Redis Sentinel (&lt;code>&amp;quot;failover&amp;quot;&lt;/code> is &lt;code>&amp;quot;true&amp;quot;&lt;/code>), multiple sentinel addresses can also be provided as comma-separated values.&lt;/td>
 &lt;td>&lt;code>localhost:6379&lt;/code>, &lt;code>redis-master.default.svc.cluster.local:6379&lt;/code>, &lt;code>sentinel1:26379,sentinel2:26379,sentinel3:26379&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>redisPassword&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Password for Redis host. No Default. Can be &lt;code>secretKeyRef&lt;/code> to use a secret reference&lt;/td>
 &lt;td>&lt;code>&amp;quot;&amp;quot;&lt;/code>, &lt;code>&amp;quot;KeFg23!&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>redisUsername&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Username for Redis host. Defaults to empty. Make sure your redis server version is 6 or above, and have created acl rule correctly.&lt;/td>
 &lt;td>&lt;code>&amp;quot;&amp;quot;&lt;/code>, &lt;code>&amp;quot;default&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>consumerID&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The consumer group ID.&lt;/td>
 &lt;td>Can be set to string value (such as &lt;code>&amp;quot;channel1&amp;quot;&lt;/code> in the example above) or string format value (such as &lt;code>&amp;quot;{podName}&amp;quot;&lt;/code>, etc.). &lt;a href="https://v1-18.docs.dapr.io/reference/resource-specs/component-schema/#templated-metadata-values">See all of template tags you can use in your component metadata.&lt;/a>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>useEntraID&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Implements EntraID support for Azure Cache for Redis. Before enabling this: &lt;ul>&lt;li>The &lt;code>redisHost&lt;/code> name must be specified in the form of &lt;code>&amp;quot;server:port&amp;quot;&lt;/code>&lt;/li>&lt;li>TLS must be enabled&lt;/li>&lt;/ul> Learn more about this setting under &lt;a href="https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-redis-pubsub/#setup-redis">Create a Redis instance &amp;gt; Azure Cache for Redis&lt;/a>&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>enableTLS&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>If the Redis instance supports TLS with public certificates, can be configured to be enabled or disabled. Defaults to &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>clientCert&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The content of the client certificate, used for Redis instances that require client-side certificates. Must be used with &lt;code>clientKey&lt;/code> and &lt;code>enableTLS&lt;/code> must be set to true. It is recommended to use a secret store as described &lt;a href="https://v1-18.docs.dapr.io/operations/components/component-secrets/">here&lt;/a>&lt;/td>
 &lt;td>&lt;code>&amp;quot;----BEGIN CERTIFICATE-----\nMIIC...&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>clientKey&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The content of the client private key, used in conjunction with &lt;code>clientCert&lt;/code> for authentication. It is recommended to use a secret store as described &lt;a href="https://v1-18.docs.dapr.io/operations/components/component-secrets/">here&lt;/a>&lt;/td>
 &lt;td>&lt;code>&amp;quot;----BEGIN PRIVATE KEY-----\nMIIE...&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>redeliverInterval&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The interval between checking for pending messages to redeliver. Can use either be Go duration string (for example &amp;ldquo;ms&amp;rdquo;, &amp;ldquo;s&amp;rdquo;, &amp;ldquo;m&amp;rdquo;) or milliseconds number. Defaults to &lt;code>&amp;quot;60s&amp;quot;&lt;/code>. &lt;code>&amp;quot;0&amp;quot;&lt;/code> disables redelivery.&lt;/td>
 &lt;td>&lt;code>&amp;quot;30s&amp;quot;&lt;/code>, &lt;code>&amp;quot;5000&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>processingTimeout&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The amount time that a message must be pending before attempting to redeliver it. Can use either be Go duration string ( for example &amp;ldquo;ms&amp;rdquo;, &amp;ldquo;s&amp;rdquo;, &amp;ldquo;m&amp;rdquo;) or milliseconds number. Defaults to &lt;code>&amp;quot;15s&amp;quot;&lt;/code>. &lt;code>&amp;quot;0&amp;quot;&lt;/code> disables redelivery.&lt;/td>
 &lt;td>&lt;code>&amp;quot;60s&amp;quot;&lt;/code>, &lt;code>&amp;quot;600000&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>queueDepth&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The size of the message queue for processing. Defaults to &lt;code>&amp;quot;100&amp;quot;&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;1000&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>concurrency&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The number of concurrent workers that are processing messages. Defaults to &lt;code>&amp;quot;10&amp;quot;&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;15&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>redisType&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The type of redis. There are two valid values, one is &lt;code>&amp;quot;node&amp;quot;&lt;/code> for single node mode, the other is &lt;code>&amp;quot;cluster&amp;quot;&lt;/code> for redis cluster mode. Defaults to &lt;code>&amp;quot;node&amp;quot;&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;cluster&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>redisDB&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Database selected after connecting to redis. If &lt;code>&amp;quot;redisType&amp;quot;&lt;/code> is &lt;code>&amp;quot;cluster&amp;quot;&lt;/code> this option is ignored. Defaults to &lt;code>&amp;quot;0&amp;quot;&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;0&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>redisMaxRetries&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Maximum number of times to retry commands before giving up. Default is to not retry failed commands.&lt;/td>
 &lt;td>&lt;code>&amp;quot;5&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>redisMinRetryInterval&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Minimum backoff for redis commands between each retry. Default is &lt;code>&amp;quot;8ms&amp;quot;&lt;/code>; &lt;code>&amp;quot;-1&amp;quot;&lt;/code> disables backoff.&lt;/td>
 &lt;td>&lt;code>&amp;quot;8ms&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>redisMaxRetryInterval&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Maximum backoff for redis commands between each retry. Default is &lt;code>&amp;quot;512ms&amp;quot;&lt;/code>;&lt;code>&amp;quot;-1&amp;quot;&lt;/code> disables backoff.&lt;/td>
 &lt;td>&lt;code>&amp;quot;5s&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>dialTimeout&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Dial timeout for establishing new connections. Defaults to &lt;code>&amp;quot;5s&amp;quot;&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;5s&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>readTimeout&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Timeout for socket reads, if set to &lt;code>&amp;quot;0s&amp;quot;&lt;/code>, the read will be blocking. If reached, redis commands will fail with a timeout instead of blocking. Defaults to &lt;code>&amp;quot;0s&amp;quot;&lt;/code>, &lt;code>&amp;quot;-1&amp;quot;&lt;/code> for no timeout.&lt;/td>
 &lt;td>&lt;code>&amp;quot;3s&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>writeTimeout&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Timeout for socket writes. If reached, redis commands will fail with a timeout instead of blocking. Defaults is readTimeout.&lt;/td>
 &lt;td>&lt;code>&amp;quot;3s&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>poolSize&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Maximum number of socket connections. Default is 10 connections per every CPU as reported by runtime.NumCPU.&lt;/td>
 &lt;td>&lt;code>&amp;quot;20&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>poolTimeout&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Amount of time client waits for a connection if all connections are busy before returning an error. Default is readTimeout + 1 second.&lt;/td>
 &lt;td>&lt;code>&amp;quot;5s&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>maxConnAge&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Connection age at which the client retires (closes) the connection. Default is to not close aged connections.&lt;/td>
 &lt;td>&lt;code>&amp;quot;30m&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>minIdleConns&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Minimum number of idle connections to keep open in order to avoid the performance degradation associated with creating new connections. Defaults to &lt;code>&amp;quot;0&amp;quot;&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;2&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>idleCheckFrequency&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Frequency of idle checks made by idle connections reaper. Default is &lt;code>&amp;quot;1m&amp;quot;&lt;/code>. &lt;code>&amp;quot;-1&amp;quot;&lt;/code> disables idle connections reaper.&lt;/td>
 &lt;td>&lt;code>&amp;quot;-1&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>idleTimeout&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Amount of time after which the client closes idle connections. Should be less than server&amp;rsquo;s timeout. Default is &lt;code>&amp;quot;5m&amp;quot;&lt;/code>. &lt;code>&amp;quot;-1&amp;quot;&lt;/code> disables idle timeout check.&lt;/td>
 &lt;td>&lt;code>&amp;quot;10m&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>failover&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Property to enable failover configuration. Needs sentinelMasterName to be set. When enabled, redisHost should contain the sentinel addresses. Defaults to &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;true&amp;quot;&lt;/code>, &lt;code>&amp;quot;false&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>sentinelMasterName&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The sentinel master name. See &lt;a href="https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/">Redis Sentinel Documentation&lt;/a>&lt;/td>
 &lt;td>&lt;code>&amp;quot;&amp;quot;&lt;/code>, &lt;code>&amp;quot;mymaster&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>sentinelUsername&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Username for Redis Sentinel. Applicable only when &amp;ldquo;failover&amp;rdquo; is true, and Redis Sentinel has authentication enabled&lt;/td>
 &lt;td>&lt;code>&amp;quot;username&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>sentinelPassword&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Password for Redis Sentinel. Applicable only when &amp;ldquo;failover&amp;rdquo; is true, and Redis Sentinel has authentication enabled&lt;/td>
 &lt;td>&lt;code>&amp;quot;password&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>maxLenApprox&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Maximum number of items inside a stream.The old entries are automatically evicted when the specified length is reached, so that the stream is left at a constant size. Defaults to unlimited.&lt;/td>
 &lt;td>&lt;code>&amp;quot;10000&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>streamTTL&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>TTL duration for stream entries. Entries older than this duration will be evicted. This is an approximate value, as it&amp;rsquo;s implemented using Redis stream&amp;rsquo;s &lt;code>MINID&lt;/code> trimming with the &amp;lsquo;~&amp;rsquo; modifier. The actual retention may include slightly more entries than strictly defined by the TTL, as Redis optimizes the trimming operation for efficiency by potentially keeping some additional entries.&lt;/td>
 &lt;td>&lt;code>&amp;quot;30d&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="create-a-redis-instance">Create a Redis instance&lt;/h2>
&lt;p>Dapr can use any Redis instance - containerized, running on your local dev machine, or a managed cloud service, provided the version of Redis is 5.x or 6.x.&lt;/p></description></item><item><title>RocketMQ</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-rocketmq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-rocketmq/</guid><description>&lt;h2 id="component-format">Component format&lt;/h2>
&lt;p>To set up RocketMQ pub/sub, create a component of type &lt;code>pubsub.rocketmq&lt;/code>. See the &lt;a href="https://v1-18.docs.dapr.io/operations/components/setup-pubsub/">pub/sub broker component file&lt;/a> to learn how ConsumerID is automatically generated. Read the &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-1-setup-the-pubsub-component">How-to: Publish and Subscribe guide&lt;/a> on how to create and apply a pub/sub configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">apiVersion&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr.io/v1alpha1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">kind&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">Component&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">rocketmq-pubsub&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">type&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">pubsub.rocketmq&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">version&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">v1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">instanceName&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr-rocketmq-test&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">consumerGroup&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr-rocketmq-test-g-c&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">producerGroup &lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr-rocketmq-test-g-p&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">consumerID&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">channel1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">nameSpace&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr-test&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">nameServer&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;127.0.0.1:9876,127.0.0.2:9876&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">retries&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#0000cf;font-weight:bold">3&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">consumerModel&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;clustering&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">consumeOrderly&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">false&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>

&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Warning&lt;/h4>

 The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described &lt;a href="https://v1-18.docs.dapr.io/operations/components/component-secrets/">here&lt;/a>.

&lt;/div>

&lt;h2 id="spec-metadata-fields">Spec metadata fields&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Field&lt;/th>
 &lt;th style="text-align: center">Required&lt;/th>
 &lt;th>Details&lt;/th>
 &lt;th>default&lt;/th>
 &lt;th>Example&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>instanceName&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Instance name&lt;/td>
 &lt;td>&lt;code>time.Now().String()&lt;/code>&lt;/td>
 &lt;td>&lt;code>dapr-rocketmq-test&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>consumerGroup&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Consumer group name. Recommend. If &lt;code>producerGroup&lt;/code> is &lt;code>null&lt;/code>，&lt;code>groupName&lt;/code> is used.&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;code>dapr-rocketmq-test-g-c &lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>producerGroup (consumerID)&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Producer group name. Recommended. If &lt;code>producerGroup&lt;/code> is &lt;code>null&lt;/code>，&lt;code>consumerID&lt;/code> is used. If &lt;code>consumerID&lt;/code> also is null, &lt;code>groupName&lt;/code> is used.&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;code>dapr-rocketmq-test-g-p&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>consumerID&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Consumer ID (consumer tag) organizes one or more consumers into a group. Consumers with the same consumer ID work as one virtual consumer; for example, a message is processed only once by one of the consumers in the group. If the &lt;code>consumerID&lt;/code> is not provided, the Dapr runtime set it to the Dapr application ID (&lt;code>appID&lt;/code>) value.&lt;/td>
 &lt;td>Can be set to string value (such as &lt;code>&amp;quot;channel1&amp;quot;&lt;/code> in the example above) or string format value (such as &lt;code>&amp;quot;{podName}&amp;quot;&lt;/code>, etc.). &lt;a href="https://v1-18.docs.dapr.io/reference/resource-specs/component-schema/#templated-metadata-values">See all of template tags you can use in your component metadata.&lt;/a>&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>groupName&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Consumer/Producer group name. &lt;strong>Depreciated&lt;/strong>.&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;code>dapr-rocketmq-test-g&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>nameSpace&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>RocketMQ namespace&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;code>dapr-rocketmq&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>nameServerDomain&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>RocketMQ name server domain&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;code>https://my-app.net:8080/nsaddr&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>nameServer&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>RocketMQ name server, separated by &amp;ldquo;,&amp;rdquo; or &amp;ldquo;;&amp;rdquo;&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;code>127.0.0.1:9876;127.0.0.2:9877,127.0.0.3:9877&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>accessKey&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Access Key (Username)&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;code>&amp;quot;admin&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>secretKey&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Secret Key (Password)&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;code>&amp;quot;password&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>securityToken&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Security Token&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>retries&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Number of retries to send a message to broker&lt;/td>
 &lt;td>&lt;code>3&lt;/code>&lt;/td>
 &lt;td>&lt;code>3&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>producerQueueSelector (queueSelector)&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Producer Queue selector. There are five implementations of queue selector: &lt;code>hash&lt;/code>, &lt;code>random&lt;/code>, &lt;code>manual&lt;/code>, &lt;code>roundRobin&lt;/code>, &lt;code>dapr&lt;/code>.&lt;/td>
 &lt;td>&lt;code>dapr&lt;/code>&lt;/td>
 &lt;td>&lt;code>hash&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>consumerModel&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Message model that defines how messages are delivered to each consumer client. RocketMQ supports two message models: &lt;code>clustering&lt;/code> and &lt;code>broadcasting&lt;/code>.&lt;/td>
 &lt;td>&lt;code>clustering&lt;/code>&lt;/td>
 &lt;td>&lt;code>broadcasting&lt;/code> , &lt;code>clustering&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>fromWhere (consumeFromWhere)&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Consuming point on consumer booting. There are three consuming points: &lt;code>CONSUME_FROM_LAST_OFFSET&lt;/code>, &lt;code>CONSUME_FROM_FIRST_OFFSET&lt;/code>, &lt;code>CONSUME_FROM_TIMESTAMP&lt;/code>&lt;/td>
 &lt;td>&lt;code>CONSUME_FROM_LAST_OFFSET&lt;/code>&lt;/td>
 &lt;td>&lt;code>CONSUME_FROM_LAST_OFFSET&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>consumeTimestamp&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Backtracks consumption time with second precision. Time format is &lt;code>yyyymmddhhmmss&lt;/code>. For example, &lt;code>20131223171201&lt;/code> implies the time of 17:12:01 and date of December 23, 2013&lt;/td>
 &lt;td>&lt;code> time.Now().Add(time.Minute * (-30)).Format(&amp;quot;20060102150405&amp;quot;)&lt;/code>&lt;/td>
 &lt;td>&lt;code>20131223171201&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>consumeOrderly&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Determines if it&amp;rsquo;s an ordered message using FIFO order.&lt;/td>
 &lt;td>&lt;code>false&lt;/code>&lt;/td>
 &lt;td>&lt;code>false&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>consumeMessageBatchMaxSize&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Batch consumption size out of range &lt;code>[1, 1024]&lt;/code>&lt;/td>
 &lt;td>&lt;code>512&lt;/code>&lt;/td>
 &lt;td>&lt;code>10&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>consumeConcurrentlyMaxSpan&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Concurrently max span offset. This has no effect on sequential consumption. Range: &lt;code>[1, 65535]&lt;/code>&lt;/td>
 &lt;td>&lt;code>1000&lt;/code>&lt;/td>
 &lt;td>&lt;code>1000&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>maxReconsumeTimes&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Max re-consume times. &lt;code>-1&lt;/code> means 16 times. If messages are re-consumed more than {@link maxReconsumeTimes} before success, they&amp;rsquo;ll be directed to a deletion queue.&lt;/td>
 &lt;td>Orderly message is &lt;code>MaxInt32&lt;/code>; Concurrently message is &lt;code>16&lt;/code>&lt;/td>
 &lt;td>&lt;code>16&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>autoCommit&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Enable auto commit&lt;/td>
 &lt;td>&lt;code>true&lt;/code>&lt;/td>
 &lt;td>&lt;code>false&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>consumeTimeout&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Maximum amount of time a message may block the consuming thread. Time unit: Minute&lt;/td>
 &lt;td>&lt;code>15&lt;/code>&lt;/td>
 &lt;td>&lt;code>15&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>consumerPullTimeout&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The socket timeout in milliseconds&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>pullInterval&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Message pull interval&lt;/td>
 &lt;td>&lt;code>100&lt;/code>&lt;/td>
 &lt;td>&lt;code>100&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>pullBatchSize&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The number of messages pulled from the broker at a time. If &lt;code>pullBatchSize&lt;/code> is &lt;code>null&lt;/code>, use &lt;code>ConsumerBatchSize&lt;/code>. &lt;code>pullBatchSize&lt;/code> out of range &lt;code>[1, 1024]&lt;/code>&lt;/td>
 &lt;td>&lt;code>32&lt;/code>&lt;/td>
 &lt;td>&lt;code>10&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>pullThresholdForQueue&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Flow control threshold on queue level. Each message queue will cache a maximum of 1000 messages by default. Consider the &lt;code>PullBatchSize&lt;/code> - the instantaneous value may exceed the limit. Range: &lt;code>[1, 65535]&lt;/code>&lt;/td>
 &lt;td>&lt;code>1024&lt;/code>&lt;/td>
 &lt;td>&lt;code>1000&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>pullThresholdForTopic&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Flow control threshold on topic level. The value of &lt;code>pullThresholdForQueue&lt;/code> will be overwritten and calculated based on &lt;code>pullThresholdForTopic&lt;/code> if it isn&amp;rsquo;t unlimited. For example, if the value of &lt;code>pullThresholdForTopic&lt;/code> is 1000 and 10 message queues are assigned to this consumer, then &lt;code>pullThresholdForQueue&lt;/code> will be set to 100. Range: &lt;code>[1, 6553500]&lt;/code>&lt;/td>
 &lt;td>&lt;code>-1(Unlimited)&lt;/code>&lt;/td>
 &lt;td>&lt;code>10&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>pullThresholdSizeForQueue&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Limit the cached message size on queue level. Consider the &lt;code>pullBatchSize&lt;/code> - the instantaneous value may exceed the limit. The size of a message is only measured by message body, so it&amp;rsquo;s not accurate. Range: &lt;code>[1, 1024]&lt;/code>&lt;/td>
 &lt;td>&lt;code>100&lt;/code>&lt;/td>
 &lt;td>&lt;code>100&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>pullThresholdSizeForTopic&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Limit the cached message size on topic level. The value of &lt;code>pullThresholdSizeForQueue&lt;/code> will be overwritten and calculated based on &lt;code>pullThresholdSizeForTopic&lt;/code> if it isn&amp;rsquo;t unlimited. For example, if the value of &lt;code>pullThresholdSizeForTopic&lt;/code> is 1000 MiB and 10 message queues are assigned to this consumer, then &lt;code>pullThresholdSizeForQueue&lt;/code> will be set to 100 MiB. Range: &lt;code>[1, 102400]&lt;/code>&lt;/td>
 &lt;td>&lt;code>-1&lt;/code>&lt;/td>
 &lt;td>&lt;code>100&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>content-type&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Message content type.&lt;/td>
 &lt;td>&lt;code>&amp;quot;text/plain&amp;quot;&lt;/code>&lt;/td>
 &lt;td>&lt;code>&amp;quot;application/cloudevents+json; charset=utf-8&amp;quot;&lt;/code>, &lt;code>&amp;quot;application/octet-stream&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>logLevel&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Log level&lt;/td>
 &lt;td>&lt;code>warn&lt;/code>&lt;/td>
 &lt;td>&lt;code>info&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>sendTimeOut&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Send message timeout to connect RocketMQ&amp;rsquo;s broker, measured in nanoseconds. &lt;strong>Deprecated&lt;/strong>.&lt;/td>
 &lt;td>3 seconds&lt;/td>
 &lt;td>&lt;code>10000000000&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>sendTimeOutSec&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Timeout duration for publishing a message in seconds. If &lt;code>sendTimeOutSec&lt;/code> is &lt;code>null&lt;/code>, &lt;code>sendTimeOut&lt;/code> is used.&lt;/td>
 &lt;td>3 seconds&lt;/td>
 &lt;td>&lt;code>3&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>mspProperties&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>The RocketMQ message properties in this collection are passed to the APP in Data Separate multiple properties with &amp;ldquo;,&amp;rdquo;&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;code>key,mkey&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>For backwards-compatibility reasons, the following values in the metadata are supported, although their use is discouraged.&lt;/p></description></item><item><title>Solace-AMQP</title><link>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-solace-amqp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/reference/components-reference/supported-pubsub/setup-solace-amqp/</guid><description>&lt;h2 id="component-format">Component format&lt;/h2>
&lt;p>To set up Solace-AMQP pub/sub, create a component of type &lt;code>pubsub.solace.amqp&lt;/code>. See the &lt;a href="https://v1-18.docs.dapr.io/operations/components/setup-pubsub/">pub/sub broker component file&lt;/a> to learn how ConsumerID is automatically generated. Read the &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-1-setup-the-pubsub-component">How-to: Publish and Subscribe guide&lt;/a> on how to create and apply a pub/sub configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">apiVersion&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr.io/v1alpha1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">kind&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">Component&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">solace&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">type&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">pubsub.solace.amqp&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">version&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">v1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">url&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#39;amqp://localhost:5672&amp;#39;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">username&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#39;default&amp;#39;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">password&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#39;default&amp;#39;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">consumerID&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#39;channel1&amp;#39;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>

&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Warning&lt;/h4>

 The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described &lt;a href="https://v1-18.docs.dapr.io/operations/components/component-secrets/">here&lt;/a>.

&lt;/div>

&lt;h2 id="spec-metadata-fields">Spec metadata fields&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Field&lt;/th>
 &lt;th style="text-align: center">Required&lt;/th>
 &lt;th>Details&lt;/th>
 &lt;th>Example&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>url&lt;/td>
 &lt;td style="text-align: center">Y&lt;/td>
 &lt;td>Address of the AMQP broker. Can be &lt;code>secretKeyRef&lt;/code> to use a secret reference. &lt;br> Use the &lt;strong>&lt;code>amqp://&lt;/code>&lt;/strong> URI scheme for non-TLS communication. &lt;br> Use the &lt;strong>&lt;code>amqps://&lt;/code>&lt;/strong> URI scheme for TLS communication.&lt;/td>
 &lt;td>&lt;code>&amp;quot;amqp://host.domain[:port]&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>username&lt;/td>
 &lt;td style="text-align: center">Y&lt;/td>
 &lt;td>The username to connect to the broker. Only required if anonymous is not specified or set to &lt;code>false&lt;/code> .&lt;/td>
 &lt;td>&lt;code>default&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>password&lt;/td>
 &lt;td style="text-align: center">Y&lt;/td>
 &lt;td>The password to connect to the broker. Only required if anonymous is not specified or set to &lt;code>false&lt;/code>.&lt;/td>
 &lt;td>&lt;code>default&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>consumerID&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>Consumer ID (consumer tag) organizes one or more consumers into a group. Consumers with the same consumer ID work as one virtual consumer; for example, a message is processed only once by one of the consumers in the group. If the &lt;code>consumerID&lt;/code> is not provided, the Dapr runtime set it to the Dapr application ID (&lt;code>appID&lt;/code>) value.&lt;/td>
 &lt;td>Can be set to string value (such as &lt;code>&amp;quot;channel1&amp;quot;&lt;/code> in the example above) or string format value (such as &lt;code>&amp;quot;{podName}&amp;quot;&lt;/code>, etc.). &lt;a href="https://v1-18.docs.dapr.io/reference/resource-specs/component-schema/#templated-metadata-values">See all of template tags you can use in your component metadata.&lt;/a>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>anonymous&lt;/td>
 &lt;td style="text-align: center">N&lt;/td>
 &lt;td>To connect to the broker without credential validation. Only works if enabled on the broker. A username and password would not be required if this is set to &lt;code>true&lt;/code>.&lt;/td>
 &lt;td>&lt;code>true&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>caCert&lt;/td>
 &lt;td style="text-align: center">Required for using TLS&lt;/td>
 &lt;td>Certificate Authority (CA) certificate in PEM format for verifying server TLS certificates.&lt;/td>
 &lt;td>&lt;code>&amp;quot;-----BEGIN CERTIFICATE-----\n&amp;lt;base64-encoded DER&amp;gt;\n-----END CERTIFICATE-----&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>clientCert&lt;/td>
 &lt;td style="text-align: center">Required for using TLS&lt;/td>
 &lt;td>TLS client certificate in PEM format. Must be used with &lt;code>clientKey&lt;/code>.&lt;/td>
 &lt;td>&lt;code>&amp;quot;-----BEGIN CERTIFICATE-----\n&amp;lt;base64-encoded DER&amp;gt;\n-----END CERTIFICATE-----&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>clientKey&lt;/td>
 &lt;td style="text-align: center">Required for using TLS&lt;/td>
 &lt;td>TLS client key in PEM format. Must be used with &lt;code>clientCert&lt;/code>. Can be &lt;code>secretKeyRef&lt;/code> to use a secret reference.&lt;/td>
 &lt;td>&lt;code>&amp;quot;-----BEGIN RSA PRIVATE KEY-----\n&amp;lt;base64-encoded PKCS8&amp;gt;\n-----END RSA PRIVATE KEY-----&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="communication-using-tls">Communication using TLS&lt;/h3>
&lt;p>To configure communication using TLS:&lt;/p></description></item></channel></rss>