You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2021/12/16 07:21:51 UTC

[pulsar] branch asf-site updated: Updated site at revision d7eea00

This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 8b076f8  Updated site at revision d7eea00
8b076f8 is described below

commit 8b076f8f980277a869b4497450020d5cb6e9e85e
Author: Pulsar Site Updater <de...@pulsar.incubator.apache.org>
AuthorDate: Thu Dec 16 07:19:45 2021 +0000

    Updated site at revision d7eea00
---
 content/api/client/2.10.0-SNAPSHOT/index-all.html  |   2 +
 .../org/apache/pulsar/client/api/Producer.html     |  37 +-
 .../pulsar-broker/2.10.0-SNAPSHOT/index-all.html   |  26 +-
 .../apache/pulsar/broker/admin/AdminResource.html  |  69 +-
 .../pulsar/broker/admin/impl/BrokerStatsBase.html  |   2 +-
 .../pulsar/broker/admin/impl/FunctionsBase.html    |   2 +-
 .../pulsar/broker/admin/impl/NamespacesBase.html   |   2 +-
 .../pulsar/broker/admin/impl/PackagesBase.html     |   2 +-
 .../broker/admin/impl/PersistentTopicsBase.html    |  24 +-
 .../broker/admin/impl/ResourceGroupsBase.html      |   2 +-
 .../broker/admin/impl/ResourceQuotasBase.html      |   2 +-
 .../broker/admin/impl/SchemasResourceBase.html     |   2 +-
 .../apache/pulsar/broker/admin/impl/SinksBase.html |   2 +-
 .../pulsar/broker/admin/impl/SourcesBase.html      |   2 +-
 .../pulsar/broker/admin/impl/TransactionsBase.html |   2 +-
 .../apache/pulsar/broker/admin/v1/BrokerStats.html |   2 +-
 .../apache/pulsar/broker/admin/v1/Functions.html   |   2 +-
 .../apache/pulsar/broker/admin/v1/Namespaces.html  |   2 +-
 .../broker/admin/v1/NonPersistentTopics.html       |   4 +-
 .../pulsar/broker/admin/v1/PersistentTopics.html   |   4 +-
 .../pulsar/broker/admin/v1/ResourceQuotas.html     |   2 +-
 .../pulsar/broker/admin/v1/SchemasResource.html    |   2 +-
 .../org/apache/pulsar/broker/admin/v2/Bookies.html |   2 +-
 .../apache/pulsar/broker/admin/v2/BrokerStats.html |   2 +-
 .../apache/pulsar/broker/admin/v2/Functions.html   |   2 +-
 .../apache/pulsar/broker/admin/v2/Namespaces.html  |   2 +-
 .../broker/admin/v2/NonPersistentTopics.html       |   6 +-
 .../pulsar/broker/admin/v2/PersistentTopics.html   |  33 +-
 .../pulsar/broker/admin/v2/ResourceGroups.html     |   2 +-
 .../pulsar/broker/admin/v2/ResourceQuotas.html     |   2 +-
 .../pulsar/broker/admin/v2/SchemasResource.html    |   2 +-
 .../org/apache/pulsar/broker/admin/v2/Worker.html  |   2 +-
 .../apache/pulsar/broker/admin/v2/WorkerStats.html |   2 +-
 .../apache/pulsar/broker/admin/v3/Functions.html   |   2 +-
 .../apache/pulsar/broker/admin/v3/Packages.html    |   2 +-
 .../org/apache/pulsar/broker/admin/v3/Sink.html    |   2 +-
 .../org/apache/pulsar/broker/admin/v3/Sinks.html   |   2 +-
 .../org/apache/pulsar/broker/admin/v3/Source.html  |   2 +-
 .../org/apache/pulsar/broker/admin/v3/Sources.html |   2 +-
 .../pulsar/broker/admin/v3/Transactions.html       |   2 +-
 .../org/apache/pulsar/broker/rest/Topics.html      |   4 +-
 .../org/apache/pulsar/broker/rest/TopicsBase.html  |   4 +-
 .../SystemTopicBasedTopicPoliciesService.html      |  46 +-
 ...liciesService.TopicPoliciesServiceDisabled.html |  46 +-
 .../broker/service/TopicPoliciesService.html       |  54 +-
 ...ception.TopicPoliciesCacheNotInitException.html |  17 +
 content/api/python/2.10.0-SNAPSHOT/index.html      |   6 +-
 content/api/python/index.html                      |   6 +-
 content/docs/en/2.4.0/administration-geo.html      |   5 +-
 .../docs/en/2.4.0/administration-geo/index.html    |   5 +-
 content/docs/en/2.4.1/administration-geo.html      |   5 +-
 .../docs/en/2.4.1/administration-geo/index.html    |   5 +-
 content/docs/en/2.4.2/administration-geo.html      |   5 +-
 .../docs/en/2.4.2/administration-geo/index.html    |   5 +-
 content/docs/en/2.5.0/administration-geo.html      |   5 +-
 .../docs/en/2.5.0/administration-geo/index.html    |   5 +-
 content/docs/en/2.5.1/administration-geo.html      |   5 +-
 .../docs/en/2.5.1/administration-geo/index.html    |   5 +-
 content/docs/en/2.5.2/administration-geo.html      |   5 +-
 .../docs/en/2.5.2/administration-geo/index.html    |   5 +-
 content/docs/en/2.6.0/administration-geo.html      |   5 +-
 .../docs/en/2.6.0/administration-geo/index.html    |   5 +-
 content/docs/en/2.6.1/administration-geo.html      |   5 +-
 .../docs/en/2.6.1/administration-geo/index.html    |   5 +-
 content/docs/en/2.6.2/administration-geo.html      |   5 +-
 .../docs/en/2.6.2/administration-geo/index.html    |   5 +-
 content/docs/en/2.6.3/administration-geo.html      |   5 +-
 .../docs/en/2.6.3/administration-geo/index.html    |   5 +-
 content/docs/en/2.6.4/administration-geo.html      |   5 +-
 .../docs/en/2.6.4/administration-geo/index.html    |   5 +-
 content/docs/en/2.7.0/administration-geo.html      |   5 +-
 .../docs/en/2.7.0/administration-geo/index.html    |   5 +-
 content/docs/en/2.7.1/administration-geo.html      |   5 +-
 .../docs/en/2.7.1/administration-geo/index.html    |   5 +-
 content/docs/en/2.7.2/administration-geo.html      |   5 +-
 .../docs/en/2.7.2/administration-geo/index.html    |   5 +-
 content/docs/en/2.7.3/administration-geo.html      |   5 +-
 .../docs/en/2.7.3/administration-geo/index.html    |   5 +-
 content/docs/en/2.8.0/administration-geo.html      |   5 +-
 .../docs/en/2.8.0/administration-geo/index.html    |   5 +-
 content/docs/en/administration-geo.html            |   5 +-
 content/docs/en/administration-geo/index.html      |   5 +-
 content/docs/en/next/administration-geo.html       |   5 +-
 content/docs/en/next/administration-geo/index.html |   5 +-
 content/docs/en/next/functions-runtime.html        |   3 +
 content/docs/en/next/functions-runtime/index.html  |   3 +
 content/docs/en/next/reference-configuration.html  |   9 +-
 .../en/next/reference-configuration/index.html     |   9 +-
 content/docs/fr/2.8.0/client-libraries-python.html |   6 +-
 .../fr/2.8.0/client-libraries-python/index.html    |   6 +-
 content/docs/fr/client-libraries-python.html       |   6 +-
 content/docs/fr/client-libraries-python/index.html |   6 +-
 content/docs/fr/next/admin-api-topics.html         |   7 +-
 content/docs/fr/next/admin-api-topics/index.html   |   7 +-
 content/docs/fr/next/client-libraries-go.html      | 138 +++
 .../docs/fr/next/client-libraries-go/index.html    | 138 +++
 content/docs/ja/2.8.0/client-libraries-python.html |   6 +-
 .../ja/2.8.0/client-libraries-python/index.html    |   6 +-
 content/docs/ja/client-libraries-python.html       |   6 +-
 content/docs/ja/client-libraries-python/index.html |   6 +-
 content/docs/ja/next/admin-api-topics.html         |   7 +-
 content/docs/ja/next/admin-api-topics/index.html   |   7 +-
 content/docs/ja/next/client-libraries-go.html      | 138 +++
 .../docs/ja/next/client-libraries-go/index.html    | 138 +++
 content/docs/ko/2.8.0/client-libraries-python.html |   6 +-
 .../ko/2.8.0/client-libraries-python/index.html    |   6 +-
 content/docs/ko/client-libraries-python.html       |   6 +-
 content/docs/ko/client-libraries-python/index.html |   6 +-
 content/docs/ko/next/admin-api-topics.html         |   7 +-
 content/docs/ko/next/admin-api-topics/index.html   |   7 +-
 content/docs/ko/next/client-libraries-go.html      | 138 +++
 .../docs/ko/next/client-libraries-go/index.html    | 138 +++
 .../docs/zh-CN/2.8.0/client-libraries-python.html  |  12 +-
 .../zh-CN/2.8.0/client-libraries-python/index.html |  12 +-
 content/docs/zh-CN/client-libraries-python.html    |  12 +-
 .../docs/zh-CN/client-libraries-python/index.html  |  12 +-
 content/docs/zh-CN/next/admin-api-topics.html      |  99 ++-
 .../docs/zh-CN/next/admin-api-topics/index.html    |  99 ++-
 .../zh-CN/next/administration-load-balance.html    |  10 +-
 .../next/administration-load-balance/index.html    |  10 +-
 content/docs/zh-CN/next/client-libraries-go.html   | 156 +++-
 .../docs/zh-CN/next/client-libraries-go/index.html | 156 +++-
 .../docs/zh-TW/2.8.0/client-libraries-python.html  |   6 +-
 .../zh-TW/2.8.0/client-libraries-python/index.html |   6 +-
 content/docs/zh-TW/client-libraries-python.html    |   6 +-
 .../docs/zh-TW/client-libraries-python/index.html  |   6 +-
 content/docs/zh-TW/next/admin-api-topics.html      |   7 +-
 .../docs/zh-TW/next/admin-api-topics/index.html    |   7 +-
 content/docs/zh-TW/next/client-libraries-go.html   | 138 +++
 .../docs/zh-TW/next/client-libraries-go/index.html | 138 +++
 content/en/powered-by.html                         |   2 +-
 content/en/powered-by/index.html                   |   2 +-
 content/fr/powered-by.html                         |   2 +-
 content/fr/powered-by/index.html                   |   2 +-
 content/ja/powered-by.html                         |   2 +-
 content/ja/powered-by/index.html                   |   2 +-
 content/ko/powered-by.html                         |   2 +-
 content/ko/powered-by/index.html                   |   2 +-
 content/powered-by.html                            |   2 +-
 content/powered-by/index.html                      |   2 +-
 content/swagger/2.10.0-SNAPSHOT/swagger.json       | 920 ++++++++++----------
 .../swagger/2.10.0-SNAPSHOT/swaggerfunctions.json  | 346 ++++----
 .../swagger/2.10.0-SNAPSHOT/swaggerpackages.json   | 300 +++----
 content/swagger/2.10.0-SNAPSHOT/swaggersink.json   | 300 +++----
 content/swagger/2.10.0-SNAPSHOT/swaggersource.json | 300 +++----
 content/swagger/2.10.0-SNAPSHOT/v2/swagger.json    | 960 +++++++++++----------
 .../2.10.0-SNAPSHOT/v3/swaggerfunctions.json       | 360 ++++----
 .../2.10.0-SNAPSHOT/v3/swaggerpackages.json        | 314 +++----
 .../swagger/2.10.0-SNAPSHOT/v3/swaggersink.json    | 314 +++----
 .../swagger/2.10.0-SNAPSHOT/v3/swaggersource.json  | 314 +++----
 content/swagger/master/swagger.json                | 920 ++++++++++----------
 content/swagger/master/swaggerfunctions.json       | 346 ++++----
 content/swagger/master/swaggerpackages.json        | 300 +++----
 content/swagger/master/swaggersink.json            | 300 +++----
 content/swagger/master/swaggersource.json          | 300 +++----
 content/swagger/master/v2/swagger.json             | 960 +++++++++++----------
 content/swagger/master/v3/swaggerfunctions.json    | 360 ++++----
 content/swagger/master/v3/swaggerpackages.json     | 314 +++----
 content/swagger/master/v3/swaggersink.json         | 314 +++----
 content/swagger/master/v3/swaggersource.json       | 314 +++----
 content/zh-CN/powered-by.html                      |   2 +-
 content/zh-CN/powered-by/index.html                |   2 +-
 content/zh-TW/powered-by.html                      |   2 +-
 content/zh-TW/powered-by/index.html                |   2 +-
 164 files changed, 6611 insertions(+), 4761 deletions(-)

diff --git a/content/api/client/2.10.0-SNAPSHOT/index-all.html b/content/api/client/2.10.0-SNAPSHOT/index-all.html
index 7592c1c..1ff6b52 100644
--- a/content/api/client/2.10.0-SNAPSHOT/index-all.html
+++ b/content/api/client/2.10.0-SNAPSHOT/index-all.html
@@ -1288,6 +1288,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ProducerStats.html#getNumMsgsSent--">getNumMsgsSent()</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ProducerStats.html" title="interface in org.apache.pulsar.client.api">ProducerStats</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/Producer.html#getNumOfPartitions--">getNumOfPartitions()</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/Producer.html" title="interface in org.apache.pulsar.client.api">Producer</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ConsumerStats.html#getNumReceiveFailed--">getNumReceiveFailed()</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ConsumerStats.html" title="interface in org.apache.pulsar.client.api">ConsumerStats</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ProducerStats.html#getNumSendFailed--">getNumSendFailed()</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ProducerStats.html" title="interface in org.apache.pulsar.client.api">ProducerStats</a></dt>
diff --git a/content/api/client/2.10.0-SNAPSHOT/org/apache/pulsar/client/api/Producer.html b/content/api/client/2.10.0-SNAPSHOT/org/apache/pulsar/client/api/Producer.html
index 4a0b076..f9ef3df 100644
--- a/content/api/client/2.10.0-SNAPSHOT/org/apache/pulsar/client/api/Producer.html
+++ b/content/api/client/2.10.0-SNAPSHOT/org/apache/pulsar/client/api/Producer.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -165,48 +165,52 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.htm
 </td>
 </tr>
 <tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Producer.html#getNumOfPartitions--">getNumOfPartitions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Producer.html#getProducerName--">getProducerName</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ProducerStats.html" title="interface in org.apache.pulsar.client.api">ProducerStats</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Producer.html#getStats--">getStats</a></span>()</code>
 <div class="block">Get statistics for the producer.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Producer.html#getTopic--">getTopic</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Producer.html#isConnected--">isConnected</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/TypedMessageBuilder.html" title="interface in org.apache.pulsar.client.api">TypedMessageBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/Producer.html" title="type parameter in Producer">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Producer.html#newMessage--">newMessage</a></span>()</code>
 <div class="block">Create a new message builder.</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="../../../../../org/apache/pulsar/client/api/TypedMessageBuilder.html" title="interface in org.apache.pulsar.client.api">TypedMessageBuilder</a>&lt;V&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Producer.html#newMessage-org.apache.pulsar.client.api.Schema-">newMessage</a></span>(<a href="../../../../../org/apache/pulsar/client/api/Schema.html" title="interface in org.apache.pulsar.client.api">Schema</a>&lt;V&gt;&nbsp;schema)</code>
 <div class="block">Create a new message builder with schema, not required same parameterized type with the producer.</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/TypedMessageBuilder.html" title="interface in org.apache.pulsar.client.api">TypedMessageBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/Producer.html" title="type parameter in Producer">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Producer.html#newMessage-org.apache.pulsar.client.api.transaction.Transaction-">newMessage</a></span>(<a href="../../../../../org/apache/pulsar/client/api/transaction/Transaction.html" title="interface in org.apache.pulsar.client.api.transaction">Transaction</a>&nbsp;txn)</code>
 <div class="block">Create a new message builder with transaction.</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/MessageId.html" title="interface in org.apache.pulsar.client.api">MessageId</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Producer.html#send-T-">send</a></span>(<a href="../../../../../org/apache/pulsar/client/api/Producer.html" title="type parameter in Producer">T</a>&nbsp;message)</code>
 <div class="block">Sends a message.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/MessageId.html" title="interface in org.apache.pulsar.client.api">MessageId</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Producer.html#sendAsync-T-">sendAsync</a></span>(<a href="../../../../../org/apache/pulsar/client/api/Producer.html" title="type parameter in Producer">T</a>&nbsp;message)</code>
 <div class="block">Send a message asynchronously.</div>
@@ -505,7 +509,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.htm
 <a name="getLastDisconnectedTimestamp--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getLastDisconnectedTimestamp</h4>
 <pre>long&nbsp;getLastDisconnectedTimestamp()</pre>
@@ -515,6 +519,19 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.htm
 </dl>
 </li>
 </ul>
+<a name="getNumOfPartitions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getNumOfPartitions</h4>
+<pre>int&nbsp;getNumOfPartitions()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the number of partitions per topic.</dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/index-all.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/index-all.html
index dc40e3c..fa0496b 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/index-all.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/index-all.html
@@ -2190,7 +2190,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/v1/PersistentTopics.html#createSubscription-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-boolean-org.apache.pulsar.client.impl.MessageIdImpl-boolean-">createSubscription(AsyncResponse, String, String, String, String, String, boolean, MessageIdImpl, boolean)</a></span> - Method in class org.apache.pulsar.broker.admin.v1.<a href="org/apache/pu [...]
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/v2/PersistentTopics.html#createSubscription-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-java.lang.String-boolean-org.apache.pulsar.client.impl.MessageIdImpl-boolean-">createSubscription(AsyncResponse, String, String, String, String, boolean, MessageIdImpl, boolean)</a></span> - Method in class org.apache.pulsar.broker.admin.v2.<a href="org/apache/pulsar/broker/admin/v2/Pers [...]
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/v2/PersistentTopics.html#createSubscription-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-java.lang.String-boolean-org.apache.pulsar.client.impl.ResetCursorData-boolean-">createSubscription(AsyncResponse, String, String, String, String, boolean, ResetCursorData, boolean)</a></span> - Method in class org.apache.pulsar.broker.admin.v2.<a href="org/apache/pulsar/broker/admin/v2/ [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/service/nonpersistent/NonPersistentTopic.html#createSubscription-java.lang.String-org.apache.pulsar.common.api.proto.CommandSubscribe.InitialPosition-boolean-">createSubscription(String, CommandSubscribe.InitialPosition, boolean)</a></span> - Method in class org.apache.pulsar.broker.service.nonpersistent.<a href="org/apache/pulsar/broker/service/nonpersistent/NonPersistentTopic.html" title="class in org.apache.pulsar.brok [...]
 <dd>&nbsp;</dd>
@@ -5077,7 +5077,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/v2/Namespaces.html#getRetention-java.lang.String-java.lang.String-">getRetention(String, String)</a></span> - Method in class org.apache.pulsar.broker.admin.v2.<a href="org/apache/pulsar/broker/admin/v2/Namespaces.html" title="class in org.apache.pulsar.broker.admin.v2">Namespaces</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/v2/PersistentTopics.html#getRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-boolean-">getRetention(AsyncResponse, String, String, String, boolean, boolean)</a></span> - Method in class org.apache.pulsar.broker.admin.v2.<a href="org/apache/pulsar/broker/admin/v2/PersistentTopics.html" title="class in org.apache.pulsar.broker.admin.v2">PersistentTopics</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/v2/PersistentTopics.html#getRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-boolean-boolean-">getRetention(AsyncResponse, String, String, String, boolean, boolean, boolean)</a></span> - Method in class org.apache.pulsar.broker.admin.v2.<a href="org/apache/pulsar/broker/admin/v2/PersistentTopics.html" title="class in org.apache.pulsar.broker.admin.v2">Persisten [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/resourcegroup/ResourceGroupService.html#getRgLocalUsageByteCount-java.lang.String-java.lang.String-">getRgLocalUsageByteCount(String, String)</a></span> - Static method in class org.apache.pulsar.broker.resourcegroup.<a href="org/apache/pulsar/broker/resourcegroup/ResourceGroupService.html" title="class in org.apache.pulsar.broker.resourcegroup">ResourceGroupService</a></dt>
 <dd>&nbsp;</dd>
@@ -5563,15 +5563,25 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-">getTopicPolicies(TopicName)</a></span> - Method in class org.apache.pulsar.broker.service.<a href="org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html" title="class in org.apache.pulsar.broker.service">SystemTopicBasedTopicPoliciesService</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">getTopicPolicies(TopicName, boolean)</a></span> - Method in class org.apache.pulsar.broker.service.<a href="org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html" title="class in org.apache.pulsar.broker.service">SystemTopicBasedTopicPoliciesService</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-">getTopicPolicies(TopicName)</a></span> - Method in interface org.apache.pulsar.broker.service.<a href="org/apache/pulsar/broker/service/TopicPoliciesService.html" title="interface in org.apache.pulsar.broker.service">TopicPoliciesService</a></dt>
 <dd>
 <div class="block">Get policies for a topic async.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">getTopicPolicies(TopicName, boolean)</a></span> - Method in interface org.apache.pulsar.broker.service.<a href="org/apache/pulsar/broker/service/TopicPoliciesService.html" title="interface in org.apache.pulsar.broker.service">TopicPoliciesService</a></dt>
+<dd>
+<div class="block">Get global policies for a topic async.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-">getTopicPolicies(TopicName)</a></span> - Method in class org.apache.pulsar.broker.service.<a href="org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html" title="class in org.apache.pulsar.broker.service">TopicPoliciesService.TopicPoliciesServiceDisabled</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">getTopicPolicies(TopicName, boolean)</a></span> - Method in class org.apache.pulsar.broker.service.<a href="org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html" title="class in org.apache.pulsar.broker.service">TopicPoliciesService.TopicPoliciesServiceDisab [...]
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/AdminResource.html#getTopicPoliciesAsyncWithRetry-org.apache.pulsar.common.naming.TopicName-">getTopicPoliciesAsyncWithRetry(TopicName)</a></span> - Method in class org.apache.pulsar.broker.admin.<a href="org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPoliciesAsyncWithRetry-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.client.impl.Backoff-java.util.concurrent.ScheduledExecutorService-">getTopicPoliciesAsyncWithRetry(TopicName, Backoff, ScheduledExecutorService)</a></span> - Method in interface org.apache.pulsar.broker.service.<a href="org/apache/pulsar/broker/service/TopicPoliciesService.html" title="interface in  [...]
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/AdminResource.html#getTopicPoliciesAsyncWithRetry-org.apache.pulsar.common.naming.TopicName-boolean-">getTopicPoliciesAsyncWithRetry(TopicName, boolean)</a></span> - Method in class org.apache.pulsar.broker.admin.<a href="org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPoliciesAsyncWithRetry-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.client.impl.Backoff-java.util.concurrent.ScheduledExecutorService-boolean-">getTopicPoliciesAsyncWithRetry(TopicName, Backoff, ScheduledExecutorService, boolean)</a></span> - Method in interface org.apache.pulsar.broker.service.<a href="org/apache/pulsar/broker/service/TopicPoliciesService.html" tit [...]
 <dd>
 <div class="block">When getting TopicPolicies, if the initialization has not been completed,
  we will go back off and try again until time out.</div>
@@ -6827,7 +6837,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/impl/NamespacesBase.html#internalGetRetention--">internalGetRetention()</a></span> - Method in class org.apache.pulsar.broker.admin.impl.<a href="org/apache/pulsar/broker/admin/impl/NamespacesBase.html" title="class in org.apache.pulsar.broker.admin.impl">NamespacesBase</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#internalGetRetention-boolean-">internalGetRetention(boolean)</a></span> - Method in class org.apache.pulsar.broker.admin.impl.<a href="org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html" title="class in org.apache.pulsar.broker.admin.impl">PersistentTopicsBase</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#internalGetRetention-boolean-boolean-">internalGetRetention(boolean, boolean)</a></span> - Method in class org.apache.pulsar.broker.admin.impl.<a href="org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html" title="class in org.apache.pulsar.broker.admin.impl">PersistentTopicsBase</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/impl/NamespacesBase.html#internalGetSchemaAutoUpdateCompatibilityStrategy--">internalGetSchemaAutoUpdateCompatibilityStrategy()</a></span> - Method in class org.apache.pulsar.broker.admin.impl.<a href="org/apache/pulsar/broker/admin/impl/NamespacesBase.html" title="class in org.apache.pulsar.broker.admin.impl">NamespacesBase</a></dt>
 <dd>
@@ -6933,7 +6943,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/impl/NamespacesBase.html#internalRemoveReplicatorDispatchRate--">internalRemoveReplicatorDispatchRate()</a></span> - Method in class org.apache.pulsar.broker.admin.impl.<a href="org/apache/pulsar/broker/admin/impl/NamespacesBase.html" title="class in org.apache.pulsar.broker.admin.impl">NamespacesBase</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#internalRemoveRetention--">internalRemoveRetention()</a></span> - Method in class org.apache.pulsar.broker.admin.impl.<a href="org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html" title="class in org.apache.pulsar.broker.admin.impl">PersistentTopicsBase</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#internalRemoveRetention-boolean-">internalRemoveRetention(boolean)</a></span> - Method in class org.apache.pulsar.broker.admin.impl.<a href="org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html" title="class in org.apache.pulsar.broker.admin.impl">PersistentTopicsBase</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#internalRemoveSubscribeRate--">internalRemoveSubscribeRate()</a></span> - Method in class org.apache.pulsar.broker.admin.impl.<a href="org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html" title="class in org.apache.pulsar.broker.admin.impl">PersistentTopicsBase</a></dt>
 <dd>&nbsp;</dd>
@@ -7055,7 +7065,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/impl/NamespacesBase.html#internalSetRetention-org.apache.pulsar.common.policies.data.RetentionPolicies-">internalSetRetention(RetentionPolicies)</a></span> - Method in class org.apache.pulsar.broker.admin.impl.<a href="org/apache/pulsar/broker/admin/impl/NamespacesBase.html" title="class in org.apache.pulsar.broker.admin.impl">NamespacesBase</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#internalSetRetention-org.apache.pulsar.common.policies.data.RetentionPolicies-">internalSetRetention(RetentionPolicies)</a></span> - Method in class org.apache.pulsar.broker.admin.impl.<a href="org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html" title="class in org.apache.pulsar.broker.admin.impl">PersistentTopicsBase</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#internalSetRetention-org.apache.pulsar.common.policies.data.RetentionPolicies-boolean-">internalSetRetention(RetentionPolicies, boolean)</a></span> - Method in class org.apache.pulsar.broker.admin.impl.<a href="org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html" title="class in org.apache.pulsar.broker.admin.impl">PersistentTopicsBase</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/impl/NamespacesBase.html#internalSetSchemaAutoUpdateCompatibilityStrategy-org.apache.pulsar.common.policies.data.SchemaAutoUpdateCompatibilityStrategy-">internalSetSchemaAutoUpdateCompatibilityStrategy(SchemaAutoUpdateCompatibilityStrategy)</a></span> - Method in class org.apache.pulsar.broker.admin.impl.<a href="org/apache/pulsar/broker/admin/impl/NamespacesBase.html" title="class in org.apache.pulsar.broker.admin. [...]
 <dd>
@@ -10209,7 +10219,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/v2/Namespaces.html#removeRetention-java.lang.String-java.lang.String-org.apache.pulsar.common.policies.data.RetentionPolicies-">removeRetention(String, String, RetentionPolicies)</a></span> - Method in class org.apache.pulsar.broker.admin.v2.<a href="org/apache/pulsar/broker/admin/v2/Namespaces.html" title="class in org.apache.pulsar.broker.admin.v2">Namespaces</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/v2/PersistentTopics.html#removeRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-">removeRetention(AsyncResponse, String, String, String, boolean)</a></span> - Method in class org.apache.pulsar.broker.admin.v2.<a href="org/apache/pulsar/broker/admin/v2/PersistentTopics.html" title="class in org.apache.pulsar.broker.admin.v2">PersistentTopics</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/v2/PersistentTopics.html#removeRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-boolean-">removeRetention(AsyncResponse, String, String, String, boolean, boolean)</a></span> - Method in class org.apache.pulsar.broker.admin.v2.<a href="org/apache/pulsar/broker/admin/v2/PersistentTopics.html" title="class in org.apache.pulsar.broker.admin.v2">PersistentTopics</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/stats/prometheus/metrics/PrometheusStatsLogger.html#removeScope-java.lang.String-org.apache.bookkeeper.stats.StatsLogger-">removeScope(String, StatsLogger)</a></span> - Method in class org.apache.pulsar.broker.stats.prometheus.metrics.<a href="org/apache/pulsar/broker/stats/prometheus/metrics/PrometheusStatsLogger.html" title="class in org.apache.pulsar.broker.stats.prometheus.metrics">PrometheusStatsLogger</a></dt>
 <dd>&nbsp;</dd>
@@ -11375,7 +11385,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/v2/Namespaces.html#setRetention-java.lang.String-java.lang.String-org.apache.pulsar.common.policies.data.RetentionPolicies-">setRetention(String, String, RetentionPolicies)</a></span> - Method in class org.apache.pulsar.broker.admin.v2.<a href="org/apache/pulsar/broker/admin/v2/Namespaces.html" title="class in org.apache.pulsar.broker.admin.v2">Namespaces</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/v2/PersistentTopics.html#setRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-org.apache.pulsar.common.policies.data.RetentionPolicies-">setRetention(AsyncResponse, String, String, String, boolean, RetentionPolicies)</a></span> - Method in class org.apache.pulsar.broker.admin.v2.<a href="org/apache/pulsar/broker/admin/v2/PersistentTopics.html" title="class in or [...]
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/admin/v2/PersistentTopics.html#setRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-boolean-org.apache.pulsar.common.policies.data.RetentionPolicies-">setRetention(AsyncResponse, String, String, String, boolean, boolean, RetentionPolicies)</a></span> - Method in class org.apache.pulsar.broker.admin.v2.<a href="org/apache/pulsar/broker/admin/v2/PersistentTopics.html" t [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/broker/service/schema/proto/SchemaRegistryFormat.SchemaInfo.Builder.html#setSchema-com.google.protobuf.ByteString-">setSchema(ByteString)</a></span> - Method in class org.apache.pulsar.broker.service.schema.proto.<a href="org/apache/pulsar/broker/service/schema/proto/SchemaRegistryFormat.SchemaInfo.Builder.html" title="class in org.apache.pulsar.broker.service.schema.proto">SchemaRegistryFormat.SchemaInfo.Builder</a></dt>
 <dd>
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/AdminResource.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/AdminResource.html
index c3d12ca..4b4dcb5 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/AdminResource.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/AdminResource.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":9,"i11":9,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":9,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":42,"i39":10,"i40":10,"i41":10,"i42":10,"i43":42,"i44":10,"i45":10,"i46":10,"i47":42};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":9,"i11":9,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":9,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":42,"i40":10,"i41":10,"i42":10,"i43":10,"i44":42,"i45":10,"i46":10,"i47":10,"i48":42};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -285,64 +285,69 @@ extends <a href="../../../../../org/apache/pulsar/broker/web/PulsarWebResource.h
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#getTopicPoliciesAsyncWithRetry-org.apache.pulsar.common.naming.TopicName-">getTopicPoliciesAsyncWithRetry</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName)</code>&nbsp;</td>
 </tr>
 <tr id="i21" class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.pulsar.common.policies.data.TopicPolicies&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#getTopicPoliciesAsyncWithRetry-org.apache.pulsar.common.naming.TopicName-boolean-">getTopicPoliciesAsyncWithRetry</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
+                              boolean&nbsp;isGlobal)</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#internalCreatePartitionedTopic-javax.ws.rs.container.AsyncResponse-int-boolean-">internalCreatePartitionedTopic</a></span>(javax.ws.rs.container.AsyncResponse&nbsp;asyncResponse,
                               int&nbsp;numPartitions,
                               boolean&nbsp;createLocalTopicOnly)</code>&nbsp;</td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#isLeaderBroker--">isLeaderBroker</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#isManagedLedgerNotFoundException-java.lang.Exception-">isManagedLedgerNotFoundException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)</code>&nbsp;</td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#isNamespaceReplicated-org.apache.pulsar.common.naming.NamespaceName-">isNamespaceReplicated</a></span>(org.apache.pulsar.common.naming.NamespaceName&nbsp;namespaceName)</code>&nbsp;</td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code>static com.fasterxml.jackson.databind.ObjectMapper</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#jsonMapper--">jsonMapper</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code>protected org.apache.pulsar.common.policies.data.BacklogQuota</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#namespaceBacklogQuota-org.apache.pulsar.common.naming.NamespaceName-org.apache.pulsar.common.policies.data.BacklogQuota.BacklogQuotaType-">namespaceBacklogQuota</a></span>(org.apache.pulsar.common.naming.NamespaceName&nbsp;namespace,
                      org.apache.pulsar.common.policies.data.BacklogQuota.BacklogQuotaType&nbsp;backlogQuotaType)</code>&nbsp;</td>
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code>protected org.apache.pulsar.common.policies.data.impl.DispatchRateImpl</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#replicatorDispatchRate--">replicatorDispatchRate</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i28" class="altColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#resumeAsyncResponseExceptionally-javax.ws.rs.container.AsyncResponse-java.lang.Throwable-">resumeAsyncResponseExceptionally</a></span>(javax.ws.rs.container.AsyncResponse&nbsp;asyncResponse,
                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;throwable)</code>&nbsp;</td>
 </tr>
-<tr id="i29" class="rowColor">
+<tr id="i30" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#setServletContext-javax.servlet.ServletContext-">setServletContext</a></span>(javax.servlet.ServletContext&nbsp;servletContext)</code>&nbsp;</td>
 </tr>
-<tr id="i30" class="altColor">
+<tr id="i31" class="rowColor">
 <td class="colFirst"><code>protected org.apache.pulsar.common.policies.data.SubscribeRate</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#subscribeRate--">subscribeRate</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i31" class="rowColor">
+<tr id="i32" class="altColor">
 <td class="colFirst"><code>protected org.apache.pulsar.common.policies.data.impl.DispatchRateImpl</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#subscriptionDispatchRate--">subscriptionDispatchRate</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i32" class="altColor">
+<tr id="i33" class="rowColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#tryCreatePartitionsAsync-int-">tryCreatePartitionsAsync</a></span>(int&nbsp;numPartitions)</code>&nbsp;</td>
 </tr>
-<tr id="i33" class="rowColor">
+<tr id="i34" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#validateAdminAccessForTenant-java.lang.String-">validateAdminAccessForTenant</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;property)</code>
 <div class="block">Checks that the http client role has admin access to the specified tenant.</div>
 </td>
 </tr>
-<tr id="i34" class="altColor">
+<tr id="i35" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#validateBundleOwnership-java.lang.String-java.lang.String-java.lang.String-boolean-boolean-org.apache.pulsar.common.naming.NamespaceBundle-">validateBundleOwnership</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;property,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;cluster,
@@ -351,20 +356,20 @@ extends <a href="../../../../../org/apache/pulsar/broker/web/PulsarWebResource.h
                        boolean&nbsp;readOnly,
                        <a href="../../../../../org/apache/pulsar/common/naming/NamespaceBundle.html" title="class in org.apache.pulsar.common.naming">NamespaceBundle</a>&nbsp;bundle)</code>&nbsp;</td>
 </tr>
-<tr id="i35" class="rowColor">
+<tr id="i36" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#validateClusterExists-java.lang.String-">validateClusterExists</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;cluster)</code>&nbsp;</td>
 </tr>
-<tr id="i36" class="altColor">
+<tr id="i37" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#validateGlobalNamespaceOwnership--">validateGlobalNamespaceOwnership</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i37" class="rowColor">
+<tr id="i38" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#validateNamespaceName-java.lang.String-java.lang.String-">validateNamespaceName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;property,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</code>&nbsp;</td>
 </tr>
-<tr id="i38" class="altColor">
+<tr id="i39" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#validateNamespaceName-java.lang.String-java.lang.String-java.lang.String-">validateNamespaceName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;property,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;cluster,
@@ -372,29 +377,29 @@ extends <a href="../../../../../org/apache/pulsar/broker/web/PulsarWebResource.h
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </td>
 </tr>
-<tr id="i39" class="rowColor">
+<tr id="i40" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#validatePartitionedTopicMetadata-java.lang.String-java.lang.String-java.lang.String-">validatePartitionedTopicMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tenant,
                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedTopic)</code>&nbsp;</td>
 </tr>
-<tr id="i40" class="altColor">
+<tr id="i41" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#validatePartitionedTopicName-java.lang.String-java.lang.String-java.lang.String-">validatePartitionedTopicName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tenant,
                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedTopic)</code>&nbsp;</td>
 </tr>
-<tr id="i41" class="rowColor">
+<tr id="i42" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#validatePersistencePolicies-org.apache.pulsar.common.policies.data.PersistencePolicies-">validatePersistencePolicies</a></span>(org.apache.pulsar.common.policies.data.PersistencePolicies&nbsp;persistence)</code>&nbsp;</td>
 </tr>
-<tr id="i42" class="altColor">
+<tr id="i43" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#validatePersistentTopicName-java.lang.String-java.lang.String-java.lang.String-">validatePersistentTopicName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;property,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedTopic)</code>&nbsp;</td>
 </tr>
-<tr id="i43" class="rowColor">
+<tr id="i44" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#validatePersistentTopicName-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">validatePersistentTopicName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;property,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;cluster,
@@ -403,26 +408,26 @@ extends <a href="../../../../../org/apache/pulsar/broker/web/PulsarWebResource.h
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </td>
 </tr>
-<tr id="i44" class="altColor">
+<tr id="i45" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#validatePoliciesReadOnlyAccess--">validatePoliciesReadOnlyAccess</a></span>()</code>
 <div class="block">Checks whether the broker is allowed to do read-write operations based on the existence of a node in
  configuration metadata-store.</div>
 </td>
 </tr>
-<tr id="i45" class="rowColor">
+<tr id="i46" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#validateSuperUserAccess--">validateSuperUserAccess</a></span>()</code>
 <div class="block">Checks whether the user has Pulsar Super-User access to the system.</div>
 </td>
 </tr>
-<tr id="i46" class="altColor">
+<tr id="i47" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#validateTopicName-java.lang.String-java.lang.String-java.lang.String-">validateTopicName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;property,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedTopic)</code>&nbsp;</td>
 </tr>
-<tr id="i47" class="rowColor">
+<tr id="i48" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#validateTopicName-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">validateTopicName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;property,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;cluster,
@@ -752,6 +757,16 @@ protected&nbsp;void&nbsp;validatePersistentTopicName(<a href="https://docs.oracl
 <pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.pulsar.common.policies.data.TopicPolicies&gt;&gt;&nbsp;getTopicPoliciesAsyncWithRetry(org.apache.pulsar.common.naming.Topic [...]
 </li>
 </ul>
+<a name="getTopicPoliciesAsyncWithRetry-org.apache.pulsar.common.naming.TopicName-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTopicPoliciesAsyncWithRetry</h4>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.pulsar.common.policies.data.TopicPolicies&gt;&gt;&nbsp;getTopicPoliciesAsyncWithRetry(org.apache.pulsar.common.naming.Topic [...]
+                                                                                                                           boolean&nbsp;isGlobal)</pre>
+</li>
+</ul>
 <a name="checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">
 <!--   -->
 </a>
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/BrokerStatsBase.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/BrokerStatsBase.html
index f596ea4..816e324 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/BrokerStatsBase.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/BrokerStatsBase.html
@@ -216,7 +216,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/FunctionsBase.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/FunctionsBase.html
index 6f0df5e..0ae56c3 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/FunctionsBase.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/FunctionsBase.html
@@ -344,7 +344,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/NamespacesBase.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/NamespacesBase.html
index 54bb9f9..bf262d7 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/NamespacesBase.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/NamespacesBase.html
@@ -699,7 +699,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/PackagesBase.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/PackagesBase.html
index 1adbee3..1ae452e 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/PackagesBase.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/PackagesBase.html
@@ -250,7 +250,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html
index 17051c0..b49838b 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html
@@ -434,7 +434,8 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 </tr>
 <tr id="i49" class="rowColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.pulsar.common.policies.data.RetentionPolicies&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#internalGetRetention-boolean-">internalGetRetention</a></span>(boolean&nbsp;applied)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#internalGetRetention-boolean-boolean-">internalGetRetention</a></span>(boolean&nbsp;applied,
+                    boolean&nbsp;isGlobal)</code>&nbsp;</td>
 </tr>
 <tr id="i50" class="altColor">
 <td class="colFirst"><code>protected org.apache.pulsar.common.policies.data.TopicStats</code></td>
@@ -516,7 +517,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 </tr>
 <tr id="i67" class="rowColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#internalRemoveRetention--">internalRemoveRetention</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#internalRemoveRetention-boolean-">internalRemoveRetention</a></span>(boolean&nbsp;isGlobal)</code>&nbsp;</td>
 </tr>
 <tr id="i68" class="altColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
@@ -640,7 +641,8 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 </tr>
 <tr id="i95" class="rowColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#internalSetRetention-org.apache.pulsar.common.policies.data.RetentionPolicies-">internalSetRetention</a></span>(org.apache.pulsar.common.policies.data.RetentionPolicies&nbsp;retention)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#internalSetRetention-org.apache.pulsar.common.policies.data.RetentionPolicies-boolean-">internalSetRetention</a></span>(org.apache.pulsar.common.policies.data.RetentionPolicies&nbsp;retention,
+                    boolean&nbsp;isGlobal)</code>&nbsp;</td>
 </tr>
 <tr id="i96" class="altColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
@@ -742,7 +744,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
@@ -1374,31 +1376,33 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 <pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;internalSetMessageTTL(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interf [...]
 </li>
 </ul>
-<a name="internalGetRetention-boolean-">
+<a name="internalGetRetention-boolean-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>internalGetRetention</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.pulsar.common.policies.data.RetentionPolicies&gt;&nbsp;internalGetRetention(boolean&nbsp;applied)</pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.pulsar.common.policies.data.RetentionPolicies&gt;&nbsp;internalGetRetention(boolean&nbsp;applied,
+                                                                                                           boolean&nbsp;isGlobal)</pre>
 </li>
 </ul>
-<a name="internalSetRetention-org.apache.pulsar.common.policies.data.RetentionPolicies-">
+<a name="internalSetRetention-org.apache.pulsar.common.policies.data.RetentionPolicies-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>internalSetRetention</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;internalSetRetention(org.apache.pulsar.common.policies.data.RetentionPolicies&nbsp;retention)</pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;internalSetRetention(org.apache.pulsar.common.policies.data.RetentionPolicies&nbsp;retention,
+                                                       boolean&nbsp;isGlobal)</pre>
 </li>
 </ul>
-<a name="internalRemoveRetention--">
+<a name="internalRemoveRetention-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>internalRemoveRetention</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;internalRemoveRetention()</pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;internalRemoveRetention(boolean&nbsp;isGlobal)</pre>
 </li>
 </ul>
 <a name="internalGetPersistence-boolean-">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/ResourceGroupsBase.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/ResourceGroupsBase.html
index 792e9e2..5bece8c 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/ResourceGroupsBase.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/ResourceGroupsBase.html
@@ -219,7 +219,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/ResourceQuotasBase.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/ResourceQuotasBase.html
index a594216..0d998f7 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/ResourceQuotasBase.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/ResourceQuotasBase.html
@@ -221,7 +221,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/Namespace
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/SchemasResourceBase.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/SchemasResourceBase.html
index 79b05c1..3463f3e 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/SchemasResourceBase.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/SchemasResourceBase.html
@@ -236,7 +236,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/SinksBase.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/SinksBase.html
index e8ec62b..6e3e449 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/SinksBase.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/SinksBase.html
@@ -290,7 +290,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/SourcesBase.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/SourcesBase.html
index 7e1de08..d058024 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/SourcesBase.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/SourcesBase.html
@@ -290,7 +290,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/TransactionsBase.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/TransactionsBase.html
index d483c40..ef82b0a 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/TransactionsBase.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/impl/TransactionsBase.html
@@ -255,7 +255,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/BrokerStats.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/BrokerStats.html
index 708a6fe..0596fbf 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/BrokerStats.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/BrokerStats.html
@@ -204,7 +204,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/BrokerSta
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/Functions.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/Functions.html
index 37d6f3a..bd6b75f 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/Functions.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/Functions.html
@@ -186,7 +186,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/v2/Functions.h
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/Namespaces.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/Namespaces.html
index 2773854..eeb7c5e 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/Namespaces.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/Namespaces.html
@@ -727,7 +727,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/Namespace
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/NonPersistentTopics.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/NonPersistentTopics.html
index b37b556..0618a29 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/NonPersistentTopics.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/NonPersistentTopics.html
@@ -263,14 +263,14 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/v1/PersistentT
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.impl.<a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html" title="class in org.apache.pulsar.broker.admin.impl">PersistentTopicsBase</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#getPartitionedTopicMetadata-org.apache.pulsar.broker.PulsarService-java.lang.String-java.lang.String-org.apache.pulsar.broker.authentication.AuthenticationDataSource-org.apache.pulsar.common.naming.TopicName-">getPartitionedTopicMetadata</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#handleTopicPolicyException-java.lang.String-java.lang.Throwable-j [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#getPartitionedTopicMetadata-org.apache.pulsar.broker.PulsarService-java.lang.String-java.lang.String-org.apache.pulsar.broker.authentication.AuthenticationDataSource-org.apache.pulsar.common.naming.TopicName-">getPartitionedTopicMetadata</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#handleTopicPolicyException-java.lang.String-java.lang.Throwable-j [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.admin.AdminResource">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/PersistentTopics.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/PersistentTopics.html
index 97b683e..35abc9a 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/PersistentTopics.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/PersistentTopics.html
@@ -564,14 +564,14 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/Persisten
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.impl.<a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html" title="class in org.apache.pulsar.broker.admin.impl">PersistentTopicsBase</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#getPartitionedTopicMetadata-org.apache.pulsar.broker.PulsarService-java.lang.String-java.lang.String-org.apache.pulsar.broker.authentication.AuthenticationDataSource-org.apache.pulsar.common.naming.TopicName-">getPartitionedTopicMetadata</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#handleTopicPolicyException-java.lang.String-java.lang.Throwable-j [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#getPartitionedTopicMetadata-org.apache.pulsar.broker.PulsarService-java.lang.String-java.lang.String-org.apache.pulsar.broker.authentication.AuthenticationDataSource-org.apache.pulsar.common.naming.TopicName-">getPartitionedTopicMetadata</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#handleTopicPolicyException-java.lang.String-java.lang.Throwable-j [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.admin.AdminResource">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/ResourceQuotas.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/ResourceQuotas.html
index 3058a5e..126b528 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/ResourceQuotas.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/ResourceQuotas.html
@@ -233,7 +233,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/ResourceQ
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/SchemasResource.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/SchemasResource.html
index 5a9a8db..c78eefb 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/SchemasResource.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v1/SchemasResource.html
@@ -264,7 +264,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/SchemasRe
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Bookies.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Bookies.html
index 0a9948b..7730b6f 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Bookies.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Bookies.html
@@ -211,7 +211,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/BrokerStats.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/BrokerStats.html
index 10c00fa..ce1c8a6 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/BrokerStats.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/BrokerStats.html
@@ -207,7 +207,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/BrokerSta
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Functions.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Functions.html
index e3d3751..daecb93 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Functions.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Functions.html
@@ -296,7 +296,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Namespaces.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Namespaces.html
index 0227feb..dc7b8a0 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Namespaces.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Namespaces.html
@@ -969,7 +969,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/Namespace
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/NonPersistentTopics.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/NonPersistentTopics.html
index a4d813c..efe9a81 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/NonPersistentTopics.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/NonPersistentTopics.html
@@ -277,21 +277,21 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentT
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.v2.<a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentTopics.html" title="class in org.apache.pulsar.broker.admin.v2">PersistentTopics</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentTopics.html#compact-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-">compact</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentTopics.html#compactionStatus-java.lang.String-java.lang.String-java.lang.String-boolean-">compactionStatus</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentTopics.html#createMissedPartiti [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentTopics.html#compact-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-">compact</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentTopics.html#compactionStatus-java.lang.String-java.lang.String-java.lang.String-boolean-">compactionStatus</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentTopics.html#createMissedPartiti [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.admin.impl.PersistentTopicsBase">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.impl.<a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html" title="class in org.apache.pulsar.broker.admin.impl">PersistentTopicsBase</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#getPartitionedTopicMetadata-org.apache.pulsar.broker.PulsarService-java.lang.String-java.lang.String-org.apache.pulsar.broker.authentication.AuthenticationDataSource-org.apache.pulsar.common.naming.TopicName-">getPartitionedTopicMetadata</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#handleTopicPolicyException-java.lang.String-java.lang.Throwable-j [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#getPartitionedTopicMetadata-org.apache.pulsar.broker.PulsarService-java.lang.String-java.lang.String-org.apache.pulsar.broker.authentication.AuthenticationDataSource-org.apache.pulsar.common.naming.TopicName-">getPartitionedTopicMetadata</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#handleTopicPolicyException-java.lang.String-java.lang.Throwable-j [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.admin.AdminResource">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/PersistentTopics.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/PersistentTopics.html
index 226305b..1a4a4bf 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/PersistentTopics.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/PersistentTopics.html
@@ -229,13 +229,13 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/Persisten
 </tr>
 <tr id="i5" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentTopics.html#createSubscription-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-java.lang.String-boolean-org.apache.pulsar.client.impl.MessageIdImpl-boolean-">createSubscription</a></span>(javax.ws.rs.container.AsyncResponse&nbsp;asyncResponse,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentTopics.html#createSubscription-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-java.lang.String-boolean-org.apache.pulsar.client.impl.ResetCursorData-boolean-">createSubscription</a></span>(javax.ws.rs.container.AsyncResponse&nbsp;asyncResponse,
                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tenant,
                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;topic,
                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedSubName,
                   boolean&nbsp;authoritative,
-                  org.apache.pulsar.client.impl.MessageIdImpl&nbsp;messageId,
+                  org.apache.pulsar.client.impl.ResetCursorData&nbsp;resetCursorData,
                   boolean&nbsp;replicated)</code>&nbsp;</td>
 </tr>
 <tr id="i6" class="altColor">
@@ -635,10 +635,11 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/Persisten
 </tr>
 <tr id="i52" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentTopics.html#getRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-boolean-">getRetention</a></span>(javax.ws.rs.container.AsyncResponse&nbsp;asyncResponse,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentTopics.html#getRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-boolean-boolean-">getRetention</a></span>(javax.ws.rs.container.AsyncResponse&nbsp;asyncResponse,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tenant,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedTopic,
+            boolean&nbsp;isGlobal,
             boolean&nbsp;applied,
             boolean&nbsp;authoritative)</code>&nbsp;</td>
 </tr>
@@ -834,10 +835,11 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/Persisten
 </tr>
 <tr id="i76" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentTopics.html#removeRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-">removeRetention</a></span>(javax.ws.rs.container.AsyncResponse&nbsp;asyncResponse,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentTopics.html#removeRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-boolean-">removeRetention</a></span>(javax.ws.rs.container.AsyncResponse&nbsp;asyncResponse,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tenant,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedTopic,
+               boolean&nbsp;isGlobal,
                boolean&nbsp;authoritative)</code>&nbsp;</td>
 </tr>
 <tr id="i77" class="rowColor">
@@ -1085,11 +1087,12 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/Persisten
 </tr>
 <tr id="i104" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentTopics.html#setRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-org.apache.pulsar.common.policies.data.RetentionPolicies-">setRetention</a></span>(javax.ws.rs.container.AsyncResponse&nbsp;asyncResponse,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/admin/v2/PersistentTopics.html#setRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-boolean-org.apache.pulsar.common.policies.data.RetentionPolicies-">setRetention</a></span>(javax.ws.rs.container.AsyncResponse&nbsp;asyncResponse,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tenant,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedTopic,
             boolean&nbsp;authoritative,
+            boolean&nbsp;isGlobal,
             org.apache.pulsar.common.policies.data.RetentionPolicies&nbsp;retention)</code>&nbsp;</td>
 </tr>
 <tr id="i105" class="rowColor">
@@ -1194,14 +1197,14 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/Persisten
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.impl.<a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html" title="class in org.apache.pulsar.broker.admin.impl">PersistentTopicsBase</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#getPartitionedTopicMetadata-org.apache.pulsar.broker.PulsarService-java.lang.String-java.lang.String-org.apache.pulsar.broker.authentication.AuthenticationDataSource-org.apache.pulsar.common.naming.TopicName-">getPartitionedTopicMetadata</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#handleTopicPolicyException-java.lang.String-java.lang.Throwable-j [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#getPartitionedTopicMetadata-org.apache.pulsar.broker.PulsarService-java.lang.String-java.lang.String-org.apache.pulsar.broker.authentication.AuthenticationDataSource-org.apache.pulsar.common.naming.TopicName-">getPartitionedTopicMetadata</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#handleTopicPolicyException-java.lang.String-java.lang.Throwable-j [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.admin.AdminResource">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
@@ -2156,7 +2159,7 @@ public&nbsp;void&nbsp;expireMessagesForAllSubscriptions(@Suspended
                                                                                                                                                         boolean&nbsp;authoritative)</pre>
 </li>
 </ul>
-<a name="createSubscription-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-java.lang.String-boolean-org.apache.pulsar.client.impl.MessageIdImpl-boolean-">
+<a name="createSubscription-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-java.lang.String-boolean-org.apache.pulsar.client.impl.ResetCursorData-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -2176,7 +2179,7 @@ public&nbsp;void&nbsp;createSubscription(@Suspended
                                                                                                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedSubName,
                                                                                                                   @QueryParam(value="authoritative") @DefaultValue(value="false")
                                                                                                                   boolean&nbsp;authoritative,
-                                                                                                                  org.apache.pulsar.client.impl.MessageIdImpl&nbsp;messageId,
+                                                                                                                  org.apache.pulsar.client.impl.ResetCursorData&nbsp;resetCursorData,
                                                                                                                   @QueryParam(value="replicated")
                                                                                                                   boolean&nbsp;replicated)</pre>
 </li>
@@ -2616,7 +2619,7 @@ public&nbsp;void&nbsp;removeDeduplication(@Suspended
                                                                                                            boolean&nbsp;authoritative)</pre>
 </li>
 </ul>
-<a name="getRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-boolean-">
+<a name="getRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-boolean-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -2632,13 +2635,15 @@ public&nbsp;void&nbsp;getRetention(@Suspended
                                                                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                                                                                       @PathParam(value="topic") @Encoded
                                                                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedTopic,
+                                                                                      @QueryParam(value="isGlobal") @DefaultValue(value="false")
+                                                                                      boolean&nbsp;isGlobal,
                                                                                       @QueryParam(value="applied")
                                                                                       boolean&nbsp;applied,
                                                                                       @QueryParam(value="authoritative") @DefaultValue(value="false")
                                                                                       boolean&nbsp;authoritative)</pre>
 </li>
 </ul>
-<a name="setRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-org.apache.pulsar.common.policies.data.RetentionPolicies-">
+<a name="setRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-boolean-org.apache.pulsar.common.policies.data.RetentionPolicies-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -2656,10 +2661,12 @@ public&nbsp;void&nbsp;setRetention(@Suspended
                                                                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedTopic,
                                                                                        @QueryParam(value="authoritative") @DefaultValue(value="false")
                                                                                        boolean&nbsp;authoritative,
+                                                                                       @QueryParam(value="isGlobal") @DefaultValue(value="false")
+                                                                                       boolean&nbsp;isGlobal,
                                                                                        org.apache.pulsar.common.policies.data.RetentionPolicies&nbsp;retention)</pre>
 </li>
 </ul>
-<a name="removeRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-">
+<a name="removeRetention-javax.ws.rs.container.AsyncResponse-java.lang.String-java.lang.String-java.lang.String-boolean-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -2675,6 +2682,8 @@ public&nbsp;void&nbsp;removeRetention(@Suspended
                                                                                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                                                                                             @PathParam(value="topic") @Encoded
                                                                                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedTopic,
+                                                                                            @QueryParam(value="isGlobal") @DefaultValue(value="false")
+                                                                                            boolean&nbsp;isGlobal,
                                                                                             @QueryParam(value="authoritative") @DefaultValue(value="false")
                                                                                             boolean&nbsp;authoritative)</pre>
 </li>
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/ResourceGroups.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/ResourceGroups.html
index 82f9a14..d247e93 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/ResourceGroups.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/ResourceGroups.html
@@ -216,7 +216,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/ResourceG
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/ResourceQuotas.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/ResourceQuotas.html
index a867430..6183b0a 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/ResourceQuotas.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/ResourceQuotas.html
@@ -238,7 +238,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/ResourceQ
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/SchemasResource.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/SchemasResource.html
index 36bddd2..c43379f 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/SchemasResource.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/SchemasResource.html
@@ -257,7 +257,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/SchemasRe
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Worker.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Worker.html
index 869285b..0143d67 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Worker.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/Worker.html
@@ -234,7 +234,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/WorkerStats.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/WorkerStats.html
index fb56251..f4f33dc 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/WorkerStats.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v2/WorkerStats.html
@@ -197,7 +197,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Functions.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Functions.html
index 1ee7a1e..1c29e9e 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Functions.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Functions.html
@@ -186,7 +186,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/Functions
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Packages.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Packages.html
index 6bc4041..dc9d2da 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Packages.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Packages.html
@@ -261,7 +261,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/PackagesB
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Sink.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Sink.html
index 149dc50..2fcf9d8 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Sink.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Sink.html
@@ -190,7 +190,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/SinksBase
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Sinks.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Sinks.html
index 1d6383b..92c66ff 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Sinks.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Sinks.html
@@ -186,7 +186,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/SinksBase
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Source.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Source.html
index ecdfdd9..d846c47 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Source.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Source.html
@@ -190,7 +190,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/SourcesBa
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Sources.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Sources.html
index b1a3dc2..90f6396 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Sources.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Sources.html
@@ -186,7 +186,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/SourcesBa
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Transactions.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Transactions.html
index c3cfb8f..d4087ab 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Transactions.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/admin/v3/Transactions.html
@@ -274,7 +274,7 @@ extends <a href="../../../../../../org/apache/pulsar/broker/admin/impl/Transacti
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
+<code><a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/rest/Topics.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/rest/Topics.html
index 8bcdd87..2db2a29 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/rest/Topics.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/rest/Topics.html
@@ -242,14 +242,14 @@ extends <a href="../../../../../org/apache/pulsar/broker/rest/TopicsBase.html" t
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.impl.<a href="../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html" title="class in org.apache.pulsar.broker.admin.impl">PersistentTopicsBase</a></h3>
-<code><a href="../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#getPartitionedTopicMetadata-org.apache.pulsar.broker.PulsarService-java.lang.String-java.lang.String-org.apache.pulsar.broker.authentication.AuthenticationDataSource-org.apache.pulsar.common.naming.TopicName-">getPartitionedTopicMetadata</a>, <a href="../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#handleTopicPolicyException-java.lang.String-java.lang.Throwable-javax.w [...]
+<code><a href="../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#getPartitionedTopicMetadata-org.apache.pulsar.broker.PulsarService-java.lang.String-java.lang.String-org.apache.pulsar.broker.authentication.AuthenticationDataSource-org.apache.pulsar.common.naming.TopicName-">getPartitionedTopicMetadata</a>, <a href="../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#handleTopicPolicyException-java.lang.String-java.lang.Throwable-javax.w [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.admin.AdminResource">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../../../../. [...]
+<code><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../../../../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/rest/TopicsBase.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/rest/TopicsBase.html
index 3d04a24..06d2ec3 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/rest/TopicsBase.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/rest/TopicsBase.html
@@ -215,14 +215,14 @@ extends <a href="../../../../../org/apache/pulsar/broker/admin/impl/PersistentTo
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.impl.<a href="../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html" title="class in org.apache.pulsar.broker.admin.impl">PersistentTopicsBase</a></h3>
-<code><a href="../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#getPartitionedTopicMetadata-org.apache.pulsar.broker.PulsarService-java.lang.String-java.lang.String-org.apache.pulsar.broker.authentication.AuthenticationDataSource-org.apache.pulsar.common.naming.TopicName-">getPartitionedTopicMetadata</a>, <a href="../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#handleTopicPolicyException-java.lang.String-java.lang.Throwable-javax.w [...]
+<code><a href="../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#getPartitionedTopicMetadata-org.apache.pulsar.broker.PulsarService-java.lang.String-java.lang.String-org.apache.pulsar.broker.authentication.AuthenticationDataSource-org.apache.pulsar.common.naming.TopicName-">getPartitionedTopicMetadata</a>, <a href="../../../../../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.html#handleTopicPolicyException-java.lang.String-java.lang.Throwable-javax.w [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.admin.AdminResource">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.pulsar.broker.admin.<a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html" title="class in org.apache.pulsar.broker.admin">AdminResource</a></h3>
-<code><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../../../../. [...]
+<code><a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#bookKeeper--">bookKeeper</a>, <a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkArgument-boolean-java.lang.String-">checkArgument</a>, <a href="../../../../../org/apache/pulsar/broker/admin/AdminResource.html#checkBacklogQuota-org.apache.pulsar.common.policies.data.BacklogQuota-org.apache.pulsar.common.policies.data.RetentionPolicies-">checkBacklogQuota</a>, <a href="../../../../. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.pulsar.broker.web.PulsarWebResource">
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html
index b6a481a..2024560 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -219,40 +219,47 @@ implements <a href="../../../../../org/apache/pulsar/broker/service/TopicPolicie
 </td>
 </tr>
 <tr id="i7" class="rowColor">
+<td class="colFirst"><code>org.apache.pulsar.common.policies.data.TopicPolicies</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">getTopicPolicies</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
+                boolean&nbsp;isGlobal)</code>
+<div class="block">Get global policies for a topic async.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.pulsar.common.policies.data.TopicPolicies&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html#getTopicPoliciesBypassCacheAsync-org.apache.pulsar.common.naming.TopicName-">getTopicPoliciesBypassCacheAsync</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName)</code>
 <div class="block">Get policies for a topic without cache async.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>org.apache.pulsar.common.policies.data.TopicPolicies</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html#getTopicPoliciesIfExists-org.apache.pulsar.common.naming.TopicName-">getTopicPoliciesIfExists</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName)</code>
 <div class="block">Get policies from current cache.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html#registerListener-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.broker.service.TopicPolicyListener-">registerListener</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
                 <a href="../../../../../org/apache/pulsar/broker/service/TopicPolicyListener.html" title="interface in org.apache.pulsar.broker.service">TopicPolicyListener</a>&lt;org.apache.pulsar.common.policies.data.TopicPolicies&gt;&nbsp;listener)</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html#removeOwnedNamespaceBundleAsync-org.apache.pulsar.common.naming.NamespaceBundle-">removeOwnedNamespaceBundleAsync</a></span>(<a href="../../../../../org/apache/pulsar/common/naming/NamespaceBundle.html" title="class in org.apache.pulsar.common.naming">NamespaceBundle</a>&nbsp;namespaceBundle)</code>
 <div class="block">Remove owned namespace bundle async.</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html#start--">start</a></span>()</code>
 <div class="block">Start the topic policy service.</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html#unregisterListener-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.broker.service.TopicPolicyListener-">unregisterListener</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
                   <a href="../../../../../org/apache/pulsar/broker/service/TopicPolicyListener.html" title="interface in org.apache.pulsar.broker.service">TopicPolicyListener</a>&lt;org.apache.pulsar.common.policies.data.TopicPolicies&gt;&nbsp;listener)</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html#updateTopicPoliciesAsync-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.common.policies.data.TopicPolicies-">updateTopicPoliciesAsync</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
                         org.apache.pulsar.common.policies.data.TopicPolicies&nbsp;policies)</code>
@@ -272,7 +279,7 @@ implements <a href="../../../../../org/apache/pulsar/broker/service/TopicPolicie
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.pulsar.broker.service.<a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html" title="interface in org.apache.pulsar.broker.service">TopicPoliciesService</a></h3>
-<code><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPoliciesAsyncWithRetry-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.client.impl.Backoff-java.util.concurrent.ScheduledExecutorService-">getTopicPoliciesAsyncWithRetry</a></code></li>
+<code><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPoliciesAsyncWithRetry-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.client.impl.Backoff-java.util.concurrent.ScheduledExecutorService-boolean-">getTopicPoliciesAsyncWithRetry</a></code></li>
 </ul>
 </li>
 </ul>
@@ -363,6 +370,29 @@ implements <a href="../../../../../org/apache/pulsar/broker/service/TopicPolicie
 </dl>
 </li>
 </ul>
+<a name="getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTopicPolicies</h4>
+<pre>public&nbsp;org.apache.pulsar.common.policies.data.TopicPolicies&nbsp;getTopicPolicies(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
+                                                                             boolean&nbsp;isGlobal)
+                                                                      throws <a href="../../../../../org/apache/pulsar/broker/service/BrokerServiceException.TopicPoliciesCacheNotInitException.html" title="class in org.apache.pulsar.broker.service">BrokerServiceException.TopicPoliciesCacheNotInitException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">TopicPoliciesService</a></code></span></div>
+<div class="block">Get global policies for a topic async.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">getTopicPolicies</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html" title="interface in org.apache.pulsar.broker.service">TopicPoliciesService</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>topicName</code> - topic name</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future of the topic policies</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/broker/service/BrokerServiceException.TopicPoliciesCacheNotInitException.html" title="class in org.apache.pulsar.broker.service">BrokerServiceException.TopicPoliciesCacheNotInitException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="getTopicPoliciesIfExists-org.apache.pulsar.common.naming.TopicName-">
 <!--   -->
 </a>
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html
index 59b222e..b559cad 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -204,40 +204,47 @@ implements <a href="../../../../../org/apache/pulsar/broker/service/TopicPolicie
 </td>
 </tr>
 <tr id="i3" class="rowColor">
+<td class="colFirst"><code>org.apache.pulsar.common.policies.data.TopicPolicies</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">getTopicPolicies</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
+                boolean&nbsp;isGlobal)</code>
+<div class="block">Get global policies for a topic async.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.pulsar.common.policies.data.TopicPolicies&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html#getTopicPoliciesBypassCacheAsync-org.apache.pulsar.common.naming.TopicName-">getTopicPoliciesBypassCacheAsync</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName)</code>
 <div class="block">Get policies for a topic without cache async.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>org.apache.pulsar.common.policies.data.TopicPolicies</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html#getTopicPoliciesIfExists-org.apache.pulsar.common.naming.TopicName-">getTopicPoliciesIfExists</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName)</code>
 <div class="block">Get policies from current cache.</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html#registerListener-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.broker.service.TopicPolicyListener-">registerListener</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
                 <a href="../../../../../org/apache/pulsar/broker/service/TopicPolicyListener.html" title="interface in org.apache.pulsar.broker.service">TopicPolicyListener</a>&lt;org.apache.pulsar.common.policies.data.TopicPolicies&gt;&nbsp;listener)</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html#removeOwnedNamespaceBundleAsync-org.apache.pulsar.common.naming.NamespaceBundle-">removeOwnedNamespaceBundleAsync</a></span>(<a href="../../../../../org/apache/pulsar/common/naming/NamespaceBundle.html" title="class in org.apache.pulsar.common.naming">NamespaceBundle</a>&nbsp;namespaceBundle)</code>
 <div class="block">Remove owned namespace bundle async.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html#start--">start</a></span>()</code>
 <div class="block">Start the topic policy service.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html#unregisterListener-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.broker.service.TopicPolicyListener-">unregisterListener</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
                   <a href="../../../../../org/apache/pulsar/broker/service/TopicPolicyListener.html" title="interface in org.apache.pulsar.broker.service">TopicPolicyListener</a>&lt;org.apache.pulsar.common.policies.data.TopicPolicies&gt;&nbsp;listener)</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html#updateTopicPoliciesAsync-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.common.policies.data.TopicPolicies-">updateTopicPoliciesAsync</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
                         org.apache.pulsar.common.policies.data.TopicPolicies&nbsp;policies)</code>
@@ -257,7 +264,7 @@ implements <a href="../../../../../org/apache/pulsar/broker/service/TopicPolicie
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.pulsar.broker.service.<a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html" title="interface in org.apache.pulsar.broker.service">TopicPoliciesService</a></h3>
-<code><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPoliciesAsyncWithRetry-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.client.impl.Backoff-java.util.concurrent.ScheduledExecutorService-">getTopicPoliciesAsyncWithRetry</a></code></li>
+<code><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPoliciesAsyncWithRetry-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.client.impl.Backoff-java.util.concurrent.ScheduledExecutorService-boolean-">getTopicPoliciesAsyncWithRetry</a></code></li>
 </ul>
 </li>
 </ul>
@@ -348,6 +355,29 @@ implements <a href="../../../../../org/apache/pulsar/broker/service/TopicPolicie
 </dl>
 </li>
 </ul>
+<a name="getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTopicPolicies</h4>
+<pre>public&nbsp;org.apache.pulsar.common.policies.data.TopicPolicies&nbsp;getTopicPolicies(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
+                                                                             boolean&nbsp;isGlobal)
+                                                                      throws <a href="../../../../../org/apache/pulsar/broker/service/BrokerServiceException.TopicPoliciesCacheNotInitException.html" title="class in org.apache.pulsar.broker.service">BrokerServiceException.TopicPoliciesCacheNotInitException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">TopicPoliciesService</a></code></span></div>
+<div class="block">Get global policies for a topic async.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">getTopicPolicies</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html" title="interface in org.apache.pulsar.broker.service">TopicPoliciesService</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>topicName</code> - topic name</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future of the topic policies</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/broker/service/BrokerServiceException.TopicPoliciesCacheNotInitException.html" title="class in org.apache.pulsar.broker.service">BrokerServiceException.TopicPoliciesCacheNotInitException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="getTopicPoliciesIfExists-org.apache.pulsar.common.naming.TopicName-">
 <!--   -->
 </a>
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/TopicPoliciesService.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/TopicPoliciesService.html
index 9843216..50fd8ff 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/TopicPoliciesService.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/TopicPoliciesService.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":18,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":18,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -187,49 +187,57 @@ public interface <span class="typeNameLabel">TopicPoliciesService</span></pre>
 </td>
 </tr>
 <tr id="i3" class="rowColor">
+<td class="colFirst"><code>org.apache.pulsar.common.policies.data.TopicPolicies</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">getTopicPolicies</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
+                boolean&nbsp;isGlobal)</code>
+<div class="block">Get global policies for a topic async.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.pulsar.common.policies.data.TopicPolicies&gt;&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPoliciesAsyncWithRetry-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.client.impl.Backoff-java.util.concurrent.ScheduledExecutorService-">getTopicPoliciesAsyncWithRetry</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPoliciesAsyncWithRetry-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.client.impl.Backoff-java.util.concurrent.ScheduledExecutorService-boolean-">getTopicPoliciesAsyncWithRetry</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
                               org.apache.pulsar.client.impl.Backoff&nbsp;backoff,
-                              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledExecutorService</a>&nbsp;scheduledExecutorService)</code>
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledExecutorService</a>&nbsp;scheduledExecutorService,
+                              boolean&nbsp;isGlobal)</code>
 <div class="block">When getting TopicPolicies, if the initialization has not been completed,
  we will go back off and try again until time out.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.pulsar.common.policies.data.TopicPolicies&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPoliciesBypassCacheAsync-org.apache.pulsar.common.naming.TopicName-">getTopicPoliciesBypassCacheAsync</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName)</code>
 <div class="block">Get policies for a topic without cache async.</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>org.apache.pulsar.common.policies.data.TopicPolicies</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPoliciesIfExists-org.apache.pulsar.common.naming.TopicName-">getTopicPoliciesIfExists</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName)</code>
 <div class="block">Get policies from current cache.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#registerListener-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.broker.service.TopicPolicyListener-">registerListener</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
                 <a href="../../../../../org/apache/pulsar/broker/service/TopicPolicyListener.html" title="interface in org.apache.pulsar.broker.service">TopicPolicyListener</a>&lt;org.apache.pulsar.common.policies.data.TopicPolicies&gt;&nbsp;listener)</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#removeOwnedNamespaceBundleAsync-org.apache.pulsar.common.naming.NamespaceBundle-">removeOwnedNamespaceBundleAsync</a></span>(<a href="../../../../../org/apache/pulsar/common/naming/NamespaceBundle.html" title="class in org.apache.pulsar.common.naming">NamespaceBundle</a>&nbsp;namespaceBundle)</code>
 <div class="block">Remove owned namespace bundle async.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#start--">start</a></span>()</code>
 <div class="block">Start the topic policy service.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#unregisterListener-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.broker.service.TopicPolicyListener-">unregisterListener</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
                   <a href="../../../../../org/apache/pulsar/broker/service/TopicPolicyListener.html" title="interface in org.apache.pulsar.broker.service">TopicPolicyListener</a>&lt;org.apache.pulsar.common.policies.data.TopicPolicies&gt;&nbsp;listener)</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#updateTopicPoliciesAsync-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.common.policies.data.TopicPolicies-">updateTopicPoliciesAsync</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
                         org.apache.pulsar.common.policies.data.TopicPolicies&nbsp;policies)</code>
@@ -346,7 +354,27 @@ public interface <span class="typeNameLabel">TopicPoliciesService</span></pre>
 </dl>
 </li>
 </ul>
-<a name="getTopicPoliciesAsyncWithRetry-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.client.impl.Backoff-java.util.concurrent.ScheduledExecutorService-">
+<a name="getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTopicPolicies</h4>
+<pre>org.apache.pulsar.common.policies.data.TopicPolicies&nbsp;getTopicPolicies(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
+                                                                      boolean&nbsp;isGlobal)
+                                                               throws <a href="../../../../../org/apache/pulsar/broker/service/BrokerServiceException.TopicPoliciesCacheNotInitException.html" title="class in org.apache.pulsar.broker.service">BrokerServiceException.TopicPoliciesCacheNotInitException</a></pre>
+<div class="block">Get global policies for a topic async.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>topicName</code> - topic name</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future of the topic policies</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/broker/service/BrokerServiceException.TopicPoliciesCacheNotInitException.html" title="class in org.apache.pulsar.broker.service">BrokerServiceException.TopicPoliciesCacheNotInitException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getTopicPoliciesAsyncWithRetry-org.apache.pulsar.common.naming.TopicName-org.apache.pulsar.client.impl.Backoff-java.util.concurrent.ScheduledExecutorService-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -354,13 +382,15 @@ public interface <span class="typeNameLabel">TopicPoliciesService</span></pre>
 <h4>getTopicPoliciesAsyncWithRetry</h4>
 <pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.pulsar.common.policies.data.TopicPolicies&gt;&gt;&nbsp;getTopicPoliciesAsyncWithRetry(org.apache.pulsar.common.naming.TopicNa [...]
                                                                                                                          org.apache.pulsar.client.impl.Backoff&nbsp;backoff,
-                                                                                                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledExecutorService</a>&nbsp;scheduledExecutorService)</pre>
+                                                                                                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledExecutorService</a>&nbsp;scheduledExecutorService,
+                                                                                                                         boolean&nbsp;isGlobal)</pre>
 <div class="block">When getting TopicPolicies, if the initialization has not been completed,
  we will go back off and try again until time out.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>topicName</code> - topic name</dd>
 <dd><code>backoff</code> - back off policy</dd>
+<dd><code>isGlobal</code> - is global policies</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>CompletableFuture<Optional<TopicPolicies>></dd>
 </dl>
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/class-use/BrokerServiceException.TopicPoliciesCacheNotInitException.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/class-use/BrokerServiceException.TopicPoliciesCacheNotInitException.html
index ac74a46..ec7ddb4 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/class-use/BrokerServiceException.TopicPoliciesCacheNotInitException.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/org/apache/pulsar/broker/service/class-use/BrokerServiceException.TopicPoliciesCacheNotInitException.html
@@ -119,6 +119,23 @@
 <td class="colFirst"><code>org.apache.pulsar.common.policies.data.TopicPolicies</code></td>
 <td class="colLast"><span class="typeNameLabel">SystemTopicBasedTopicPoliciesService.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-">getTopicPolicies</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>org.apache.pulsar.common.policies.data.TopicPolicies</code></td>
+<td class="colLast"><span class="typeNameLabel">TopicPoliciesService.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">getTopicPolicies</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
+                boolean&nbsp;isGlobal)</code>
+<div class="block">Get global policies for a topic async.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>org.apache.pulsar.common.policies.data.TopicPolicies</code></td>
+<td class="colLast"><span class="typeNameLabel">TopicPoliciesService.TopicPoliciesServiceDisabled.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/service/TopicPoliciesService.TopicPoliciesServiceDisabled.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">getTopicPolicies</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
+                boolean&nbsp;isGlobal)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>org.apache.pulsar.common.policies.data.TopicPolicies</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemTopicBasedTopicPoliciesService.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.html#getTopicPolicies-org.apache.pulsar.common.naming.TopicName-boolean-">getTopicPolicies</a></span>(org.apache.pulsar.common.naming.TopicName&nbsp;topicName,
+                boolean&nbsp;isGlobal)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>
diff --git a/content/api/python/2.10.0-SNAPSHOT/index.html b/content/api/python/2.10.0-SNAPSHOT/index.html
index 33c0caf..4cc35cf 100644
--- a/content/api/python/2.10.0-SNAPSHOT/index.html
+++ b/content/api/python/2.10.0-SNAPSHOT/index.html
@@ -3764,7 +3764,7 @@ producers and consumers.</p></div>
             
   <div class="item">
     <div class="name def" id="pulsar.Client.create_producer">
-    <p>def <span class="ident">create_producer</span>(</p><p>self, topic, producer_name=None, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f3dff22acd0&gt;, initial_sequence_id=None, send_timeout_millis=30000, compression_type=_pulsar.CompressionType.NONE, max_pending_messages=1000, max_pending_messages_across_partitions=50000, block_if_queue_full=False, batching_enabled=False, batching_max_messages=1000, batching_max_allowed_size_in_bytes=131072, batching_max_publish_delay_ms [...]
+    <p>def <span class="ident">create_producer</span>(</p><p>self, topic, producer_name=None, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f1e57ea5cd0&gt;, initial_sequence_id=None, send_timeout_millis=30000, compression_type=_pulsar.CompressionType.NONE, max_pending_messages=1000, max_pending_messages_across_partitions=50000, block_if_queue_full=False, batching_enabled=False, batching_max_messages=1000, batching_max_allowed_size_in_bytes=131072, batching_max_publish_delay_ms [...]
     </div>
     
 
@@ -4018,7 +4018,7 @@ batched into single batch message:
             
   <div class="item">
     <div class="name def" id="pulsar.Client.create_reader">
-    <p>def <span class="ident">create_reader</span>(</p><p>self, topic, start_message_id, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f3df77af1d0&gt;, reader_listener=None, receiver_queue_size=1000, reader_name=None, subscription_role_prefix=None, is_read_compacted=False, crypto_key_reader=None)</p>
+    <p>def <span class="ident">create_reader</span>(</p><p>self, topic, start_message_id, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f1e5042a1d0&gt;, reader_listener=None, receiver_queue_size=1000, reader_name=None, subscription_role_prefix=None, is_read_compacted=False, crypto_key_reader=None)</p>
     </div>
     
 
@@ -4235,7 +4235,7 @@ for ongoing operations to complete.</p></div>
             
   <div class="item">
     <div class="name def" id="pulsar.Client.subscribe">
-    <p>def <span class="ident">subscribe</span>(</p><p>self, topic, subscription_name, consumer_type=_pulsar.ConsumerType.Exclusive, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f3df77af110&gt;, message_listener=None, receiver_queue_size=1000, max_total_receiver_queue_size_across_partitions=50000, consumer_name=None, unacked_messages_timeout_ms=None, broker_consumer_stats_cache_time_ms=30000, negative_ack_redelivery_delay_ms=60000, is_read_compacted=False, properties=None, pa [...]
+    <p>def <span class="ident">subscribe</span>(</p><p>self, topic, subscription_name, consumer_type=_pulsar.ConsumerType.Exclusive, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f1e5042a110&gt;, message_listener=None, receiver_queue_size=1000, max_total_receiver_queue_size_across_partitions=50000, consumer_name=None, unacked_messages_timeout_ms=None, broker_consumer_stats_cache_time_ms=30000, negative_ack_redelivery_delay_ms=60000, is_read_compacted=False, properties=None, pa [...]
     </div>
     
 
diff --git a/content/api/python/index.html b/content/api/python/index.html
index 33c0caf..4cc35cf 100644
--- a/content/api/python/index.html
+++ b/content/api/python/index.html
@@ -3764,7 +3764,7 @@ producers and consumers.</p></div>
             
   <div class="item">
     <div class="name def" id="pulsar.Client.create_producer">
-    <p>def <span class="ident">create_producer</span>(</p><p>self, topic, producer_name=None, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f3dff22acd0&gt;, initial_sequence_id=None, send_timeout_millis=30000, compression_type=_pulsar.CompressionType.NONE, max_pending_messages=1000, max_pending_messages_across_partitions=50000, block_if_queue_full=False, batching_enabled=False, batching_max_messages=1000, batching_max_allowed_size_in_bytes=131072, batching_max_publish_delay_ms [...]
+    <p>def <span class="ident">create_producer</span>(</p><p>self, topic, producer_name=None, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f1e57ea5cd0&gt;, initial_sequence_id=None, send_timeout_millis=30000, compression_type=_pulsar.CompressionType.NONE, max_pending_messages=1000, max_pending_messages_across_partitions=50000, block_if_queue_full=False, batching_enabled=False, batching_max_messages=1000, batching_max_allowed_size_in_bytes=131072, batching_max_publish_delay_ms [...]
     </div>
     
 
@@ -4018,7 +4018,7 @@ batched into single batch message:
             
   <div class="item">
     <div class="name def" id="pulsar.Client.create_reader">
-    <p>def <span class="ident">create_reader</span>(</p><p>self, topic, start_message_id, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f3df77af1d0&gt;, reader_listener=None, receiver_queue_size=1000, reader_name=None, subscription_role_prefix=None, is_read_compacted=False, crypto_key_reader=None)</p>
+    <p>def <span class="ident">create_reader</span>(</p><p>self, topic, start_message_id, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f1e5042a1d0&gt;, reader_listener=None, receiver_queue_size=1000, reader_name=None, subscription_role_prefix=None, is_read_compacted=False, crypto_key_reader=None)</p>
     </div>
     
 
@@ -4235,7 +4235,7 @@ for ongoing operations to complete.</p></div>
             
   <div class="item">
     <div class="name def" id="pulsar.Client.subscribe">
-    <p>def <span class="ident">subscribe</span>(</p><p>self, topic, subscription_name, consumer_type=_pulsar.ConsumerType.Exclusive, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f3df77af110&gt;, message_listener=None, receiver_queue_size=1000, max_total_receiver_queue_size_across_partitions=50000, consumer_name=None, unacked_messages_timeout_ms=None, broker_consumer_stats_cache_time_ms=30000, negative_ack_redelivery_delay_ms=60000, is_read_compacted=False, properties=None, pa [...]
+    <p>def <span class="ident">subscribe</span>(</p><p>self, topic, subscription_name, consumer_type=_pulsar.ConsumerType.Exclusive, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f1e5042a110&gt;, message_listener=None, receiver_queue_size=1000, max_total_receiver_queue_size_across_partitions=50000, consumer_name=None, unacked_messages_timeout_ms=None, broker_consumer_stats_cache_time_ms=30000, negative_ack_redelivery_delay_ms=60000, is_read_compacted=False, properties=None, pa [...]
     </div>
     
 
diff --git a/content/docs/en/2.4.0/administration-geo.html b/content/docs/en/2.4.0/administration-geo.html
index d6b9e4c..7c6149c 100644
--- a/content/docs/en/2.4.0/administration-geo.html
+++ b/content/docs/en/2.4.0/administration-geo.html
@@ -170,7 +170,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.4.0/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.4.0/administration-geo/index.html b/content/docs/en/2.4.0/administration-geo/index.html
index d6b9e4c..7c6149c 100644
--- a/content/docs/en/2.4.0/administration-geo/index.html
+++ b/content/docs/en/2.4.0/administration-geo/index.html
@@ -170,7 +170,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.4.0/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.4.1/administration-geo.html b/content/docs/en/2.4.1/administration-geo.html
index d15e2ac..17d5658 100644
--- a/content/docs/en/2.4.1/administration-geo.html
+++ b/content/docs/en/2.4.1/administration-geo.html
@@ -170,7 +170,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.4.1/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.4.1/administration-geo/index.html b/content/docs/en/2.4.1/administration-geo/index.html
index d15e2ac..17d5658 100644
--- a/content/docs/en/2.4.1/administration-geo/index.html
+++ b/content/docs/en/2.4.1/administration-geo/index.html
@@ -170,7 +170,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.4.1/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.4.2/administration-geo.html b/content/docs/en/2.4.2/administration-geo.html
index 93d48b2..fe16ea6 100644
--- a/content/docs/en/2.4.2/administration-geo.html
+++ b/content/docs/en/2.4.2/administration-geo.html
@@ -170,7 +170,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.4.2/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.4.2/administration-geo/index.html b/content/docs/en/2.4.2/administration-geo/index.html
index 93d48b2..fe16ea6 100644
--- a/content/docs/en/2.4.2/administration-geo/index.html
+++ b/content/docs/en/2.4.2/administration-geo/index.html
@@ -170,7 +170,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.4.2/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.5.0/administration-geo.html b/content/docs/en/2.5.0/administration-geo.html
index ed12ed1..9517850 100644
--- a/content/docs/en/2.5.0/administration-geo.html
+++ b/content/docs/en/2.5.0/administration-geo.html
@@ -200,7 +200,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.5.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.5.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.5.0/administration-geo/index.html b/content/docs/en/2.5.0/administration-geo/index.html
index ed12ed1..9517850 100644
--- a/content/docs/en/2.5.0/administration-geo/index.html
+++ b/content/docs/en/2.5.0/administration-geo/index.html
@@ -200,7 +200,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.5.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.5.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.5.1/administration-geo.html b/content/docs/en/2.5.1/administration-geo.html
index fa6fef9..9c8cca7 100644
--- a/content/docs/en/2.5.1/administration-geo.html
+++ b/content/docs/en/2.5.1/administration-geo.html
@@ -200,7 +200,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.5.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.5.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.5.1/administration-geo/index.html b/content/docs/en/2.5.1/administration-geo/index.html
index fa6fef9..9c8cca7 100644
--- a/content/docs/en/2.5.1/administration-geo/index.html
+++ b/content/docs/en/2.5.1/administration-geo/index.html
@@ -200,7 +200,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.5.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.5.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.5.2/administration-geo.html b/content/docs/en/2.5.2/administration-geo.html
index 86ee83d..e6fb71a 100644
--- a/content/docs/en/2.5.2/administration-geo.html
+++ b/content/docs/en/2.5.2/administration-geo.html
@@ -200,7 +200,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.5.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.5.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.5.2/administration-geo/index.html b/content/docs/en/2.5.2/administration-geo/index.html
index 86ee83d..e6fb71a 100644
--- a/content/docs/en/2.5.2/administration-geo/index.html
+++ b/content/docs/en/2.5.2/administration-geo/index.html
@@ -200,7 +200,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.5.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.5.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.6.0/administration-geo.html b/content/docs/en/2.6.0/administration-geo.html
index babd3ff..866368f 100644
--- a/content/docs/en/2.6.0/administration-geo.html
+++ b/content/docs/en/2.6.0/administration-geo.html
@@ -200,7 +200,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.6.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.6.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.6.0/administration-geo/index.html b/content/docs/en/2.6.0/administration-geo/index.html
index babd3ff..866368f 100644
--- a/content/docs/en/2.6.0/administration-geo/index.html
+++ b/content/docs/en/2.6.0/administration-geo/index.html
@@ -200,7 +200,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.6.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.6.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.6.1/administration-geo.html b/content/docs/en/2.6.1/administration-geo.html
index 5cdd8f0..0110b28 100644
--- a/content/docs/en/2.6.1/administration-geo.html
+++ b/content/docs/en/2.6.1/administration-geo.html
@@ -200,7 +200,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.6.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.6.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.6.1/administration-geo/index.html b/content/docs/en/2.6.1/administration-geo/index.html
index 5cdd8f0..0110b28 100644
--- a/content/docs/en/2.6.1/administration-geo/index.html
+++ b/content/docs/en/2.6.1/administration-geo/index.html
@@ -200,7 +200,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.6.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.6.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.6.2/administration-geo.html b/content/docs/en/2.6.2/administration-geo.html
index cd17be5..2c14fe4 100644
--- a/content/docs/en/2.6.2/administration-geo.html
+++ b/content/docs/en/2.6.2/administration-geo.html
@@ -200,7 +200,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.6.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.6.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.6.2/administration-geo/index.html b/content/docs/en/2.6.2/administration-geo/index.html
index cd17be5..2c14fe4 100644
--- a/content/docs/en/2.6.2/administration-geo/index.html
+++ b/content/docs/en/2.6.2/administration-geo/index.html
@@ -200,7 +200,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.6.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.6.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.6.3/administration-geo.html b/content/docs/en/2.6.3/administration-geo.html
index f83bd0a..518bcbc 100644
--- a/content/docs/en/2.6.3/administration-geo.html
+++ b/content/docs/en/2.6.3/administration-geo.html
@@ -200,7 +200,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.6.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.6.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.6.3/administration-geo/index.html b/content/docs/en/2.6.3/administration-geo/index.html
index f83bd0a..518bcbc 100644
--- a/content/docs/en/2.6.3/administration-geo/index.html
+++ b/content/docs/en/2.6.3/administration-geo/index.html
@@ -200,7 +200,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.6.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.6.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.6.4/administration-geo.html b/content/docs/en/2.6.4/administration-geo.html
index 159dbd2..10fe352 100644
--- a/content/docs/en/2.6.4/administration-geo.html
+++ b/content/docs/en/2.6.4/administration-geo.html
@@ -170,7 +170,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.6.4/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.6.4/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.6.4/administration-geo/index.html b/content/docs/en/2.6.4/administration-geo/index.html
index 159dbd2..10fe352 100644
--- a/content/docs/en/2.6.4/administration-geo/index.html
+++ b/content/docs/en/2.6.4/administration-geo/index.html
@@ -170,7 +170,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.6.4/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.6.4/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.7.0/administration-geo.html b/content/docs/en/2.7.0/administration-geo.html
index 4adf196..11b0aa4 100644
--- a/content/docs/en/2.7.0/administration-geo.html
+++ b/content/docs/en/2.7.0/administration-geo.html
@@ -203,7 +203,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.7.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.7.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.7.0/administration-geo/index.html b/content/docs/en/2.7.0/administration-geo/index.html
index 4adf196..11b0aa4 100644
--- a/content/docs/en/2.7.0/administration-geo/index.html
+++ b/content/docs/en/2.7.0/administration-geo/index.html
@@ -203,7 +203,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.7.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.7.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.7.1/administration-geo.html b/content/docs/en/2.7.1/administration-geo.html
index f39fa0c..808e0ec 100644
--- a/content/docs/en/2.7.1/administration-geo.html
+++ b/content/docs/en/2.7.1/administration-geo.html
@@ -203,7 +203,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.7.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.7.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.7.1/administration-geo/index.html b/content/docs/en/2.7.1/administration-geo/index.html
index f39fa0c..808e0ec 100644
--- a/content/docs/en/2.7.1/administration-geo/index.html
+++ b/content/docs/en/2.7.1/administration-geo/index.html
@@ -203,7 +203,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.7.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.7.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.7.2/administration-geo.html b/content/docs/en/2.7.2/administration-geo.html
index d061050..64efb86 100644
--- a/content/docs/en/2.7.2/administration-geo.html
+++ b/content/docs/en/2.7.2/administration-geo.html
@@ -203,7 +203,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.7.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.7.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.7.2/administration-geo/index.html b/content/docs/en/2.7.2/administration-geo/index.html
index d061050..64efb86 100644
--- a/content/docs/en/2.7.2/administration-geo/index.html
+++ b/content/docs/en/2.7.2/administration-geo/index.html
@@ -203,7 +203,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.7.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.7.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.7.3/administration-geo.html b/content/docs/en/2.7.3/administration-geo.html
index 1ec32ea..c290229 100644
--- a/content/docs/en/2.7.3/administration-geo.html
+++ b/content/docs/en/2.7.3/administration-geo.html
@@ -203,7 +203,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.7.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.7.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.7.3/administration-geo/index.html b/content/docs/en/2.7.3/administration-geo/index.html
index 1ec32ea..c290229 100644
--- a/content/docs/en/2.7.3/administration-geo/index.html
+++ b/content/docs/en/2.7.3/administration-geo/index.html
@@ -203,7 +203,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.7.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.7.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.8.0/administration-geo.html b/content/docs/en/2.8.0/administration-geo.html
index 8970e70..f56f40c 100644
--- a/content/docs/en/2.8.0/administration-geo.html
+++ b/content/docs/en/2.8.0/administration-geo.html
@@ -199,7 +199,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.8.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.8.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.8.0/administration-geo/index.html b/content/docs/en/2.8.0/administration-geo/index.html
index 8970e70..f56f40c 100644
--- a/content/docs/en/2.8.0/administration-geo/index.html
+++ b/content/docs/en/2.8.0/administration-geo/index.html
@@ -199,7 +199,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.8.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/2.8.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/administration-geo.html b/content/docs/en/administration-geo.html
index a4476f7..9175fab 100644
--- a/content/docs/en/administration-geo.html
+++ b/content/docs/en/administration-geo.html
@@ -203,7 +203,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-replication [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/administration-geo/index.html b/content/docs/en/administration-geo/index.html
index a4476f7..9175fab 100644
--- a/content/docs/en/administration-geo/index.html
+++ b/content/docs/en/administration-geo/index.html
@@ -203,7 +203,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-replication [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/next/administration-geo.html b/content/docs/en/next/administration-geo.html
index 4f11ebd..6dd21b8 100644
--- a/content/docs/en/next/administration-geo.html
+++ b/content/docs/en/next/administration-geo.html
@@ -215,7 +215,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/next/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-r [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/next/administration-geo/index.html b/content/docs/en/next/administration-geo/index.html
index 4f11ebd..6dd21b8 100644
--- a/content/docs/en/next/administration-geo/index.html
+++ b/content/docs/en/next/administration-geo/index.html
@@ -215,7 +215,10 @@ For geo-replication topics, each region uses a fault-tolerant mechanism to decid
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/en/next/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-r [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/next/functions-runtime.html b/content/docs/en/next/functions-runtime.html
index 2918064..3c9f79c 100644
--- a/content/docs/en/next/functions-runtime.html
+++ b/content/docs/en/next/functions-runtime.html
@@ -188,6 +188,9 @@ Pulsar supports adding labels to the Kubernetes StatefulSets and services while
   <span class="hljs-attr">narExtractionDirectory:</span>
   <span class="hljs-comment"># The classpath where function instance files stored</span>
   <span class="hljs-attr">functionInstanceClassPath:</span>
+  <span class="hljs-comment"># Upload the builtin sources/sinks to BookKeeper.</span>
+  <span class="hljs-comment"># True by default.</span>
+  <span class="hljs-attr">uploadBuiltinSinksSources:</span> <span class="hljs-literal">true</span>
   <span class="hljs-comment"># the directory for dropping extra function dependencies</span>
   <span class="hljs-comment"># if it is not an absolute path, it is relative to `pulsarRootDir`</span>
   <span class="hljs-attr">extraFunctionDependenciesDir:</span>
diff --git a/content/docs/en/next/functions-runtime/index.html b/content/docs/en/next/functions-runtime/index.html
index 2918064..3c9f79c 100644
--- a/content/docs/en/next/functions-runtime/index.html
+++ b/content/docs/en/next/functions-runtime/index.html
@@ -188,6 +188,9 @@ Pulsar supports adding labels to the Kubernetes StatefulSets and services while
   <span class="hljs-attr">narExtractionDirectory:</span>
   <span class="hljs-comment"># The classpath where function instance files stored</span>
   <span class="hljs-attr">functionInstanceClassPath:</span>
+  <span class="hljs-comment"># Upload the builtin sources/sinks to BookKeeper.</span>
+  <span class="hljs-comment"># True by default.</span>
+  <span class="hljs-attr">uploadBuiltinSinksSources:</span> <span class="hljs-literal">true</span>
   <span class="hljs-comment"># the directory for dropping extra function dependencies</span>
   <span class="hljs-comment"># if it is not an absolute path, it is relative to `pulsarRootDir`</span>
   <span class="hljs-attr">extraFunctionDependenciesDir:</span>
diff --git a/content/docs/en/next/reference-configuration.html b/content/docs/en/next/reference-configuration.html
index 54e92de..8bacbee 100644
--- a/content/docs/en/next/reference-configuration.html
+++ b/content/docs/en/next/reference-configuration.html
@@ -223,8 +223,8 @@
 <tr><td>webServicePort</td><td>Port to use to server HTTP request</td><td>8080</td></tr>
 <tr><td>webServicePortTls</td><td>Port to use to server HTTPS request</td><td>8443</td></tr>
 <tr><td>webSocketServiceEnabled</td><td>Enable the WebSocket API service in broker</td><td>false</td></tr>
-<tr><td>webSocketNumIoThreads</td><td>The number of IO threads in Pulsar Client used in WebSocket proxy.</td><td>8</td></tr>
-<tr><td>webSocketConnectionsPerBroker</td><td>The number of connections per Broker in Pulsar Client used in WebSocket proxy.</td><td>8</td></tr>
+<tr><td>webSocketNumIoThreads</td><td>The number of IO threads in Pulsar Client used in WebSocket proxy.</td><td>Runtime.getRuntime().availableProcessors()</td></tr>
+<tr><td>webSocketConnectionsPerBroker</td><td>The number of connections per Broker in Pulsar Client used in WebSocket proxy.</td><td>Runtime.getRuntime().availableProcessors()</td></tr>
 <tr><td>webSocketSessionIdleTimeoutMillis</td><td>Time in milliseconds that idle WebSocket session times out.</td><td>300000</td></tr>
 <tr><td>webSocketMaxTextFrameSize</td><td>The maximum size of a text message during parsing in WebSocket proxy.</td><td>1048576</td></tr>
 <tr><td>exposeTopicLevelMetricsInPrometheus</td><td>Whether to enable topic level metrics.</td><td>true</td></tr>
@@ -238,6 +238,7 @@
 <tr><td>brokerDeduplicationMaxNumberOfProducers</td><td>The maximum number of producers for which information will be stored for deduplication purposes.</td><td>10000</td></tr>
 <tr><td>brokerDeduplicationEntriesInterval</td><td>The number of entries after which a deduplication informational snapshot is taken. A larger interval will lead to fewer snapshots being taken, though this would also lengthen the topic recovery time (the time required for entries published after the snapshot to be replayed).</td><td>1000</td></tr>
 <tr><td>brokerDeduplicationProducerInactivityTimeoutMinutes</td><td>The time of inactivity (in minutes) after which the broker will discard deduplication information related to a disconnected producer.</td><td>360</td></tr>
+<tr><td>brokerDeduplicationSnapshotFrequencyInSeconds</td><td>How often is the thread pool scheduled to check whether a snapshot needs to be taken. The value of <code>0</code> means it is disabled.</td><td>120</td></tr>
 <tr><td>dispatchThrottlingRatePerReplicatorInMsg</td><td>The default messages per second dispatch throttling-limit for every replicator in replication. The value of <code>0</code> means disabling replication message dispatch-throttling</td><td>0</td></tr>
 <tr><td>dispatchThrottlingRatePerReplicatorInByte</td><td>The default bytes per second dispatch throttling-limit for every replicator in replication. The value of <code>0</code> means disabling replication message-byte dispatch-throttling</td><td>0</td></tr>
 <tr><td>zooKeeperSessionTimeoutMillis</td><td>Zookeeper session timeout in milliseconds</td><td>30000</td></tr>
@@ -667,8 +668,8 @@
 <tr><td>managedLedgerDefaultWriteQuorum</td><td></td><td>1</td></tr>
 <tr><td>managedLedgerDefaultAckQuorum</td><td></td><td>1</td></tr>
 <tr><td>managedLedgerDigestType</td><td>Default type of checksum to use when writing to BookKeeper.</td><td>CRC32C</td></tr>
-<tr><td>managedLedgerNumWorkerThreads</td><td>Number of threads to be used for managed ledger tasks dispatching.</td><td>8</td></tr>
-<tr><td>managedLedgerNumSchedulerThreads</td><td>Number of threads to be used for managed ledger scheduled tasks.</td><td>8</td></tr>
+<tr><td>managedLedgerNumWorkerThreads</td><td>Number of threads to be used for managed ledger tasks dispatching.</td><td>Runtime.getRuntime().availableProcessors()</td></tr>
+<tr><td>managedLedgerNumSchedulerThreads</td><td>Number of threads to be used for managed ledger scheduled tasks.</td><td>Runtime.getRuntime().availableProcessors()</td></tr>
 <tr><td>managedLedgerCacheSizeMB</td><td></td><td>N/A</td></tr>
 <tr><td>managedLedgerCacheCopyEntries</td><td>Whether to copy the entry payloads when inserting in cache.</td><td>false</td></tr>
 <tr><td>managedLedgerCacheEvictionWatermark</td><td></td><td>0.9</td></tr>
diff --git a/content/docs/en/next/reference-configuration/index.html b/content/docs/en/next/reference-configuration/index.html
index 54e92de..8bacbee 100644
--- a/content/docs/en/next/reference-configuration/index.html
+++ b/content/docs/en/next/reference-configuration/index.html
@@ -223,8 +223,8 @@
 <tr><td>webServicePort</td><td>Port to use to server HTTP request</td><td>8080</td></tr>
 <tr><td>webServicePortTls</td><td>Port to use to server HTTPS request</td><td>8443</td></tr>
 <tr><td>webSocketServiceEnabled</td><td>Enable the WebSocket API service in broker</td><td>false</td></tr>
-<tr><td>webSocketNumIoThreads</td><td>The number of IO threads in Pulsar Client used in WebSocket proxy.</td><td>8</td></tr>
-<tr><td>webSocketConnectionsPerBroker</td><td>The number of connections per Broker in Pulsar Client used in WebSocket proxy.</td><td>8</td></tr>
+<tr><td>webSocketNumIoThreads</td><td>The number of IO threads in Pulsar Client used in WebSocket proxy.</td><td>Runtime.getRuntime().availableProcessors()</td></tr>
+<tr><td>webSocketConnectionsPerBroker</td><td>The number of connections per Broker in Pulsar Client used in WebSocket proxy.</td><td>Runtime.getRuntime().availableProcessors()</td></tr>
 <tr><td>webSocketSessionIdleTimeoutMillis</td><td>Time in milliseconds that idle WebSocket session times out.</td><td>300000</td></tr>
 <tr><td>webSocketMaxTextFrameSize</td><td>The maximum size of a text message during parsing in WebSocket proxy.</td><td>1048576</td></tr>
 <tr><td>exposeTopicLevelMetricsInPrometheus</td><td>Whether to enable topic level metrics.</td><td>true</td></tr>
@@ -238,6 +238,7 @@
 <tr><td>brokerDeduplicationMaxNumberOfProducers</td><td>The maximum number of producers for which information will be stored for deduplication purposes.</td><td>10000</td></tr>
 <tr><td>brokerDeduplicationEntriesInterval</td><td>The number of entries after which a deduplication informational snapshot is taken. A larger interval will lead to fewer snapshots being taken, though this would also lengthen the topic recovery time (the time required for entries published after the snapshot to be replayed).</td><td>1000</td></tr>
 <tr><td>brokerDeduplicationProducerInactivityTimeoutMinutes</td><td>The time of inactivity (in minutes) after which the broker will discard deduplication information related to a disconnected producer.</td><td>360</td></tr>
+<tr><td>brokerDeduplicationSnapshotFrequencyInSeconds</td><td>How often is the thread pool scheduled to check whether a snapshot needs to be taken. The value of <code>0</code> means it is disabled.</td><td>120</td></tr>
 <tr><td>dispatchThrottlingRatePerReplicatorInMsg</td><td>The default messages per second dispatch throttling-limit for every replicator in replication. The value of <code>0</code> means disabling replication message dispatch-throttling</td><td>0</td></tr>
 <tr><td>dispatchThrottlingRatePerReplicatorInByte</td><td>The default bytes per second dispatch throttling-limit for every replicator in replication. The value of <code>0</code> means disabling replication message-byte dispatch-throttling</td><td>0</td></tr>
 <tr><td>zooKeeperSessionTimeoutMillis</td><td>Zookeeper session timeout in milliseconds</td><td>30000</td></tr>
@@ -667,8 +668,8 @@
 <tr><td>managedLedgerDefaultWriteQuorum</td><td></td><td>1</td></tr>
 <tr><td>managedLedgerDefaultAckQuorum</td><td></td><td>1</td></tr>
 <tr><td>managedLedgerDigestType</td><td>Default type of checksum to use when writing to BookKeeper.</td><td>CRC32C</td></tr>
-<tr><td>managedLedgerNumWorkerThreads</td><td>Number of threads to be used for managed ledger tasks dispatching.</td><td>8</td></tr>
-<tr><td>managedLedgerNumSchedulerThreads</td><td>Number of threads to be used for managed ledger scheduled tasks.</td><td>8</td></tr>
+<tr><td>managedLedgerNumWorkerThreads</td><td>Number of threads to be used for managed ledger tasks dispatching.</td><td>Runtime.getRuntime().availableProcessors()</td></tr>
+<tr><td>managedLedgerNumSchedulerThreads</td><td>Number of threads to be used for managed ledger scheduled tasks.</td><td>Runtime.getRuntime().availableProcessors()</td></tr>
 <tr><td>managedLedgerCacheSizeMB</td><td></td><td>N/A</td></tr>
 <tr><td>managedLedgerCacheCopyEntries</td><td>Whether to copy the entry payloads when inserting in cache.</td><td>false</td></tr>
 <tr><td>managedLedgerCacheEvictionWatermark</td><td></td><td>0.9</td></tr>
diff --git a/content/docs/fr/2.8.0/client-libraries-python.html b/content/docs/fr/2.8.0/client-libraries-python.html
index 90ab8c4..bf95c4c 100644
--- a/content/docs/fr/2.8.0/client-libraries-python.html
+++ b/content/docs/fr/2.8.0/client-libraries-python.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/fr/2.8.0/client-libraries-python/index.html b/content/docs/fr/2.8.0/client-libraries-python/index.html
index 90ab8c4..bf95c4c 100644
--- a/content/docs/fr/2.8.0/client-libraries-python/index.html
+++ b/content/docs/fr/2.8.0/client-libraries-python/index.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/fr/client-libraries-python.html b/content/docs/fr/client-libraries-python.html
index 3c2ca0d..e621813 100644
--- a/content/docs/fr/client-libraries-python.html
+++ b/content/docs/fr/client-libraries-python.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/fr/client-libraries-python/index.html b/content/docs/fr/client-libraries-python/index.html
index 3c2ca0d..e621813 100644
--- a/content/docs/fr/client-libraries-python/index.html
+++ b/content/docs/fr/client-libraries-python/index.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/fr/next/admin-api-topics.html b/content/docs/fr/next/admin-api-topics.html
index daf1835..a832d36 100644
--- a/content/docs/fr/next/admin-api-topics.html
+++ b/content/docs/fr/next/admin-api-topics.html
@@ -149,6 +149,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgThroughputOut</strong>: The sum of all local and replication consumers' dispatch rates (bytes/s).</p></li>
 <li><p><strong>averageMsgSize</strong>: The average size (in bytes) of messages published within the last interval.</p></li>
 <li><p><strong>storageSize</strong>: The sum of the ledgers' storage size for this topic. The space used to store the messages for the topic.</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklogs</strong>: The publish time of the earliest message in the backlog (ms).</p></li>
 <li><p><strong>bytesInCounter</strong>: Total bytes published to the topic.</p></li>
 <li><p><strong>msgInCounter</strong>: Total messages published to the topic.</p></li>
 <li><p><strong>bytesOutCounter</strong>: Total bytes delivered to consumers.</p></li>
@@ -193,6 +194,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgRateRedeliver</strong>: Total rate of messages redelivered on this subscription (msg/s).</p></li>
 <li><p><strong>chunkedMessageRate</strong>: Chunked message dispatch rate.</p></li>
 <li><p><strong>backlogSize</strong>: Size of backlog for this subscription (in bytes).</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklog</strong>: The publish time of the earliest message in the backlog for the subscription (ms).</p></li>
 <li><p><strong>msgBacklogNoDelayed</strong>: Number of messages in the subscription backlog that do not contain the delay messages.</p></li>
 <li><p><strong>blockedSubscriptionOnUnackedMsgs</strong>: Flag to verify if a subscription is blocked due to reaching threshold of unacked messages.</p></li>
 <li><p><strong>msgDelayed</strong>: Number of delayed messages currently being tracked.</p></li>
@@ -261,6 +263,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
   <span class="hljs-attr">"msgChunkPublished"</span> : <span class="hljs-literal">false</span>,
   <span class="hljs-attr">"storageSize"</span> : <span class="hljs-number">504</span>,
   <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+  <span class="hljs-attr">"earliestMsgPublishTimeInBacklogs"</span>: <span class="hljs-number">0</span>,
   <span class="hljs-attr">"offloadedStorageSize"</span> : <span class="hljs-number">0</span>,
   <span class="hljs-attr">"publishers"</span> : [ {
     <span class="hljs-attr">"accessMode"</span> : <span class="hljs-string">"Shared"</span>,
@@ -286,6 +289,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
       <span class="hljs-attr">"chunkedMessageRate"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklog"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+      <span class="hljs-attr">"earliestMsgPublishTimeInBacklog"</span>: <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklogNoDelayed"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"blockedSubscriptionOnUnackedMsgs"</span> : <span class="hljs-literal">false</span>,
       <span class="hljs-attr">"msgDelayed"</span> : <span class="hljs-number">0</span>,
@@ -872,7 +876,8 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 </span></div></div><div id="tab-group-1935-content-1937" class="tab-pane" data-group="group_1935" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.8.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-1935-content-1938" class="tab-pane" data-group="group_1935" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/fr/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul class="to [...]
+</span></div></div></div></div>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/fr/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul class="toc-headings"><li><a href="#list- [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/next/admin-api-topics/index.html b/content/docs/fr/next/admin-api-topics/index.html
index daf1835..a832d36 100644
--- a/content/docs/fr/next/admin-api-topics/index.html
+++ b/content/docs/fr/next/admin-api-topics/index.html
@@ -149,6 +149,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgThroughputOut</strong>: The sum of all local and replication consumers' dispatch rates (bytes/s).</p></li>
 <li><p><strong>averageMsgSize</strong>: The average size (in bytes) of messages published within the last interval.</p></li>
 <li><p><strong>storageSize</strong>: The sum of the ledgers' storage size for this topic. The space used to store the messages for the topic.</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklogs</strong>: The publish time of the earliest message in the backlog (ms).</p></li>
 <li><p><strong>bytesInCounter</strong>: Total bytes published to the topic.</p></li>
 <li><p><strong>msgInCounter</strong>: Total messages published to the topic.</p></li>
 <li><p><strong>bytesOutCounter</strong>: Total bytes delivered to consumers.</p></li>
@@ -193,6 +194,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgRateRedeliver</strong>: Total rate of messages redelivered on this subscription (msg/s).</p></li>
 <li><p><strong>chunkedMessageRate</strong>: Chunked message dispatch rate.</p></li>
 <li><p><strong>backlogSize</strong>: Size of backlog for this subscription (in bytes).</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklog</strong>: The publish time of the earliest message in the backlog for the subscription (ms).</p></li>
 <li><p><strong>msgBacklogNoDelayed</strong>: Number of messages in the subscription backlog that do not contain the delay messages.</p></li>
 <li><p><strong>blockedSubscriptionOnUnackedMsgs</strong>: Flag to verify if a subscription is blocked due to reaching threshold of unacked messages.</p></li>
 <li><p><strong>msgDelayed</strong>: Number of delayed messages currently being tracked.</p></li>
@@ -261,6 +263,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
   <span class="hljs-attr">"msgChunkPublished"</span> : <span class="hljs-literal">false</span>,
   <span class="hljs-attr">"storageSize"</span> : <span class="hljs-number">504</span>,
   <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+  <span class="hljs-attr">"earliestMsgPublishTimeInBacklogs"</span>: <span class="hljs-number">0</span>,
   <span class="hljs-attr">"offloadedStorageSize"</span> : <span class="hljs-number">0</span>,
   <span class="hljs-attr">"publishers"</span> : [ {
     <span class="hljs-attr">"accessMode"</span> : <span class="hljs-string">"Shared"</span>,
@@ -286,6 +289,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
       <span class="hljs-attr">"chunkedMessageRate"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklog"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+      <span class="hljs-attr">"earliestMsgPublishTimeInBacklog"</span>: <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklogNoDelayed"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"blockedSubscriptionOnUnackedMsgs"</span> : <span class="hljs-literal">false</span>,
       <span class="hljs-attr">"msgDelayed"</span> : <span class="hljs-number">0</span>,
@@ -872,7 +876,8 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 </span></div></div><div id="tab-group-1935-content-1937" class="tab-pane" data-group="group_1935" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.8.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-1935-content-1938" class="tab-pane" data-group="group_1935" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/fr/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul class="to [...]
+</span></div></div></div></div>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/fr/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul class="toc-headings"><li><a href="#list- [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/next/client-libraries-go.html b/content/docs/fr/next/client-libraries-go.html
index e2392f8..61091c2 100644
--- a/content/docs/fr/next/client-libraries-go.html
+++ b/content/docs/fr/next/client-libraries-go.html
@@ -314,6 +314,76 @@ msg, err = consumer.Receive(ctx)
 fmt.Println(msg.Payload())
 canc()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-producer"></a><a href="#how-to-use-prometheus-metrics-in-producer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>Pulsar Go client registers client metrics using Prometheus. This section demonstrates how to create a simple Pulsar producer application that exposes Prometheus metrics via HTTP.</p>
+<ol>
+<li>Write a simple producer application.</li>
+</ol>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a producer</span>
+producer, err := client.CreateProducer(pulsar.ProducerOptions{
+    Topic: <span class="hljs-string">"topic-1"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> producer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can produce messages by requesting http://localhost:8082/produce</span>
+webPort := <span class="hljs-number">8082</span>
+http.HandleFunc(<span class="hljs-string">"/produce"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msgId, err := producer.Send(ctx, &amp;pulsar.ProducerMessage{
+        Payload: []<span class="hljs-keyword">byte</span>(fmt.Sprintf(<span class="hljs-string">"hello world"</span>)),
+    })
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Published message: %v"</span>, msgId)
+        fmt.Fprintf(w, <span class="hljs-string">"Published message: %v"</span>, msgId)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="producer-configuration"></a><a href="#producer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Name | Name specify a name for the producer. If not assigned, the system will generate a globally unique name which can be access with Producer.ProducerName(). | | | Properties | Properties attach a set of application defined properties to the producer This properties will be visible in th [...]
 <h2><a class="anchor" aria-hidden="true" id="consumers"></a><a href="#consumers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
@@ -532,6 +602,74 @@ err = msg.GetSchemaValue(&amp;s)
 
 <span class="hljs-keyword">defer</span> consumer.Close()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-consumer"></a><a href="#how-to-use-prometheus-metrics-in-consumer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>In this guide, This section demonstrates how to create a simple Pulsar consumer application that exposes Prometheus metrics via HTTP. 1. Write a simple consumer application.</p>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a consumer</span>
+consumer, err := client.Subscribe(pulsar.ConsumerOptions{
+    Topic:            <span class="hljs-string">"topic-1"</span>,
+    SubscriptionName: <span class="hljs-string">"sub-1"</span>,
+    Type:             pulsar.Shared,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> consumer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can consume messages by requesting http://localhost:8083/consume</span>
+webPort := <span class="hljs-number">8083</span>
+http.HandleFunc(<span class="hljs-string">"/consume"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msg, err := consumer.Receive(ctx)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        fmt.Fprintf(w, <span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        consumer.Ack(msg)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="consumer-configuration"></a><a href="#consumer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Topics | Specify a list of topics this consumer will subscribe on. Either a topic, a list of topics or a topics pattern are required when subscribing| | | TopicsPattern | Specify a regular expression to subscribe to multiple topics under the same namespace. Either a topic, a list of topics [...]
 <h2><a class="anchor" aria-hidden="true" id="readers"></a><a href="#readers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
diff --git a/content/docs/fr/next/client-libraries-go/index.html b/content/docs/fr/next/client-libraries-go/index.html
index e2392f8..61091c2 100644
--- a/content/docs/fr/next/client-libraries-go/index.html
+++ b/content/docs/fr/next/client-libraries-go/index.html
@@ -314,6 +314,76 @@ msg, err = consumer.Receive(ctx)
 fmt.Println(msg.Payload())
 canc()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-producer"></a><a href="#how-to-use-prometheus-metrics-in-producer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>Pulsar Go client registers client metrics using Prometheus. This section demonstrates how to create a simple Pulsar producer application that exposes Prometheus metrics via HTTP.</p>
+<ol>
+<li>Write a simple producer application.</li>
+</ol>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a producer</span>
+producer, err := client.CreateProducer(pulsar.ProducerOptions{
+    Topic: <span class="hljs-string">"topic-1"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> producer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can produce messages by requesting http://localhost:8082/produce</span>
+webPort := <span class="hljs-number">8082</span>
+http.HandleFunc(<span class="hljs-string">"/produce"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msgId, err := producer.Send(ctx, &amp;pulsar.ProducerMessage{
+        Payload: []<span class="hljs-keyword">byte</span>(fmt.Sprintf(<span class="hljs-string">"hello world"</span>)),
+    })
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Published message: %v"</span>, msgId)
+        fmt.Fprintf(w, <span class="hljs-string">"Published message: %v"</span>, msgId)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="producer-configuration"></a><a href="#producer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Name | Name specify a name for the producer. If not assigned, the system will generate a globally unique name which can be access with Producer.ProducerName(). | | | Properties | Properties attach a set of application defined properties to the producer This properties will be visible in th [...]
 <h2><a class="anchor" aria-hidden="true" id="consumers"></a><a href="#consumers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
@@ -532,6 +602,74 @@ err = msg.GetSchemaValue(&amp;s)
 
 <span class="hljs-keyword">defer</span> consumer.Close()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-consumer"></a><a href="#how-to-use-prometheus-metrics-in-consumer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>In this guide, This section demonstrates how to create a simple Pulsar consumer application that exposes Prometheus metrics via HTTP. 1. Write a simple consumer application.</p>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a consumer</span>
+consumer, err := client.Subscribe(pulsar.ConsumerOptions{
+    Topic:            <span class="hljs-string">"topic-1"</span>,
+    SubscriptionName: <span class="hljs-string">"sub-1"</span>,
+    Type:             pulsar.Shared,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> consumer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can consume messages by requesting http://localhost:8083/consume</span>
+webPort := <span class="hljs-number">8083</span>
+http.HandleFunc(<span class="hljs-string">"/consume"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msg, err := consumer.Receive(ctx)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        fmt.Fprintf(w, <span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        consumer.Ack(msg)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="consumer-configuration"></a><a href="#consumer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Topics | Specify a list of topics this consumer will subscribe on. Either a topic, a list of topics or a topics pattern are required when subscribing| | | TopicsPattern | Specify a regular expression to subscribe to multiple topics under the same namespace. Either a topic, a list of topics [...]
 <h2><a class="anchor" aria-hidden="true" id="readers"></a><a href="#readers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
diff --git a/content/docs/ja/2.8.0/client-libraries-python.html b/content/docs/ja/2.8.0/client-libraries-python.html
index c35cdd9..1608d72 100644
--- a/content/docs/ja/2.8.0/client-libraries-python.html
+++ b/content/docs/ja/2.8.0/client-libraries-python.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/ja/2.8.0/client-libraries-python/index.html b/content/docs/ja/2.8.0/client-libraries-python/index.html
index c35cdd9..1608d72 100644
--- a/content/docs/ja/2.8.0/client-libraries-python/index.html
+++ b/content/docs/ja/2.8.0/client-libraries-python/index.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/ja/client-libraries-python.html b/content/docs/ja/client-libraries-python.html
index ca85fd9..5a45867 100644
--- a/content/docs/ja/client-libraries-python.html
+++ b/content/docs/ja/client-libraries-python.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/ja/client-libraries-python/index.html b/content/docs/ja/client-libraries-python/index.html
index ca85fd9..5a45867 100644
--- a/content/docs/ja/client-libraries-python/index.html
+++ b/content/docs/ja/client-libraries-python/index.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/ja/next/admin-api-topics.html b/content/docs/ja/next/admin-api-topics.html
index 26da255..210b53a 100644
--- a/content/docs/ja/next/admin-api-topics.html
+++ b/content/docs/ja/next/admin-api-topics.html
@@ -149,6 +149,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgThroughputOut</strong>: The sum of all local and replication consumers' dispatch rates (bytes/s).</p></li>
 <li><p><strong>averageMsgSize</strong>: The average size (in bytes) of messages published within the last interval.</p></li>
 <li><p><strong>storageSize</strong>: The sum of the ledgers' storage size for this topic. The space used to store the messages for the topic.</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklogs</strong>: The publish time of the earliest message in the backlog (ms).</p></li>
 <li><p><strong>bytesInCounter</strong>: Total bytes published to the topic.</p></li>
 <li><p><strong>msgInCounter</strong>: Total messages published to the topic.</p></li>
 <li><p><strong>bytesOutCounter</strong>: Total bytes delivered to consumers.</p></li>
@@ -193,6 +194,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgRateRedeliver</strong>: Total rate of messages redelivered on this subscription (msg/s).</p></li>
 <li><p><strong>chunkedMessageRate</strong>: Chunked message dispatch rate.</p></li>
 <li><p><strong>backlogSize</strong>: Size of backlog for this subscription (in bytes).</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklog</strong>: The publish time of the earliest message in the backlog for the subscription (ms).</p></li>
 <li><p><strong>msgBacklogNoDelayed</strong>: Number of messages in the subscription backlog that do not contain the delay messages.</p></li>
 <li><p><strong>blockedSubscriptionOnUnackedMsgs</strong>: Flag to verify if a subscription is blocked due to reaching threshold of unacked messages.</p></li>
 <li><p><strong>msgDelayed</strong>: Number of delayed messages currently being tracked.</p></li>
@@ -261,6 +263,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
   <span class="hljs-attr">"msgChunkPublished"</span> : <span class="hljs-literal">false</span>,
   <span class="hljs-attr">"storageSize"</span> : <span class="hljs-number">504</span>,
   <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+  <span class="hljs-attr">"earliestMsgPublishTimeInBacklogs"</span>: <span class="hljs-number">0</span>,
   <span class="hljs-attr">"offloadedStorageSize"</span> : <span class="hljs-number">0</span>,
   <span class="hljs-attr">"publishers"</span> : [ {
     <span class="hljs-attr">"accessMode"</span> : <span class="hljs-string">"Shared"</span>,
@@ -286,6 +289,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
       <span class="hljs-attr">"chunkedMessageRate"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklog"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+      <span class="hljs-attr">"earliestMsgPublishTimeInBacklog"</span>: <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklogNoDelayed"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"blockedSubscriptionOnUnackedMsgs"</span> : <span class="hljs-literal">false</span>,
       <span class="hljs-attr">"msgDelayed"</span> : <span class="hljs-number">0</span>,
@@ -872,7 +876,8 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 </span></div></div><div id="tab-group-1792-content-1794" class="tab-pane" data-group="group_1792" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.8.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-1792-content-1795" class="tab-pane" data-group="group_1792" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/ja/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul class="to [...]
+</span></div></div></div></div>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/ja/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul class="toc-headings"><li><a href="#list- [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/ja/next/admin-api-topics/index.html b/content/docs/ja/next/admin-api-topics/index.html
index 26da255..210b53a 100644
--- a/content/docs/ja/next/admin-api-topics/index.html
+++ b/content/docs/ja/next/admin-api-topics/index.html
@@ -149,6 +149,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgThroughputOut</strong>: The sum of all local and replication consumers' dispatch rates (bytes/s).</p></li>
 <li><p><strong>averageMsgSize</strong>: The average size (in bytes) of messages published within the last interval.</p></li>
 <li><p><strong>storageSize</strong>: The sum of the ledgers' storage size for this topic. The space used to store the messages for the topic.</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklogs</strong>: The publish time of the earliest message in the backlog (ms).</p></li>
 <li><p><strong>bytesInCounter</strong>: Total bytes published to the topic.</p></li>
 <li><p><strong>msgInCounter</strong>: Total messages published to the topic.</p></li>
 <li><p><strong>bytesOutCounter</strong>: Total bytes delivered to consumers.</p></li>
@@ -193,6 +194,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgRateRedeliver</strong>: Total rate of messages redelivered on this subscription (msg/s).</p></li>
 <li><p><strong>chunkedMessageRate</strong>: Chunked message dispatch rate.</p></li>
 <li><p><strong>backlogSize</strong>: Size of backlog for this subscription (in bytes).</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklog</strong>: The publish time of the earliest message in the backlog for the subscription (ms).</p></li>
 <li><p><strong>msgBacklogNoDelayed</strong>: Number of messages in the subscription backlog that do not contain the delay messages.</p></li>
 <li><p><strong>blockedSubscriptionOnUnackedMsgs</strong>: Flag to verify if a subscription is blocked due to reaching threshold of unacked messages.</p></li>
 <li><p><strong>msgDelayed</strong>: Number of delayed messages currently being tracked.</p></li>
@@ -261,6 +263,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
   <span class="hljs-attr">"msgChunkPublished"</span> : <span class="hljs-literal">false</span>,
   <span class="hljs-attr">"storageSize"</span> : <span class="hljs-number">504</span>,
   <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+  <span class="hljs-attr">"earliestMsgPublishTimeInBacklogs"</span>: <span class="hljs-number">0</span>,
   <span class="hljs-attr">"offloadedStorageSize"</span> : <span class="hljs-number">0</span>,
   <span class="hljs-attr">"publishers"</span> : [ {
     <span class="hljs-attr">"accessMode"</span> : <span class="hljs-string">"Shared"</span>,
@@ -286,6 +289,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
       <span class="hljs-attr">"chunkedMessageRate"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklog"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+      <span class="hljs-attr">"earliestMsgPublishTimeInBacklog"</span>: <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklogNoDelayed"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"blockedSubscriptionOnUnackedMsgs"</span> : <span class="hljs-literal">false</span>,
       <span class="hljs-attr">"msgDelayed"</span> : <span class="hljs-number">0</span>,
@@ -872,7 +876,8 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 </span></div></div><div id="tab-group-1792-content-1794" class="tab-pane" data-group="group_1792" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.8.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-1792-content-1795" class="tab-pane" data-group="group_1792" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/ja/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul class="to [...]
+</span></div></div></div></div>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/ja/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul class="toc-headings"><li><a href="#list- [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/ja/next/client-libraries-go.html b/content/docs/ja/next/client-libraries-go.html
index ee65c01..2e33e10 100644
--- a/content/docs/ja/next/client-libraries-go.html
+++ b/content/docs/ja/next/client-libraries-go.html
@@ -314,6 +314,76 @@ msg, err = consumer.Receive(ctx)
 fmt.Println(msg.Payload())
 canc()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-producer"></a><a href="#how-to-use-prometheus-metrics-in-producer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>Pulsar Go client registers client metrics using Prometheus. This section demonstrates how to create a simple Pulsar producer application that exposes Prometheus metrics via HTTP.</p>
+<ol>
+<li>Write a simple producer application.</li>
+</ol>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a producer</span>
+producer, err := client.CreateProducer(pulsar.ProducerOptions{
+    Topic: <span class="hljs-string">"topic-1"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> producer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can produce messages by requesting http://localhost:8082/produce</span>
+webPort := <span class="hljs-number">8082</span>
+http.HandleFunc(<span class="hljs-string">"/produce"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msgId, err := producer.Send(ctx, &amp;pulsar.ProducerMessage{
+        Payload: []<span class="hljs-keyword">byte</span>(fmt.Sprintf(<span class="hljs-string">"hello world"</span>)),
+    })
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Published message: %v"</span>, msgId)
+        fmt.Fprintf(w, <span class="hljs-string">"Published message: %v"</span>, msgId)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="producer-configuration"></a><a href="#producer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Name | Name specify a name for the producer. If not assigned, the system will generate a globally unique name which can be access with Producer.ProducerName(). | | | Properties | Properties attach a set of application defined properties to the producer This properties will be visible in th [...]
 <h2><a class="anchor" aria-hidden="true" id="consumers"></a><a href="#consumers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
@@ -532,6 +602,74 @@ err = msg.GetSchemaValue(&amp;s)
 
 <span class="hljs-keyword">defer</span> consumer.Close()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-consumer"></a><a href="#how-to-use-prometheus-metrics-in-consumer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>In this guide, This section demonstrates how to create a simple Pulsar consumer application that exposes Prometheus metrics via HTTP. 1. Write a simple consumer application.</p>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a consumer</span>
+consumer, err := client.Subscribe(pulsar.ConsumerOptions{
+    Topic:            <span class="hljs-string">"topic-1"</span>,
+    SubscriptionName: <span class="hljs-string">"sub-1"</span>,
+    Type:             pulsar.Shared,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> consumer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can consume messages by requesting http://localhost:8083/consume</span>
+webPort := <span class="hljs-number">8083</span>
+http.HandleFunc(<span class="hljs-string">"/consume"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msg, err := consumer.Receive(ctx)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        fmt.Fprintf(w, <span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        consumer.Ack(msg)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="consumer-configuration"></a><a href="#consumer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Topics | Specify a list of topics this consumer will subscribe on. Either a topic, a list of topics or a topics pattern are required when subscribing| | | TopicsPattern | Specify a regular expression to subscribe to multiple topics under the same namespace. Either a topic, a list of topics [...]
 <h2><a class="anchor" aria-hidden="true" id="readers"></a><a href="#readers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
diff --git a/content/docs/ja/next/client-libraries-go/index.html b/content/docs/ja/next/client-libraries-go/index.html
index ee65c01..2e33e10 100644
--- a/content/docs/ja/next/client-libraries-go/index.html
+++ b/content/docs/ja/next/client-libraries-go/index.html
@@ -314,6 +314,76 @@ msg, err = consumer.Receive(ctx)
 fmt.Println(msg.Payload())
 canc()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-producer"></a><a href="#how-to-use-prometheus-metrics-in-producer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>Pulsar Go client registers client metrics using Prometheus. This section demonstrates how to create a simple Pulsar producer application that exposes Prometheus metrics via HTTP.</p>
+<ol>
+<li>Write a simple producer application.</li>
+</ol>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a producer</span>
+producer, err := client.CreateProducer(pulsar.ProducerOptions{
+    Topic: <span class="hljs-string">"topic-1"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> producer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can produce messages by requesting http://localhost:8082/produce</span>
+webPort := <span class="hljs-number">8082</span>
+http.HandleFunc(<span class="hljs-string">"/produce"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msgId, err := producer.Send(ctx, &amp;pulsar.ProducerMessage{
+        Payload: []<span class="hljs-keyword">byte</span>(fmt.Sprintf(<span class="hljs-string">"hello world"</span>)),
+    })
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Published message: %v"</span>, msgId)
+        fmt.Fprintf(w, <span class="hljs-string">"Published message: %v"</span>, msgId)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="producer-configuration"></a><a href="#producer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Name | Name specify a name for the producer. If not assigned, the system will generate a globally unique name which can be access with Producer.ProducerName(). | | | Properties | Properties attach a set of application defined properties to the producer This properties will be visible in th [...]
 <h2><a class="anchor" aria-hidden="true" id="consumers"></a><a href="#consumers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
@@ -532,6 +602,74 @@ err = msg.GetSchemaValue(&amp;s)
 
 <span class="hljs-keyword">defer</span> consumer.Close()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-consumer"></a><a href="#how-to-use-prometheus-metrics-in-consumer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>In this guide, This section demonstrates how to create a simple Pulsar consumer application that exposes Prometheus metrics via HTTP. 1. Write a simple consumer application.</p>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a consumer</span>
+consumer, err := client.Subscribe(pulsar.ConsumerOptions{
+    Topic:            <span class="hljs-string">"topic-1"</span>,
+    SubscriptionName: <span class="hljs-string">"sub-1"</span>,
+    Type:             pulsar.Shared,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> consumer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can consume messages by requesting http://localhost:8083/consume</span>
+webPort := <span class="hljs-number">8083</span>
+http.HandleFunc(<span class="hljs-string">"/consume"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msg, err := consumer.Receive(ctx)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        fmt.Fprintf(w, <span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        consumer.Ack(msg)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="consumer-configuration"></a><a href="#consumer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Topics | Specify a list of topics this consumer will subscribe on. Either a topic, a list of topics or a topics pattern are required when subscribing| | | TopicsPattern | Specify a regular expression to subscribe to multiple topics under the same namespace. Either a topic, a list of topics [...]
 <h2><a class="anchor" aria-hidden="true" id="readers"></a><a href="#readers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
diff --git a/content/docs/ko/2.8.0/client-libraries-python.html b/content/docs/ko/2.8.0/client-libraries-python.html
index 677b269..a78aac7 100644
--- a/content/docs/ko/2.8.0/client-libraries-python.html
+++ b/content/docs/ko/2.8.0/client-libraries-python.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/ko/2.8.0/client-libraries-python/index.html b/content/docs/ko/2.8.0/client-libraries-python/index.html
index 677b269..a78aac7 100644
--- a/content/docs/ko/2.8.0/client-libraries-python/index.html
+++ b/content/docs/ko/2.8.0/client-libraries-python/index.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/ko/client-libraries-python.html b/content/docs/ko/client-libraries-python.html
index 12bd517..ba6840c 100644
--- a/content/docs/ko/client-libraries-python.html
+++ b/content/docs/ko/client-libraries-python.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/ko/client-libraries-python/index.html b/content/docs/ko/client-libraries-python/index.html
index 12bd517..ba6840c 100644
--- a/content/docs/ko/client-libraries-python/index.html
+++ b/content/docs/ko/client-libraries-python/index.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/ko/next/admin-api-topics.html b/content/docs/ko/next/admin-api-topics.html
index 28fa7d2..52aa498 100644
--- a/content/docs/ko/next/admin-api-topics.html
+++ b/content/docs/ko/next/admin-api-topics.html
@@ -149,6 +149,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgThroughputOut</strong>: The sum of all local and replication consumers' dispatch rates (bytes/s).</p></li>
 <li><p><strong>averageMsgSize</strong>: The average size (in bytes) of messages published within the last interval.</p></li>
 <li><p><strong>storageSize</strong>: The sum of the ledgers' storage size for this topic. The space used to store the messages for the topic.</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklogs</strong>: The publish time of the earliest message in the backlog (ms).</p></li>
 <li><p><strong>bytesInCounter</strong>: Total bytes published to the topic.</p></li>
 <li><p><strong>msgInCounter</strong>: Total messages published to the topic.</p></li>
 <li><p><strong>bytesOutCounter</strong>: Total bytes delivered to consumers.</p></li>
@@ -193,6 +194,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgRateRedeliver</strong>: Total rate of messages redelivered on this subscription (msg/s).</p></li>
 <li><p><strong>chunkedMessageRate</strong>: Chunked message dispatch rate.</p></li>
 <li><p><strong>backlogSize</strong>: Size of backlog for this subscription (in bytes).</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklog</strong>: The publish time of the earliest message in the backlog for the subscription (ms).</p></li>
 <li><p><strong>msgBacklogNoDelayed</strong>: Number of messages in the subscription backlog that do not contain the delay messages.</p></li>
 <li><p><strong>blockedSubscriptionOnUnackedMsgs</strong>: Flag to verify if a subscription is blocked due to reaching threshold of unacked messages.</p></li>
 <li><p><strong>msgDelayed</strong>: Number of delayed messages currently being tracked.</p></li>
@@ -261,6 +263,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
   <span class="hljs-attr">"msgChunkPublished"</span> : <span class="hljs-literal">false</span>,
   <span class="hljs-attr">"storageSize"</span> : <span class="hljs-number">504</span>,
   <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+  <span class="hljs-attr">"earliestMsgPublishTimeInBacklogs"</span>: <span class="hljs-number">0</span>,
   <span class="hljs-attr">"offloadedStorageSize"</span> : <span class="hljs-number">0</span>,
   <span class="hljs-attr">"publishers"</span> : [ {
     <span class="hljs-attr">"accessMode"</span> : <span class="hljs-string">"Shared"</span>,
@@ -286,6 +289,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
       <span class="hljs-attr">"chunkedMessageRate"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklog"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+      <span class="hljs-attr">"earliestMsgPublishTimeInBacklog"</span>: <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklogNoDelayed"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"blockedSubscriptionOnUnackedMsgs"</span> : <span class="hljs-literal">false</span>,
       <span class="hljs-attr">"msgDelayed"</span> : <span class="hljs-number">0</span>,
@@ -872,7 +876,8 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 </span></div></div><div id="tab-group-2078-content-2080" class="tab-pane" data-group="group_2078" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.8.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-2078-content-2081" class="tab-pane" data-group="group_2078" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/ko/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul class="to [...]
+</span></div></div></div></div>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/ko/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul class="toc-headings"><li><a href="#list- [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/ko/next/admin-api-topics/index.html b/content/docs/ko/next/admin-api-topics/index.html
index 28fa7d2..52aa498 100644
--- a/content/docs/ko/next/admin-api-topics/index.html
+++ b/content/docs/ko/next/admin-api-topics/index.html
@@ -149,6 +149,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgThroughputOut</strong>: The sum of all local and replication consumers' dispatch rates (bytes/s).</p></li>
 <li><p><strong>averageMsgSize</strong>: The average size (in bytes) of messages published within the last interval.</p></li>
 <li><p><strong>storageSize</strong>: The sum of the ledgers' storage size for this topic. The space used to store the messages for the topic.</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklogs</strong>: The publish time of the earliest message in the backlog (ms).</p></li>
 <li><p><strong>bytesInCounter</strong>: Total bytes published to the topic.</p></li>
 <li><p><strong>msgInCounter</strong>: Total messages published to the topic.</p></li>
 <li><p><strong>bytesOutCounter</strong>: Total bytes delivered to consumers.</p></li>
@@ -193,6 +194,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgRateRedeliver</strong>: Total rate of messages redelivered on this subscription (msg/s).</p></li>
 <li><p><strong>chunkedMessageRate</strong>: Chunked message dispatch rate.</p></li>
 <li><p><strong>backlogSize</strong>: Size of backlog for this subscription (in bytes).</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklog</strong>: The publish time of the earliest message in the backlog for the subscription (ms).</p></li>
 <li><p><strong>msgBacklogNoDelayed</strong>: Number of messages in the subscription backlog that do not contain the delay messages.</p></li>
 <li><p><strong>blockedSubscriptionOnUnackedMsgs</strong>: Flag to verify if a subscription is blocked due to reaching threshold of unacked messages.</p></li>
 <li><p><strong>msgDelayed</strong>: Number of delayed messages currently being tracked.</p></li>
@@ -261,6 +263,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
   <span class="hljs-attr">"msgChunkPublished"</span> : <span class="hljs-literal">false</span>,
   <span class="hljs-attr">"storageSize"</span> : <span class="hljs-number">504</span>,
   <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+  <span class="hljs-attr">"earliestMsgPublishTimeInBacklogs"</span>: <span class="hljs-number">0</span>,
   <span class="hljs-attr">"offloadedStorageSize"</span> : <span class="hljs-number">0</span>,
   <span class="hljs-attr">"publishers"</span> : [ {
     <span class="hljs-attr">"accessMode"</span> : <span class="hljs-string">"Shared"</span>,
@@ -286,6 +289,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
       <span class="hljs-attr">"chunkedMessageRate"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklog"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+      <span class="hljs-attr">"earliestMsgPublishTimeInBacklog"</span>: <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklogNoDelayed"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"blockedSubscriptionOnUnackedMsgs"</span> : <span class="hljs-literal">false</span>,
       <span class="hljs-attr">"msgDelayed"</span> : <span class="hljs-number">0</span>,
@@ -872,7 +876,8 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 </span></div></div><div id="tab-group-2078-content-2080" class="tab-pane" data-group="group_2078" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.8.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-2078-content-2081" class="tab-pane" data-group="group_2078" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/ko/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul class="to [...]
+</span></div></div></div></div>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/ko/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul class="toc-headings"><li><a href="#list- [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/ko/next/client-libraries-go.html b/content/docs/ko/next/client-libraries-go.html
index 6d8e89b..1fdc1aa 100644
--- a/content/docs/ko/next/client-libraries-go.html
+++ b/content/docs/ko/next/client-libraries-go.html
@@ -314,6 +314,76 @@ msg, err = consumer.Receive(ctx)
 fmt.Println(msg.Payload())
 canc()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-producer"></a><a href="#how-to-use-prometheus-metrics-in-producer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>Pulsar Go client registers client metrics using Prometheus. This section demonstrates how to create a simple Pulsar producer application that exposes Prometheus metrics via HTTP.</p>
+<ol>
+<li>Write a simple producer application.</li>
+</ol>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a producer</span>
+producer, err := client.CreateProducer(pulsar.ProducerOptions{
+    Topic: <span class="hljs-string">"topic-1"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> producer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can produce messages by requesting http://localhost:8082/produce</span>
+webPort := <span class="hljs-number">8082</span>
+http.HandleFunc(<span class="hljs-string">"/produce"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msgId, err := producer.Send(ctx, &amp;pulsar.ProducerMessage{
+        Payload: []<span class="hljs-keyword">byte</span>(fmt.Sprintf(<span class="hljs-string">"hello world"</span>)),
+    })
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Published message: %v"</span>, msgId)
+        fmt.Fprintf(w, <span class="hljs-string">"Published message: %v"</span>, msgId)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="producer-configuration"></a><a href="#producer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Name | Name specify a name for the producer. If not assigned, the system will generate a globally unique name which can be access with Producer.ProducerName(). | | | Properties | Properties attach a set of application defined properties to the producer This properties will be visible in th [...]
 <h2><a class="anchor" aria-hidden="true" id="consumers"></a><a href="#consumers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
@@ -532,6 +602,74 @@ err = msg.GetSchemaValue(&amp;s)
 
 <span class="hljs-keyword">defer</span> consumer.Close()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-consumer"></a><a href="#how-to-use-prometheus-metrics-in-consumer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>In this guide, This section demonstrates how to create a simple Pulsar consumer application that exposes Prometheus metrics via HTTP. 1. Write a simple consumer application.</p>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a consumer</span>
+consumer, err := client.Subscribe(pulsar.ConsumerOptions{
+    Topic:            <span class="hljs-string">"topic-1"</span>,
+    SubscriptionName: <span class="hljs-string">"sub-1"</span>,
+    Type:             pulsar.Shared,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> consumer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can consume messages by requesting http://localhost:8083/consume</span>
+webPort := <span class="hljs-number">8083</span>
+http.HandleFunc(<span class="hljs-string">"/consume"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msg, err := consumer.Receive(ctx)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        fmt.Fprintf(w, <span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        consumer.Ack(msg)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="consumer-configuration"></a><a href="#consumer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Topics | Specify a list of topics this consumer will subscribe on. Either a topic, a list of topics or a topics pattern are required when subscribing| | | TopicsPattern | Specify a regular expression to subscribe to multiple topics under the same namespace. Either a topic, a list of topics [...]
 <h2><a class="anchor" aria-hidden="true" id="readers"></a><a href="#readers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
diff --git a/content/docs/ko/next/client-libraries-go/index.html b/content/docs/ko/next/client-libraries-go/index.html
index 6d8e89b..1fdc1aa 100644
--- a/content/docs/ko/next/client-libraries-go/index.html
+++ b/content/docs/ko/next/client-libraries-go/index.html
@@ -314,6 +314,76 @@ msg, err = consumer.Receive(ctx)
 fmt.Println(msg.Payload())
 canc()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-producer"></a><a href="#how-to-use-prometheus-metrics-in-producer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>Pulsar Go client registers client metrics using Prometheus. This section demonstrates how to create a simple Pulsar producer application that exposes Prometheus metrics via HTTP.</p>
+<ol>
+<li>Write a simple producer application.</li>
+</ol>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a producer</span>
+producer, err := client.CreateProducer(pulsar.ProducerOptions{
+    Topic: <span class="hljs-string">"topic-1"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> producer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can produce messages by requesting http://localhost:8082/produce</span>
+webPort := <span class="hljs-number">8082</span>
+http.HandleFunc(<span class="hljs-string">"/produce"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msgId, err := producer.Send(ctx, &amp;pulsar.ProducerMessage{
+        Payload: []<span class="hljs-keyword">byte</span>(fmt.Sprintf(<span class="hljs-string">"hello world"</span>)),
+    })
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Published message: %v"</span>, msgId)
+        fmt.Fprintf(w, <span class="hljs-string">"Published message: %v"</span>, msgId)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="producer-configuration"></a><a href="#producer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Name | Name specify a name for the producer. If not assigned, the system will generate a globally unique name which can be access with Producer.ProducerName(). | | | Properties | Properties attach a set of application defined properties to the producer This properties will be visible in th [...]
 <h2><a class="anchor" aria-hidden="true" id="consumers"></a><a href="#consumers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
@@ -532,6 +602,74 @@ err = msg.GetSchemaValue(&amp;s)
 
 <span class="hljs-keyword">defer</span> consumer.Close()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-consumer"></a><a href="#how-to-use-prometheus-metrics-in-consumer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>In this guide, This section demonstrates how to create a simple Pulsar consumer application that exposes Prometheus metrics via HTTP. 1. Write a simple consumer application.</p>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a consumer</span>
+consumer, err := client.Subscribe(pulsar.ConsumerOptions{
+    Topic:            <span class="hljs-string">"topic-1"</span>,
+    SubscriptionName: <span class="hljs-string">"sub-1"</span>,
+    Type:             pulsar.Shared,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> consumer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can consume messages by requesting http://localhost:8083/consume</span>
+webPort := <span class="hljs-number">8083</span>
+http.HandleFunc(<span class="hljs-string">"/consume"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msg, err := consumer.Receive(ctx)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        fmt.Fprintf(w, <span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        consumer.Ack(msg)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="consumer-configuration"></a><a href="#consumer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Topics | Specify a list of topics this consumer will subscribe on. Either a topic, a list of topics or a topics pattern are required when subscribing| | | TopicsPattern | Specify a regular expression to subscribe to multiple topics under the same namespace. Either a topic, a list of topics [...]
 <h2><a class="anchor" aria-hidden="true" id="readers"></a><a href="#readers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
diff --git a/content/docs/zh-CN/2.8.0/client-libraries-python.html b/content/docs/zh-CN/2.8.0/client-libraries-python.html
index e46c840..68c1056 100644
--- a/content/docs/zh-CN/2.8.0/client-libraries-python.html
+++ b/content/docs/zh-CN/2.8.0/client-libraries-python.html
@@ -85,14 +85,14 @@
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="可选依赖"></a><a href="#可选依赖" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <p>为了支持 Pulsar 函数或 Avro 序列化等方面,可以在  <code>pulsar-client</code> 库安装额外的可选组件。</p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> Avro 序列化</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
-#</span><span class="bash"> 函数运行时</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+#</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
-#</span><span class="bash"> 所有可行的组件</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+#</span><span class="bash"> all optional components</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/zh-CN/2.8.0/client-libraries-python/index.html b/content/docs/zh-CN/2.8.0/client-libraries-python/index.html
index e46c840..68c1056 100644
--- a/content/docs/zh-CN/2.8.0/client-libraries-python/index.html
+++ b/content/docs/zh-CN/2.8.0/client-libraries-python/index.html
@@ -85,14 +85,14 @@
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="可选依赖"></a><a href="#可选依赖" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <p>为了支持 Pulsar 函数或 Avro 序列化等方面,可以在  <code>pulsar-client</code> 库安装额外的可选组件。</p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> Avro 序列化</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
-#</span><span class="bash"> 函数运行时</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+#</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
-#</span><span class="bash"> 所有可行的组件</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+#</span><span class="bash"> all optional components</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/zh-CN/client-libraries-python.html b/content/docs/zh-CN/client-libraries-python.html
index 0cea10a..17e0e2c 100644
--- a/content/docs/zh-CN/client-libraries-python.html
+++ b/content/docs/zh-CN/client-libraries-python.html
@@ -85,14 +85,14 @@
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="可选依赖"></a><a href="#可选依赖" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <p>为了支持 Pulsar 函数或 Avro 序列化等方面,可以在  <code>pulsar-client</code> 库安装额外的可选组件。</p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> Avro 序列化</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
-#</span><span class="bash"> 函数运行时</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+#</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
-#</span><span class="bash"> 所有可行的组件</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+#</span><span class="bash"> all optional components</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/zh-CN/client-libraries-python/index.html b/content/docs/zh-CN/client-libraries-python/index.html
index 0cea10a..17e0e2c 100644
--- a/content/docs/zh-CN/client-libraries-python/index.html
+++ b/content/docs/zh-CN/client-libraries-python/index.html
@@ -85,14 +85,14 @@
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="可选依赖"></a><a href="#可选依赖" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <p>为了支持 Pulsar 函数或 Avro 序列化等方面,可以在  <code>pulsar-client</code> 库安装额外的可选组件。</p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> Avro 序列化</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
-#</span><span class="bash"> 函数运行时</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+#</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
-#</span><span class="bash"> 所有可行的组件</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+#</span><span class="bash"> all optional components</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/zh-CN/next/admin-api-topics.html b/content/docs/zh-CN/next/admin-api-topics.html
index b6373d1..ea2fa5f 100644
--- a/content/docs/zh-CN/next/admin-api-topics.html
+++ b/content/docs/zh-CN/next/admin-api-topics.html
@@ -150,31 +150,32 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <li><p><strong>msgThroughputOut</strong>:所有本地和副本消费者每秒调度消息字节数之和(byte/s)。</p></li>
 <li><p><strong>averageMsgSize</strong>:在最近时间间隔内发布消息的平均大小(以字节为单位)。</p></li>
 <li><p><strong>storageSize</strong>:当前 topic 对应 ledger 存储大小之和。 用于存储该主题消息的空间。</p></li>
-<li><p><strong>bytesInCounter</strong>: 发布到 topic 的字节数。</p></li>
-<li><p><strong>msgInCounter</strong>: 已发布的消息总数。</p></li>
-<li><p><strong>bytesOutCounter</strong>: 发送到消费者的总字节数。</p></li>
-<li><p><strong>msgOutCounter</strong>: 已向消费者发布的消息总数。</p></li>
-<li><p><strong>msgChunkPublished</strong>: Topic上发布了消息块。</p></li>
-<li><p><strong>backlogSize</strong>: 估计的未消费或积压的总大小(字节)。</p></li>
-<li><p><strong>offloadedStorageSize</strong>: 用于存储该离载topic的信息的空间(以字节为单位)。</p></li>
-<li><p><strong>waitingPublishers</strong>: 在排他性访问模式下,在队列中等待的生产者数量。</p></li>
-<li><p><strong>deduplicationStatus</strong>: topic的消息重复处理的状态。</p></li>
-<li><p><strong>topicEpoch</strong>: 如果没有设置,topic默认或者为空</p></li>
-<li><p><strong>non-Conquired Messagesranges</strong>: 非连续删除消息的数量范围。</p></li>
-<li><p><strong>non-Conquired Messagesranges</strong>: 非连续已删除消息范围的序列化大小。</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklogs</strong>: The publish time of the earliest message in the backlog (ms).</p></li>
+<li><p><strong>bytesInCounter</strong>: Total bytes published to the topic.</p></li>
+<li><p><strong>msgInCounter</strong>: Total messages published to the topic.</p></li>
+<li><p><strong>bytesOutCounter</strong>: Total bytes delivered to consumers.</p></li>
+<li><p><strong>msgOutCounter</strong>: Total messages delivered to consumers.</p></li>
+<li><p><strong>msgChunkPublished</strong>: Topic has chunked message published on it.</p></li>
+<li><p><strong>backlogSize</strong>: Estimated total unconsumed or backlog size (in bytes).</p></li>
+<li><p><strong>offloadedStorageSize</strong>: Space used to store the offloaded messages for the topic (in bytes).</p></li>
+<li><p><strong>waitingPublishers</strong>: The number of publishers waiting in a queue in exclusive access mode.</p></li>
+<li><p><strong>deduplicationStatus</strong>: The status of message deduplication for the topic.</p></li>
+<li><p><strong>topicEpoch</strong>: The topic epoch or empty if not set.</p></li>
+<li><p><strong>nonContiguousDeletedMessagesRanges</strong>: The number of non-contiguous deleted messages ranges.</p></li>
+<li><p><strong>nonContiguousDeletedMessagesRangesSerializedSize</strong>: The serialized size of non-contiguous deleted messages ranges.</p></li>
 <li><p><strong>publishers</strong>: The list of all local publishers into the topic. 该列表的范围从零到千不等。</p>
 <ul>
-<li><p>** accessMode**: 生产者需要的主题访问类型。</p></li>
+<li><p><strong>accessMode</strong>: The type of access to the topic that the producer requires.</p></li>
 <li><p><strong>msgRateIn</strong>:发布者每秒发布消息的总速率(msg/s)。</p></li>
 <li><p><strong>msgThroughputIn</strong>:发布者发布消息的总吞吐量(byte/s)。</p></li>
 <li><p><strong>averageMsgSize</strong>:发布者在最近时间间隔内发布消息的平均大小(以字节为单位)。</p></li>
-<li><p><strong>chunkedMessageRate</strong>: 此生产者收到的有关此主题的总分块消息数。</p></li>
+<li><p><strong>chunkedMessageRate</strong>: Total chunked message count received for this producer on this topic.</p></li>
 <li><p><strong>producerId</strong>:该主题对应的生产者内部识别号。</p></li>
 <li><p><strong>producerName</strong>:由客户端生成的生产者内部识别名称。</p></li>
 <li><p><strong>address</strong>:连接生产者所需的 IP 地址和端口号。</p></li>
 <li><p><strong>connectedSince</strong>:生产者上次创建或者重新连接时的时间戳。</p></li>
-<li><p>** clientVersion**: 生产者客户端库的版本。</p></li>
-<li><p>** metadata **: 与发布者关联的元数据(键/值字符串)。</p></li>
+<li><p><strong>clientVersion</strong>: The client library version of this producer.</p></li>
+<li><p><strong>metadata</strong>: Metadata (key/value strings) associated with this publisher.</p></li>
 </ul></li>
 <li><p><strong>subscriptions</strong>:该主题下的所有本地订阅列表。</p>
 <ul>
@@ -189,25 +190,26 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <li><p><strong>lastConsumedFlowTimestamp</strong>:收到的最后一条流量指令的时间戳。</p></li>
 <li><p><strong>lastConsumedTimestamp</strong>:消费者所有已消费消息的最新时间戳。</p></li>
 <li><p><strong>lastAckedTimestamp</strong>:消费者所有已被 ack 消息的最新时间戳</p></li>
-<li><p><strong>bytesOutCounter</strong>: 发送到消费者的字节总数。</p></li>
-<li><p><strong>msgOutCounter</strong>: 已向消费者发布的消息总数。</p></li>
-<li><p><strong>msgRateOut</strong>:在此订阅中发送消息的总速率 (msg/s) 。</p></li>
-<li><p><strong>chunkedMessageRate</strong>: Chunked 消息发送率。</p></li>
-<li><p><strong>积压大小</strong>: 此订阅的积压大小(字节)。</p></li>
-<li><p><strong>msgBacklogNoDelayed</strong>: 订阅积压中不包含延迟消息的消息数量。</p></li>
-<li><p><strong>blockedConsumerOnUnackedMsgs</strong>:用于验证订阅是否因达到未确认消息阈值而被阻止的标志。</p></li>
-<li><p><strong>msgDelayed</strong>: 当前正在跟踪的延迟消息数量。</p></li>
-<li><p><strong>unackedMessages</strong>:消费者未确认消息的数量。</p></li>
-<li><p><strong>activeConsumerName</strong>: 一个活动消费者订阅中处于活动状态的消费者的名称。 例如, failover 或者 exclusive</p></li>
-<li><p><strong>totalMsgExpired</strong>: 此订阅过期的消息总数。</p></li>
-<li><p><strong>last MarkDeleteAdvancedTimestamp</strong>: 最后标记删除位置的高级时间戳。</p></li>
-<li><p><strong>durable</strong>: 订阅是持久的还是短暂的(例如来自一个reader)。</p></li>
-<li><p><strong>replicated</strong>: 标记订阅状态在不同区域保持同步。</p></li>
-<li><p>** allowOutOfOrderDelivery **: Key_Shared订阅器是否允许无序传递。</p></li>
-<li><p>** keySharedMode **: Key_Shared 订阅模式是AUTO_SPLIT(自动拆分)还是STICKY(粘性)。</p></li>
-<li><p><strong>消费者AfterMarkDeletePosition</strong>: 这是Key_Shared 订阅的,以便在Key_Shared 订阅中获得最近加入的消费者。</p></li>
-<li><p><strong>non-Conquired Messagesranges</strong>: 非连续删除消息的数量范围。</p></li>
-<li><p><strong>non-Conquired Messagesranges</strong>: 非连续已删除消息范围的序列化大小。</p></li>
+<li><p><strong>bytesOutCounter</strong>: Total bytes delivered to consumer.</p></li>
+<li><p><strong>msgOutCounter</strong>: Total messages delivered to consumer.</p></li>
+<li><p><strong>msgRateRedeliver</strong>: Total rate of messages redelivered on this subscription (msg/s).</p></li>
+<li><p><strong>chunkedMessageRate</strong>: Chunked message dispatch rate.</p></li>
+<li><p><strong>backlogSize</strong>: Size of backlog for this subscription (in bytes).</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklog</strong>: The publish time of the earliest message in the backlog for the subscription (ms).</p></li>
+<li><p><strong>msgBacklogNoDelayed</strong>: Number of messages in the subscription backlog that do not contain the delay messages.</p></li>
+<li><p><strong>blockedSubscriptionOnUnackedMsgs</strong>: Flag to verify if a subscription is blocked due to reaching threshold of unacked messages.</p></li>
+<li><p><strong>msgDelayed</strong>: Number of delayed messages currently being tracked.</p></li>
+<li><p><strong>unackedMessages</strong>: Number of unacknowledged messages for the subscription.</p></li>
+<li><p><strong>activeConsumerName</strong>: The name of the consumer that is active for single active consumer subscriptions. For example, failover or exclusive.</p></li>
+<li><p><strong>totalMsgExpired</strong>: Total messages expired on this subscription.</p></li>
+<li><p><strong>lastMarkDeleteAdvancedTimestamp</strong>: Last MarkDelete position advanced timestamp.</p></li>
+<li><p><strong>durable</strong>: Whether the subscription is durable or ephemeral (for example, from a reader).</p></li>
+<li><p><strong>replicated</strong>: Mark that the subscription state is kept in sync across different regions.</p></li>
+<li><p><strong>allowOutOfOrderDelivery</strong>: Whether out of order delivery is allowed on the Key_Shared subscription.</p></li>
+<li><p><strong>keySharedMode</strong>: Whether the Key_Shared subscription mode is AUTO_SPLIT or STICKY.</p></li>
+<li><p><strong>consumersAfterMarkDeletePosition</strong>: This is for Key_Shared subscription to get the recentJoinedConsumers in the Key_Shared subscription.</p></li>
+<li><p><strong>nonContiguousDeletedMessagesRanges</strong>: The number of non-contiguous deleted messages ranges.</p></li>
+<li><p><strong>nonContiguousDeletedMessagesRangesSerializedSize</strong>: The serialized size of non-contiguous deleted messages ranges.</p></li>
 <li><p><strong>consumers</strong>:连接到此订阅的消费者列表。</p>
 <ul>
 <li><p><strong>msgRateOut</strong>:发送给消费者的消息总速率(msg/s)。</p></li>
@@ -218,17 +220,17 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <li><p><strong>blockedConsumerOnUnackedMsgs</strong>:验证消费者是否因达到未确认消息数的阀值而被阻塞。</p></li>
 <li><p><strong>lastConsumedTimestamp</strong>:消费者最后一次读取消息的时间戳。</p></li>
 <li><p><strong>lastAckedTimestamp</strong>:消费者最后一次确认消息的时间戳。</p></li>
-<li><p><strong>address</strong>:连接生产者所需的 IP 地址和端口号。</p></li>
-<li><p><strong>connectedSince</strong>:生产者上次创建或者重新连接时的时间戳。</p></li>
-<li><p>** clientVersion**: 生产者客户端库的版本。</p></li>
-<li><p><strong>bytesOutCounter</strong>: 发送到消费者的字节总数。</p></li>
-<li><p><strong>msgOutCounter</strong>: 已向消费者发布的消息总数。</p></li>
-<li><p><strong>msgRateOut</strong>:消费者到达消息的总速率 (msg/s) 。</p></li>
-<li><p><strong>chunkedMessageRate</strong>: 已分发 chunked 总数。</p></li>
-<li><p><strong>avgMessagesPerentre</strong>: 消费者平均每次进入的消息数量。</p></li>
-<li><p><strong>readPositionWhenjoining</strong>: 当新的消费者加入时游标的读取位置。</p></li>
-<li><p><strong>keyHashRanges</strong>: 如果是Key_Shared 子模式,指派给该消费者的哈希范围。</p></li>
-<li><p>** metadata **: 与消费者关联的元数据(键/值字符串)。</p></li>
+<li><p><strong>address</strong>: The IP address and source port for the connection of this consumer.</p></li>
+<li><p><strong>connectedSince</strong>: The timestamp when this consumer is created or reconnected last time.</p></li>
+<li><p><strong>clientVersion</strong>: The client library version of this consumer.</p></li>
+<li><p><strong>bytesOutCounter</strong>: Total bytes delivered to consumer.</p></li>
+<li><p><strong>msgOutCounter</strong>: Total messages delivered to consumer.</p></li>
+<li><p><strong>msgRateRedeliver</strong>: Total rate of messages redelivered by this consumer (msg/s).</p></li>
+<li><p><strong>chunkedMessageRate</strong>: Total chunked messages dispatched.</p></li>
+<li><p><strong>avgMessagesPerEntry</strong>: Number of average messages per entry for the consumer consumed.</p></li>
+<li><p><strong>readPositionWhenJoining</strong>: The read position of the cursor when the consumer joining.</p></li>
+<li><p><strong>keyHashRanges</strong>: Hash ranges assigned to this consumer if is Key_Shared sub mode.</p></li>
+<li><p><strong>metadata</strong>: Metadata (key/value strings) associated with this consumer.</p></li>
 </ul></li>
 </ul></li>
 </ul></li>
@@ -262,6 +264,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
   <span class="hljs-attr">"msgChunkPublished"</span> : <span class="hljs-literal">false</span>,
   <span class="hljs-attr">"storageSize"</span> : <span class="hljs-number">504</span>,
   <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+  <span class="hljs-attr">"earliestMsgPublishTimeInBacklogs"</span>: <span class="hljs-number">0</span>,
   <span class="hljs-attr">"offloadedStorageSize"</span> : <span class="hljs-number">0</span>,
   <span class="hljs-attr">"publishers"</span> : [ {
     <span class="hljs-attr">"accessMode"</span> : <span class="hljs-string">"Shared"</span>,
@@ -287,6 +290,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
       <span class="hljs-attr">"chunkedMessageRate"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklog"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+      <span class="hljs-attr">"earliestMsgPublishTimeInBacklog"</span>: <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklogNoDelayed"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"blockedSubscriptionOnUnackedMsgs"</span> : <span class="hljs-literal">false</span>,
       <span class="hljs-attr">"msgDelayed"</span> : <span class="hljs-number">0</span>,
@@ -873,7 +877,8 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 </span></div></div><div id="tab-group-2221-content-2223" class="tab-pane" data-group="group_2221" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.8.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-2221-content-2224" class="tab-pane" data-group="group_2221" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#管理主题资源">管理主题资源</a><ul class="toc-headings"><li><a href="#列出-topi [...]
+</span></div></div></div></div>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#管理主题资源">管理主题资源</a><ul class="toc-headings"><li><a href="#列出-topic">列出 topic</a></li><li><a href [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/admin-api-topics/index.html b/content/docs/zh-CN/next/admin-api-topics/index.html
index b6373d1..ea2fa5f 100644
--- a/content/docs/zh-CN/next/admin-api-topics/index.html
+++ b/content/docs/zh-CN/next/admin-api-topics/index.html
@@ -150,31 +150,32 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <li><p><strong>msgThroughputOut</strong>:所有本地和副本消费者每秒调度消息字节数之和(byte/s)。</p></li>
 <li><p><strong>averageMsgSize</strong>:在最近时间间隔内发布消息的平均大小(以字节为单位)。</p></li>
 <li><p><strong>storageSize</strong>:当前 topic 对应 ledger 存储大小之和。 用于存储该主题消息的空间。</p></li>
-<li><p><strong>bytesInCounter</strong>: 发布到 topic 的字节数。</p></li>
-<li><p><strong>msgInCounter</strong>: 已发布的消息总数。</p></li>
-<li><p><strong>bytesOutCounter</strong>: 发送到消费者的总字节数。</p></li>
-<li><p><strong>msgOutCounter</strong>: 已向消费者发布的消息总数。</p></li>
-<li><p><strong>msgChunkPublished</strong>: Topic上发布了消息块。</p></li>
-<li><p><strong>backlogSize</strong>: 估计的未消费或积压的总大小(字节)。</p></li>
-<li><p><strong>offloadedStorageSize</strong>: 用于存储该离载topic的信息的空间(以字节为单位)。</p></li>
-<li><p><strong>waitingPublishers</strong>: 在排他性访问模式下,在队列中等待的生产者数量。</p></li>
-<li><p><strong>deduplicationStatus</strong>: topic的消息重复处理的状态。</p></li>
-<li><p><strong>topicEpoch</strong>: 如果没有设置,topic默认或者为空</p></li>
-<li><p><strong>non-Conquired Messagesranges</strong>: 非连续删除消息的数量范围。</p></li>
-<li><p><strong>non-Conquired Messagesranges</strong>: 非连续已删除消息范围的序列化大小。</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklogs</strong>: The publish time of the earliest message in the backlog (ms).</p></li>
+<li><p><strong>bytesInCounter</strong>: Total bytes published to the topic.</p></li>
+<li><p><strong>msgInCounter</strong>: Total messages published to the topic.</p></li>
+<li><p><strong>bytesOutCounter</strong>: Total bytes delivered to consumers.</p></li>
+<li><p><strong>msgOutCounter</strong>: Total messages delivered to consumers.</p></li>
+<li><p><strong>msgChunkPublished</strong>: Topic has chunked message published on it.</p></li>
+<li><p><strong>backlogSize</strong>: Estimated total unconsumed or backlog size (in bytes).</p></li>
+<li><p><strong>offloadedStorageSize</strong>: Space used to store the offloaded messages for the topic (in bytes).</p></li>
+<li><p><strong>waitingPublishers</strong>: The number of publishers waiting in a queue in exclusive access mode.</p></li>
+<li><p><strong>deduplicationStatus</strong>: The status of message deduplication for the topic.</p></li>
+<li><p><strong>topicEpoch</strong>: The topic epoch or empty if not set.</p></li>
+<li><p><strong>nonContiguousDeletedMessagesRanges</strong>: The number of non-contiguous deleted messages ranges.</p></li>
+<li><p><strong>nonContiguousDeletedMessagesRangesSerializedSize</strong>: The serialized size of non-contiguous deleted messages ranges.</p></li>
 <li><p><strong>publishers</strong>: The list of all local publishers into the topic. 该列表的范围从零到千不等。</p>
 <ul>
-<li><p>** accessMode**: 生产者需要的主题访问类型。</p></li>
+<li><p><strong>accessMode</strong>: The type of access to the topic that the producer requires.</p></li>
 <li><p><strong>msgRateIn</strong>:发布者每秒发布消息的总速率(msg/s)。</p></li>
 <li><p><strong>msgThroughputIn</strong>:发布者发布消息的总吞吐量(byte/s)。</p></li>
 <li><p><strong>averageMsgSize</strong>:发布者在最近时间间隔内发布消息的平均大小(以字节为单位)。</p></li>
-<li><p><strong>chunkedMessageRate</strong>: 此生产者收到的有关此主题的总分块消息数。</p></li>
+<li><p><strong>chunkedMessageRate</strong>: Total chunked message count received for this producer on this topic.</p></li>
 <li><p><strong>producerId</strong>:该主题对应的生产者内部识别号。</p></li>
 <li><p><strong>producerName</strong>:由客户端生成的生产者内部识别名称。</p></li>
 <li><p><strong>address</strong>:连接生产者所需的 IP 地址和端口号。</p></li>
 <li><p><strong>connectedSince</strong>:生产者上次创建或者重新连接时的时间戳。</p></li>
-<li><p>** clientVersion**: 生产者客户端库的版本。</p></li>
-<li><p>** metadata **: 与发布者关联的元数据(键/值字符串)。</p></li>
+<li><p><strong>clientVersion</strong>: The client library version of this producer.</p></li>
+<li><p><strong>metadata</strong>: Metadata (key/value strings) associated with this publisher.</p></li>
 </ul></li>
 <li><p><strong>subscriptions</strong>:该主题下的所有本地订阅列表。</p>
 <ul>
@@ -189,25 +190,26 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <li><p><strong>lastConsumedFlowTimestamp</strong>:收到的最后一条流量指令的时间戳。</p></li>
 <li><p><strong>lastConsumedTimestamp</strong>:消费者所有已消费消息的最新时间戳。</p></li>
 <li><p><strong>lastAckedTimestamp</strong>:消费者所有已被 ack 消息的最新时间戳</p></li>
-<li><p><strong>bytesOutCounter</strong>: 发送到消费者的字节总数。</p></li>
-<li><p><strong>msgOutCounter</strong>: 已向消费者发布的消息总数。</p></li>
-<li><p><strong>msgRateOut</strong>:在此订阅中发送消息的总速率 (msg/s) 。</p></li>
-<li><p><strong>chunkedMessageRate</strong>: Chunked 消息发送率。</p></li>
-<li><p><strong>积压大小</strong>: 此订阅的积压大小(字节)。</p></li>
-<li><p><strong>msgBacklogNoDelayed</strong>: 订阅积压中不包含延迟消息的消息数量。</p></li>
-<li><p><strong>blockedConsumerOnUnackedMsgs</strong>:用于验证订阅是否因达到未确认消息阈值而被阻止的标志。</p></li>
-<li><p><strong>msgDelayed</strong>: 当前正在跟踪的延迟消息数量。</p></li>
-<li><p><strong>unackedMessages</strong>:消费者未确认消息的数量。</p></li>
-<li><p><strong>activeConsumerName</strong>: 一个活动消费者订阅中处于活动状态的消费者的名称。 例如, failover 或者 exclusive</p></li>
-<li><p><strong>totalMsgExpired</strong>: 此订阅过期的消息总数。</p></li>
-<li><p><strong>last MarkDeleteAdvancedTimestamp</strong>: 最后标记删除位置的高级时间戳。</p></li>
-<li><p><strong>durable</strong>: 订阅是持久的还是短暂的(例如来自一个reader)。</p></li>
-<li><p><strong>replicated</strong>: 标记订阅状态在不同区域保持同步。</p></li>
-<li><p>** allowOutOfOrderDelivery **: Key_Shared订阅器是否允许无序传递。</p></li>
-<li><p>** keySharedMode **: Key_Shared 订阅模式是AUTO_SPLIT(自动拆分)还是STICKY(粘性)。</p></li>
-<li><p><strong>消费者AfterMarkDeletePosition</strong>: 这是Key_Shared 订阅的,以便在Key_Shared 订阅中获得最近加入的消费者。</p></li>
-<li><p><strong>non-Conquired Messagesranges</strong>: 非连续删除消息的数量范围。</p></li>
-<li><p><strong>non-Conquired Messagesranges</strong>: 非连续已删除消息范围的序列化大小。</p></li>
+<li><p><strong>bytesOutCounter</strong>: Total bytes delivered to consumer.</p></li>
+<li><p><strong>msgOutCounter</strong>: Total messages delivered to consumer.</p></li>
+<li><p><strong>msgRateRedeliver</strong>: Total rate of messages redelivered on this subscription (msg/s).</p></li>
+<li><p><strong>chunkedMessageRate</strong>: Chunked message dispatch rate.</p></li>
+<li><p><strong>backlogSize</strong>: Size of backlog for this subscription (in bytes).</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklog</strong>: The publish time of the earliest message in the backlog for the subscription (ms).</p></li>
+<li><p><strong>msgBacklogNoDelayed</strong>: Number of messages in the subscription backlog that do not contain the delay messages.</p></li>
+<li><p><strong>blockedSubscriptionOnUnackedMsgs</strong>: Flag to verify if a subscription is blocked due to reaching threshold of unacked messages.</p></li>
+<li><p><strong>msgDelayed</strong>: Number of delayed messages currently being tracked.</p></li>
+<li><p><strong>unackedMessages</strong>: Number of unacknowledged messages for the subscription.</p></li>
+<li><p><strong>activeConsumerName</strong>: The name of the consumer that is active for single active consumer subscriptions. For example, failover or exclusive.</p></li>
+<li><p><strong>totalMsgExpired</strong>: Total messages expired on this subscription.</p></li>
+<li><p><strong>lastMarkDeleteAdvancedTimestamp</strong>: Last MarkDelete position advanced timestamp.</p></li>
+<li><p><strong>durable</strong>: Whether the subscription is durable or ephemeral (for example, from a reader).</p></li>
+<li><p><strong>replicated</strong>: Mark that the subscription state is kept in sync across different regions.</p></li>
+<li><p><strong>allowOutOfOrderDelivery</strong>: Whether out of order delivery is allowed on the Key_Shared subscription.</p></li>
+<li><p><strong>keySharedMode</strong>: Whether the Key_Shared subscription mode is AUTO_SPLIT or STICKY.</p></li>
+<li><p><strong>consumersAfterMarkDeletePosition</strong>: This is for Key_Shared subscription to get the recentJoinedConsumers in the Key_Shared subscription.</p></li>
+<li><p><strong>nonContiguousDeletedMessagesRanges</strong>: The number of non-contiguous deleted messages ranges.</p></li>
+<li><p><strong>nonContiguousDeletedMessagesRangesSerializedSize</strong>: The serialized size of non-contiguous deleted messages ranges.</p></li>
 <li><p><strong>consumers</strong>:连接到此订阅的消费者列表。</p>
 <ul>
 <li><p><strong>msgRateOut</strong>:发送给消费者的消息总速率(msg/s)。</p></li>
@@ -218,17 +220,17 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <li><p><strong>blockedConsumerOnUnackedMsgs</strong>:验证消费者是否因达到未确认消息数的阀值而被阻塞。</p></li>
 <li><p><strong>lastConsumedTimestamp</strong>:消费者最后一次读取消息的时间戳。</p></li>
 <li><p><strong>lastAckedTimestamp</strong>:消费者最后一次确认消息的时间戳。</p></li>
-<li><p><strong>address</strong>:连接生产者所需的 IP 地址和端口号。</p></li>
-<li><p><strong>connectedSince</strong>:生产者上次创建或者重新连接时的时间戳。</p></li>
-<li><p>** clientVersion**: 生产者客户端库的版本。</p></li>
-<li><p><strong>bytesOutCounter</strong>: 发送到消费者的字节总数。</p></li>
-<li><p><strong>msgOutCounter</strong>: 已向消费者发布的消息总数。</p></li>
-<li><p><strong>msgRateOut</strong>:消费者到达消息的总速率 (msg/s) 。</p></li>
-<li><p><strong>chunkedMessageRate</strong>: 已分发 chunked 总数。</p></li>
-<li><p><strong>avgMessagesPerentre</strong>: 消费者平均每次进入的消息数量。</p></li>
-<li><p><strong>readPositionWhenjoining</strong>: 当新的消费者加入时游标的读取位置。</p></li>
-<li><p><strong>keyHashRanges</strong>: 如果是Key_Shared 子模式,指派给该消费者的哈希范围。</p></li>
-<li><p>** metadata **: 与消费者关联的元数据(键/值字符串)。</p></li>
+<li><p><strong>address</strong>: The IP address and source port for the connection of this consumer.</p></li>
+<li><p><strong>connectedSince</strong>: The timestamp when this consumer is created or reconnected last time.</p></li>
+<li><p><strong>clientVersion</strong>: The client library version of this consumer.</p></li>
+<li><p><strong>bytesOutCounter</strong>: Total bytes delivered to consumer.</p></li>
+<li><p><strong>msgOutCounter</strong>: Total messages delivered to consumer.</p></li>
+<li><p><strong>msgRateRedeliver</strong>: Total rate of messages redelivered by this consumer (msg/s).</p></li>
+<li><p><strong>chunkedMessageRate</strong>: Total chunked messages dispatched.</p></li>
+<li><p><strong>avgMessagesPerEntry</strong>: Number of average messages per entry for the consumer consumed.</p></li>
+<li><p><strong>readPositionWhenJoining</strong>: The read position of the cursor when the consumer joining.</p></li>
+<li><p><strong>keyHashRanges</strong>: Hash ranges assigned to this consumer if is Key_Shared sub mode.</p></li>
+<li><p><strong>metadata</strong>: Metadata (key/value strings) associated with this consumer.</p></li>
 </ul></li>
 </ul></li>
 </ul></li>
@@ -262,6 +264,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
   <span class="hljs-attr">"msgChunkPublished"</span> : <span class="hljs-literal">false</span>,
   <span class="hljs-attr">"storageSize"</span> : <span class="hljs-number">504</span>,
   <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+  <span class="hljs-attr">"earliestMsgPublishTimeInBacklogs"</span>: <span class="hljs-number">0</span>,
   <span class="hljs-attr">"offloadedStorageSize"</span> : <span class="hljs-number">0</span>,
   <span class="hljs-attr">"publishers"</span> : [ {
     <span class="hljs-attr">"accessMode"</span> : <span class="hljs-string">"Shared"</span>,
@@ -287,6 +290,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
       <span class="hljs-attr">"chunkedMessageRate"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklog"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+      <span class="hljs-attr">"earliestMsgPublishTimeInBacklog"</span>: <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklogNoDelayed"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"blockedSubscriptionOnUnackedMsgs"</span> : <span class="hljs-literal">false</span>,
       <span class="hljs-attr">"msgDelayed"</span> : <span class="hljs-number">0</span>,
@@ -873,7 +877,8 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 </span></div></div><div id="tab-group-2221-content-2223" class="tab-pane" data-group="group_2221" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.8.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-2221-content-2224" class="tab-pane" data-group="group_2221" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#管理主题资源">管理主题资源</a><ul class="toc-headings"><li><a href="#列出-topi [...]
+</span></div></div></div></div>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#管理主题资源">管理主题资源</a><ul class="toc-headings"><li><a href="#列出-topic">列出 topic</a></li><li><a href [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/administration-load-balance.html b/content/docs/zh-CN/next/administration-load-balance.html
index 3e61e2c..54e8085 100644
--- a/content/docs/zh-CN/next/administration-load-balance.html
+++ b/content/docs/zh-CN/next/administration-load-balance.html
@@ -155,13 +155,13 @@
 # 防止同一个主题,在同一个时间窗口,被多次迁移的时间间隔。</span>
 <span class="hljs-attr">loadBalancerSheddingGracePeriodMinutes</span>=<span class="hljs-string">30</span>
 </code></pre>
-<p>Pulsar supports three types of shedding strategies:</p>
+<p>Pulsar 支持三种切分(shedding) 策略:</p>
 <h5><a class="anchor" aria-hidden="true" id="thresholdshedder"></a><a href="#thresholdshedder" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>This strategy tends to shed the bundles if any broker's usage is above the configured threshold. It does this by first computing the average resource usage per broker for the whole cluster. The resource usage for each broker is calculated using the following method: LocalBrokerData#getMaxResourceUsageWithWeight). The weights for each resource are configurable. Historical observations are included in the running average based on the broker's setting for loadBalancerHistoryResourcePerce [...]
+<p>如果任意 broker 的使用率高于配置的阈值,此策略就会切分出 bundle。 它实现该目标的做法是:首先计算整个集群中每个 broker 的平均资源使用率。 每个 broker 的资源使用情况使用如示方法计算:LocalBrokerData#getMaxResourceUsageWithWeight()。 每种资源的权重是可配置的。 根据 broeker 的 loadBalancerHistoryResourcePercentage 的设置,历史观测值被包含在运行时的平均值中。 一旦计算出平均资源使用量,将 broker 的当前/历史使用量和 broker 的平均使用量进行比较。 如果 broker 的使用率大于每个 broker 的平均使用率加上 loadBalancerBrokerThresholdShedderPercentage 后的值,该负载 shedder 会建议移除足够多的 bundle,将卸载的 broker 提升到当前平均 broker 使用率以下。 请注意,最近卸载的 bundle 不会被再次卸载。 使用以下值配置 broker 来启用此策 [...]
 <h5><a class="anchor" aria-hidden="true" id="overloadshedder"></a><a href="#overloadshedder" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
-<p>This strategy will attempt to shed exactly one bundle on brokers which are overloaded, that is, whose maximum system resource usage exceeds loadBalancerBrokerOverloadedThresholdPercentage. To see which resources are considered when determining the maximum system resource. A bundle is recommended for unloading off that broker if and only if the following conditions hold: The broker has at least two bundles assigned and the broker has at least one bundle that has not been unloaded recen [...]
+<p>该策略将尝试在过载的 broker 上切分一个 bundle,也就是说,相应 broker 的最大系统资源使用量超过了loadBalancerBrokerOverloadedThresholdPercentage。 看看在确定最大系统资源时要考虑哪些资源。 当且仅当以下条件成立时,才建议将一个 bundle 从该 broker 卸载:broker 至少分配了两个 bundle,同时根据 LoadBalancerSheddingGracePeriodMinutes 配置,该 borker 至少有一个 bundle 最近没有被卸载。 从消息速率考虑,卸载的 bundle 将是最近未卸载的最昂贵的 bundle。 请注意,该策略在决定卸载哪些 bundle 时不考虑“负载不足”的 broker。 如果你想找一种在所有 broker 之间平均分配负载的策略,请参阅 ThresholdShedder。 使用以下值配置 broker 来启用此策略。 <code>loadBalancerLoadSheddingStrategy=org.apache.pulsar.broker. [...]
 <h5><a class="anchor" aria-hidden="true" id="uniformloadshedder"></a><a href="#uniformloadshedder" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<p>This strategy tends to distribute load uniformly across all brokers. This strategy checks laod difference between broker with highest load and broker with lowest load. If the difference is higher than configured thresholds <code>loadBalancerMsgRateDifferenceShedderThreshold</code> and <code>loadBalancerMsgThroughputMultiplierDifferenceShedderThreshold</code> then it finds out bundles which can be unloaded to distribute traffic evenly across all brokers. Configure broker with below val [...]
+<p>此策略倾向于在所有 broker 之间均匀分配负载。 此策略检查负载最高的 broker 和负载最低的 broker 之间的负载差值。 如果差值高于配置的阈值 <code>loadBalancerMsgRateDifferenceShedderThreshol</code> 和 <code>loadBalancerMsghputMultiplierrenceShedderThreshol</code>,那么该策略找出可以卸载的 bundle,以便在所有 broker 之间均匀分配流量。 使用以下值配置 broker 来启用此策略。 <code>loadBalancerLoadSheddingStrategy=org.apache.pulsar.broker.loadbalance.impl.UniformLoadShedder</code></p>
 <h4><a class="anchor" aria-hidden="true" id="broker-过载阈值"></a><a href="#broker-过载阈值" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
 <p>Broker 是基于 CPU、网络和内存使用的阈值来判断是否过载的。 当其中任何一个指标超过阈值时,将会触发切分操作(如果允许的话)。</p>
 <p>默认情况下,负载阈值设置为85%:</p>
@@ -169,7 +169,7 @@
 <span class="hljs-attr">loadBalancerBrokerOverloadedThresholdPercentage</span>=<span class="hljs-string">85</span>
 </code></pre>
 <p>Pulsar 会从系统中采集这些指标的使用情况。</p>
-<p>In case of network utilization, in some cases the network interface speed that Linux reports is not correct and needs to be manually overridden. This is the case in AWS EC2 instances with 1Gbps NIC speed for which the OS reports 10Gbps speed.</p>
+<p>有一种特殊的情况需要注意。以网络指标为例,在某些情况下,Linux 上报的网络接口速率是不正确的,那就必须手动指定该值。 AWS EC2 实例就是这种情况,它的网卡是 1Gbps的,但是系统上报的是 10Gbps。</p>
 <p>因为最大的速度是不正确的, Pulsar 负载管理器会认为 broker 还没到达到网卡的最大服务能力,实际上 broker 已经使用完了网卡的所有资源,此时网络传输就会变慢。</p>
 <p>你能够使用如下配置项设置网卡的最大速度:</p>
 <pre><code class="hljs css language-properties"><span class="hljs-comment"># 覆盖自动获取的网卡最大速度</span>
diff --git a/content/docs/zh-CN/next/administration-load-balance/index.html b/content/docs/zh-CN/next/administration-load-balance/index.html
index 3e61e2c..54e8085 100644
--- a/content/docs/zh-CN/next/administration-load-balance/index.html
+++ b/content/docs/zh-CN/next/administration-load-balance/index.html
@@ -155,13 +155,13 @@
 # 防止同一个主题,在同一个时间窗口,被多次迁移的时间间隔。</span>
 <span class="hljs-attr">loadBalancerSheddingGracePeriodMinutes</span>=<span class="hljs-string">30</span>
 </code></pre>
-<p>Pulsar supports three types of shedding strategies:</p>
+<p>Pulsar 支持三种切分(shedding) 策略:</p>
 <h5><a class="anchor" aria-hidden="true" id="thresholdshedder"></a><a href="#thresholdshedder" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>This strategy tends to shed the bundles if any broker's usage is above the configured threshold. It does this by first computing the average resource usage per broker for the whole cluster. The resource usage for each broker is calculated using the following method: LocalBrokerData#getMaxResourceUsageWithWeight). The weights for each resource are configurable. Historical observations are included in the running average based on the broker's setting for loadBalancerHistoryResourcePerce [...]
+<p>如果任意 broker 的使用率高于配置的阈值,此策略就会切分出 bundle。 它实现该目标的做法是:首先计算整个集群中每个 broker 的平均资源使用率。 每个 broker 的资源使用情况使用如示方法计算:LocalBrokerData#getMaxResourceUsageWithWeight()。 每种资源的权重是可配置的。 根据 broeker 的 loadBalancerHistoryResourcePercentage 的设置,历史观测值被包含在运行时的平均值中。 一旦计算出平均资源使用量,将 broker 的当前/历史使用量和 broker 的平均使用量进行比较。 如果 broker 的使用率大于每个 broker 的平均使用率加上 loadBalancerBrokerThresholdShedderPercentage 后的值,该负载 shedder 会建议移除足够多的 bundle,将卸载的 broker 提升到当前平均 broker 使用率以下。 请注意,最近卸载的 bundle 不会被再次卸载。 使用以下值配置 broker 来启用此策 [...]
 <h5><a class="anchor" aria-hidden="true" id="overloadshedder"></a><a href="#overloadshedder" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
-<p>This strategy will attempt to shed exactly one bundle on brokers which are overloaded, that is, whose maximum system resource usage exceeds loadBalancerBrokerOverloadedThresholdPercentage. To see which resources are considered when determining the maximum system resource. A bundle is recommended for unloading off that broker if and only if the following conditions hold: The broker has at least two bundles assigned and the broker has at least one bundle that has not been unloaded recen [...]
+<p>该策略将尝试在过载的 broker 上切分一个 bundle,也就是说,相应 broker 的最大系统资源使用量超过了loadBalancerBrokerOverloadedThresholdPercentage。 看看在确定最大系统资源时要考虑哪些资源。 当且仅当以下条件成立时,才建议将一个 bundle 从该 broker 卸载:broker 至少分配了两个 bundle,同时根据 LoadBalancerSheddingGracePeriodMinutes 配置,该 borker 至少有一个 bundle 最近没有被卸载。 从消息速率考虑,卸载的 bundle 将是最近未卸载的最昂贵的 bundle。 请注意,该策略在决定卸载哪些 bundle 时不考虑“负载不足”的 broker。 如果你想找一种在所有 broker 之间平均分配负载的策略,请参阅 ThresholdShedder。 使用以下值配置 broker 来启用此策略。 <code>loadBalancerLoadSheddingStrategy=org.apache.pulsar.broker. [...]
 <h5><a class="anchor" aria-hidden="true" id="uniformloadshedder"></a><a href="#uniformloadshedder" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<p>This strategy tends to distribute load uniformly across all brokers. This strategy checks laod difference between broker with highest load and broker with lowest load. If the difference is higher than configured thresholds <code>loadBalancerMsgRateDifferenceShedderThreshold</code> and <code>loadBalancerMsgThroughputMultiplierDifferenceShedderThreshold</code> then it finds out bundles which can be unloaded to distribute traffic evenly across all brokers. Configure broker with below val [...]
+<p>此策略倾向于在所有 broker 之间均匀分配负载。 此策略检查负载最高的 broker 和负载最低的 broker 之间的负载差值。 如果差值高于配置的阈值 <code>loadBalancerMsgRateDifferenceShedderThreshol</code> 和 <code>loadBalancerMsghputMultiplierrenceShedderThreshol</code>,那么该策略找出可以卸载的 bundle,以便在所有 broker 之间均匀分配流量。 使用以下值配置 broker 来启用此策略。 <code>loadBalancerLoadSheddingStrategy=org.apache.pulsar.broker.loadbalance.impl.UniformLoadShedder</code></p>
 <h4><a class="anchor" aria-hidden="true" id="broker-过载阈值"></a><a href="#broker-过载阈值" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
 <p>Broker 是基于 CPU、网络和内存使用的阈值来判断是否过载的。 当其中任何一个指标超过阈值时,将会触发切分操作(如果允许的话)。</p>
 <p>默认情况下,负载阈值设置为85%:</p>
@@ -169,7 +169,7 @@
 <span class="hljs-attr">loadBalancerBrokerOverloadedThresholdPercentage</span>=<span class="hljs-string">85</span>
 </code></pre>
 <p>Pulsar 会从系统中采集这些指标的使用情况。</p>
-<p>In case of network utilization, in some cases the network interface speed that Linux reports is not correct and needs to be manually overridden. This is the case in AWS EC2 instances with 1Gbps NIC speed for which the OS reports 10Gbps speed.</p>
+<p>有一种特殊的情况需要注意。以网络指标为例,在某些情况下,Linux 上报的网络接口速率是不正确的,那就必须手动指定该值。 AWS EC2 实例就是这种情况,它的网卡是 1Gbps的,但是系统上报的是 10Gbps。</p>
 <p>因为最大的速度是不正确的, Pulsar 负载管理器会认为 broker 还没到达到网卡的最大服务能力,实际上 broker 已经使用完了网卡的所有资源,此时网络传输就会变慢。</p>
 <p>你能够使用如下配置项设置网卡的最大速度:</p>
 <pre><code class="hljs css language-properties"><span class="hljs-comment"># 覆盖自动获取的网卡最大速度</span>
diff --git a/content/docs/zh-CN/next/client-libraries-go.html b/content/docs/zh-CN/next/client-libraries-go.html
index 1c4a978..c602ad4 100644
--- a/content/docs/zh-CN/next/client-libraries-go.html
+++ b/content/docs/zh-CN/next/client-libraries-go.html
@@ -315,8 +315,78 @@ msg, err = consumer.Receive(ctx)
 fmt.Println(msg.Payload())
 canc()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-producer"></a><a href="#how-to-use-prometheus-metrics-in-producer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>Pulsar Go client registers client metrics using Prometheus. This section demonstrates how to create a simple Pulsar producer application that exposes Prometheus metrics via HTTP.</p>
+<ol>
+<li>Write a simple producer application.</li>
+</ol>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a producer</span>
+producer, err := client.CreateProducer(pulsar.ProducerOptions{
+    Topic: <span class="hljs-string">"topic-1"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> producer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can produce messages by requesting http://localhost:8082/produce</span>
+webPort := <span class="hljs-number">8082</span>
+http.HandleFunc(<span class="hljs-string">"/produce"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msgId, err := producer.Send(ctx, &amp;pulsar.ProducerMessage{
+        Payload: []<span class="hljs-keyword">byte</span>(fmt.Sprintf(<span class="hljs-string">"hello world"</span>)),
+    })
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Published message: %v"</span>, msgId)
+        fmt.Fprintf(w, <span class="hljs-string">"Published message: %v"</span>, msgId)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="producer-配置"></a><a href="#producer-配置" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>名称 | 描述 | 默认 | :-------- | :---------- |:---------- | | Topic | 指定该消费者将订阅的 topic。 This argument is required when constructing the reader. | | | Name | Name specify a name for the producer. If not assigned, the system will generate a globally unique name which can be access with Producer.ProducerName(). | | | Properties | Properties 将附加一组应用程序定义的属性。这个属性将会在主题统计中可见 | | | SendTimeout | sendTimeout 设置未被服务器确认的消息的超时时间 | 30s | | DisableBlockIfQueueFull | DisableBlockIfQueueFull 控制如果生产者的消息队列已满, [...]
+<p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Name | Name specify a name for the producer. If not assigned, the system will generate a globally unique name which can be access with Producer.ProducerName(). | | | Properties | Properties 将附加一组应用程序定义的属性。这个属性将会在主题统计中可见 | | | SendTimeout | sendTimeout 设置未被服务器确认的消息的超时时间 | 30s | | DisableBlo [...]
 <h2><a class="anchor" aria-hidden="true" id="消费者"></a><a href="#消费者" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <p>Pulsar consumers subscribe to one or more Pulsar topics and listen for incoming messages produced on that topic/those topics. You can <a href="#consumer-configuration">configure</a> Go consumers using a <code>ConsumerOptions</code> object. Here's a basic example that uses channels:</p>
 <pre><code class="hljs css language-go">consumer, err := client.Subscribe(pulsar.ConsumerOptions{
@@ -533,6 +603,74 @@ err = msg.GetSchemaValue(&amp;s)
 
 <span class="hljs-keyword">defer</span> consumer.Close()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-consumer"></a><a href="#how-to-use-prometheus-metrics-in-consumer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>In this guide, This section demonstrates how to create a simple Pulsar consumer application that exposes Prometheus metrics via HTTP. 1. Write a simple consumer application.</p>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a consumer</span>
+consumer, err := client.Subscribe(pulsar.ConsumerOptions{
+    Topic:            <span class="hljs-string">"topic-1"</span>,
+    SubscriptionName: <span class="hljs-string">"sub-1"</span>,
+    Type:             pulsar.Shared,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> consumer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can consume messages by requesting http://localhost:8083/consume</span>
+webPort := <span class="hljs-number">8083</span>
+http.HandleFunc(<span class="hljs-string">"/consume"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msg, err := consumer.Receive(ctx)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        fmt.Fprintf(w, <span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        consumer.Ack(msg)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="消费者配置"></a><a href="#消费者配置" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Topics | Specify a list of topics this consumer will subscribe on. Either a topic, a list of topics or a topics pattern are required when subscribing| | | TopicsPattern | Specify a regular expression to subscribe to multiple topics under the same namespace. Either a topic, a list of topics [...]
 <h2><a class="anchor" aria-hidden="true" id="reader"></a><a href="#reader" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
@@ -547,7 +685,7 @@ err = msg.GetSchemaValue(&amp;s)
 <span class="hljs-keyword">defer</span> reader.Close()
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="reader-操作"></a><a href="#reader-操作" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>Pulsar Go reader 有以下可用方法:</p>
+<p>Pulsar Go readers have the following methods available:</p>
 <table>
 <thead>
 <tr><th style="text-align:left">方法</th><th style="text-align:left">说明</th><th style="text-align:left">返回类型</th></tr>
@@ -562,7 +700,7 @@ err = msg.GetSchemaValue(&amp;s)
 </tbody>
 </table>
 <h3><a class="anchor" aria-hidden="true" id="reader-示例"></a><a href="#reader-示例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<h4><a class="anchor" aria-hidden="true" id="如何使用-reader-读取下一个消息"></a><a href="#如何使用-reader-读取下一个消息" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
+<h4><a class="anchor" aria-hidden="true" id="如何使用阅读器读取下一个消息"></a><a href="#如何使用阅读器读取下一个消息" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
 <p>Here's an example usage of a Go reader that uses the <code>Next()</code> method to process incoming messages:</p>
 <pre><code class="hljs css language-go"><span class="hljs-keyword">import</span> (
     <span class="hljs-string">"context"</span>
@@ -608,7 +746,7 @@ reader, err := client.CreateReader(pulsar.ReaderOptions{
     StartMessageID: pulsar.DeserializeMessageID(lastSavedId),
 })
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="如何使用-reader-读取特定消息"></a><a href="#如何使用-reader-读取特定消息" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
+<h4><a class="anchor" aria-hidden="true" id="如何使用阅读器读取特定消息"></a><a href="#如何使用阅读器读取特定消息" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <pre><code class="hljs css language-go">client, err := NewClient(pulsar.ClientOptions{
     URL: lookupURL,
 })
@@ -673,9 +811,9 @@ readerInclusive, err := client.CreateReader(pulsar.ReaderOptions{
 <span class="hljs-keyword">defer</span> readerInclusive.Close()
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="reader-配置"></a><a href="#reader-配置" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>名称 | 描述 | 默认 | :-------- | :---------- |:---------- | | Topic | 指定该消费者将订阅的 topic。 构建 reader 时需要此参数。 | | | 名称 | 设置 reader 名称。 | | | Properties | Attach a set of application defined properties to the reader. This properties will be visible in the topic stats | | | StartMessageID | StartMessageID initial reader positioning is done by specifying a message id. | | | StartMessageIDInclusive | If true, the reader will start at the <code>StartMessageID</code>, included. Default is <code>false [...]
+<p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Name | Name set the reader name. | | | Properties | Attach a set of application defined properties to the reader. This properties will be visible in the topic stats | | | StartMessageID | StartMessageID initial reader positioning is done by specifying a message id. | | | StartMessageIDIncl [...]
 <h2><a class="anchor" aria-hidden="true" id="消息"></a><a href="#消息" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>Pulsar Go 客户端提供了一个 <code>ProducerMessage</code> 接口,你可以用它来构造到 Pulsar 主题的消息。下面是示例消息:</p>
+<p>The Pulsar Go client provides a <code>ProducerMessage</code> interface that you can use to construct messages to producer on Pulsar topics. Here's an example message:</p>
 <pre><code class="hljs css language-go">msg := pulsar.ProducerMessage{
     Payload: []<span class="hljs-keyword">byte</span>(<span class="hljs-string">"Here is some message data"</span>),
     Key: <span class="hljs-string">"message-key"</span>,
@@ -690,7 +828,7 @@ readerInclusive, err := client.CreateReader(pulsar.ReaderOptions{
     log.Fatalf(<span class="hljs-string">"Could not publish message due to: %v"</span>, err)
 }
 </code></pre>
-<p><code>ProducerMessage</code> 对象可以使用以下方法参数:</p>
+<p>The following methods parameters are available for <code>ProducerMessage</code> objects:</p>
 <table>
 <thead>
 <tr><th style="text-align:left">参数名</th><th style="text-align:left">说明</th></tr>
@@ -709,7 +847,7 @@ readerInclusive, err := client.CreateReader(pulsar.ReaderOptions{
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="tls-加密和身份验证"></a><a href="#tls-加密和身份验证" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>要使用 <a href="/docs/zh-CN/next/security-tls-transport">TLS 加密</a>,你需要按照如下配置你的客户端:</p>
+<p>In order to use <a href="/docs/zh-CN/next/security-tls-transport">TLS encryption</a>, you'll need to configure your client to do so:</p>
 <ul>
 <li>使用 <code>pulsar+ssl</code> URL 类型</li>
 <li>设置 <code>TLSTrustCertCertsFilePath</code> 到你的客户端和 Pulsar broker 使用的 TLS 证书路径</li>
@@ -723,7 +861,7 @@ readerInclusive, err := client.CreateReader(pulsar.ReaderOptions{
 }
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="oauth2-身份验证"></a><a href="#oauth2-身份验证" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>要使用 <a href="/docs/zh-CN/next/security-oauth2">OAuth2 身份验证</a>,您需要配置您的客户端来执行以下操作。 此示例显示如何配置 OAuth2 身份验证。</p>
+<p>To use <a href="/docs/zh-CN/next/security-oauth2">OAuth2 authentication</a>, you'll need to configure your client to perform the following operations. This example shows how to configure OAuth2 authentication.</p>
 <pre><code class="hljs css language-go">oauth := pulsar.NewAuthenticationOAuth2(<span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>]<span class="hljs-keyword">string</span>{
         <span class="hljs-string">"type"</span>:       <span class="hljs-string">"client_credentials"</span>,
         <span class="hljs-string">"issuerUrl"</span>:  <span class="hljs-string">"https://dev-kt-aa9ne.us.auth0.com"</span>,
diff --git a/content/docs/zh-CN/next/client-libraries-go/index.html b/content/docs/zh-CN/next/client-libraries-go/index.html
index 1c4a978..c602ad4 100644
--- a/content/docs/zh-CN/next/client-libraries-go/index.html
+++ b/content/docs/zh-CN/next/client-libraries-go/index.html
@@ -315,8 +315,78 @@ msg, err = consumer.Receive(ctx)
 fmt.Println(msg.Payload())
 canc()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-producer"></a><a href="#how-to-use-prometheus-metrics-in-producer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>Pulsar Go client registers client metrics using Prometheus. This section demonstrates how to create a simple Pulsar producer application that exposes Prometheus metrics via HTTP.</p>
+<ol>
+<li>Write a simple producer application.</li>
+</ol>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a producer</span>
+producer, err := client.CreateProducer(pulsar.ProducerOptions{
+    Topic: <span class="hljs-string">"topic-1"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> producer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can produce messages by requesting http://localhost:8082/produce</span>
+webPort := <span class="hljs-number">8082</span>
+http.HandleFunc(<span class="hljs-string">"/produce"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msgId, err := producer.Send(ctx, &amp;pulsar.ProducerMessage{
+        Payload: []<span class="hljs-keyword">byte</span>(fmt.Sprintf(<span class="hljs-string">"hello world"</span>)),
+    })
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Published message: %v"</span>, msgId)
+        fmt.Fprintf(w, <span class="hljs-string">"Published message: %v"</span>, msgId)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="producer-配置"></a><a href="#producer-配置" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>名称 | 描述 | 默认 | :-------- | :---------- |:---------- | | Topic | 指定该消费者将订阅的 topic。 This argument is required when constructing the reader. | | | Name | Name specify a name for the producer. If not assigned, the system will generate a globally unique name which can be access with Producer.ProducerName(). | | | Properties | Properties 将附加一组应用程序定义的属性。这个属性将会在主题统计中可见 | | | SendTimeout | sendTimeout 设置未被服务器确认的消息的超时时间 | 30s | | DisableBlockIfQueueFull | DisableBlockIfQueueFull 控制如果生产者的消息队列已满, [...]
+<p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Name | Name specify a name for the producer. If not assigned, the system will generate a globally unique name which can be access with Producer.ProducerName(). | | | Properties | Properties 将附加一组应用程序定义的属性。这个属性将会在主题统计中可见 | | | SendTimeout | sendTimeout 设置未被服务器确认的消息的超时时间 | 30s | | DisableBlo [...]
 <h2><a class="anchor" aria-hidden="true" id="消费者"></a><a href="#消费者" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <p>Pulsar consumers subscribe to one or more Pulsar topics and listen for incoming messages produced on that topic/those topics. You can <a href="#consumer-configuration">configure</a> Go consumers using a <code>ConsumerOptions</code> object. Here's a basic example that uses channels:</p>
 <pre><code class="hljs css language-go">consumer, err := client.Subscribe(pulsar.ConsumerOptions{
@@ -533,6 +603,74 @@ err = msg.GetSchemaValue(&amp;s)
 
 <span class="hljs-keyword">defer</span> consumer.Close()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-consumer"></a><a href="#how-to-use-prometheus-metrics-in-consumer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>In this guide, This section demonstrates how to create a simple Pulsar consumer application that exposes Prometheus metrics via HTTP. 1. Write a simple consumer application.</p>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a consumer</span>
+consumer, err := client.Subscribe(pulsar.ConsumerOptions{
+    Topic:            <span class="hljs-string">"topic-1"</span>,
+    SubscriptionName: <span class="hljs-string">"sub-1"</span>,
+    Type:             pulsar.Shared,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> consumer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can consume messages by requesting http://localhost:8083/consume</span>
+webPort := <span class="hljs-number">8083</span>
+http.HandleFunc(<span class="hljs-string">"/consume"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msg, err := consumer.Receive(ctx)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        fmt.Fprintf(w, <span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        consumer.Ack(msg)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="消费者配置"></a><a href="#消费者配置" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Topics | Specify a list of topics this consumer will subscribe on. Either a topic, a list of topics or a topics pattern are required when subscribing| | | TopicsPattern | Specify a regular expression to subscribe to multiple topics under the same namespace. Either a topic, a list of topics [...]
 <h2><a class="anchor" aria-hidden="true" id="reader"></a><a href="#reader" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
@@ -547,7 +685,7 @@ err = msg.GetSchemaValue(&amp;s)
 <span class="hljs-keyword">defer</span> reader.Close()
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="reader-操作"></a><a href="#reader-操作" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>Pulsar Go reader 有以下可用方法:</p>
+<p>Pulsar Go readers have the following methods available:</p>
 <table>
 <thead>
 <tr><th style="text-align:left">方法</th><th style="text-align:left">说明</th><th style="text-align:left">返回类型</th></tr>
@@ -562,7 +700,7 @@ err = msg.GetSchemaValue(&amp;s)
 </tbody>
 </table>
 <h3><a class="anchor" aria-hidden="true" id="reader-示例"></a><a href="#reader-示例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<h4><a class="anchor" aria-hidden="true" id="如何使用-reader-读取下一个消息"></a><a href="#如何使用-reader-读取下一个消息" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
+<h4><a class="anchor" aria-hidden="true" id="如何使用阅读器读取下一个消息"></a><a href="#如何使用阅读器读取下一个消息" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
 <p>Here's an example usage of a Go reader that uses the <code>Next()</code> method to process incoming messages:</p>
 <pre><code class="hljs css language-go"><span class="hljs-keyword">import</span> (
     <span class="hljs-string">"context"</span>
@@ -608,7 +746,7 @@ reader, err := client.CreateReader(pulsar.ReaderOptions{
     StartMessageID: pulsar.DeserializeMessageID(lastSavedId),
 })
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="如何使用-reader-读取特定消息"></a><a href="#如何使用-reader-读取特定消息" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
+<h4><a class="anchor" aria-hidden="true" id="如何使用阅读器读取特定消息"></a><a href="#如何使用阅读器读取特定消息" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <pre><code class="hljs css language-go">client, err := NewClient(pulsar.ClientOptions{
     URL: lookupURL,
 })
@@ -673,9 +811,9 @@ readerInclusive, err := client.CreateReader(pulsar.ReaderOptions{
 <span class="hljs-keyword">defer</span> readerInclusive.Close()
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="reader-配置"></a><a href="#reader-配置" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>名称 | 描述 | 默认 | :-------- | :---------- |:---------- | | Topic | 指定该消费者将订阅的 topic。 构建 reader 时需要此参数。 | | | 名称 | 设置 reader 名称。 | | | Properties | Attach a set of application defined properties to the reader. This properties will be visible in the topic stats | | | StartMessageID | StartMessageID initial reader positioning is done by specifying a message id. | | | StartMessageIDInclusive | If true, the reader will start at the <code>StartMessageID</code>, included. Default is <code>false [...]
+<p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Name | Name set the reader name. | | | Properties | Attach a set of application defined properties to the reader. This properties will be visible in the topic stats | | | StartMessageID | StartMessageID initial reader positioning is done by specifying a message id. | | | StartMessageIDIncl [...]
 <h2><a class="anchor" aria-hidden="true" id="消息"></a><a href="#消息" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>Pulsar Go 客户端提供了一个 <code>ProducerMessage</code> 接口,你可以用它来构造到 Pulsar 主题的消息。下面是示例消息:</p>
+<p>The Pulsar Go client provides a <code>ProducerMessage</code> interface that you can use to construct messages to producer on Pulsar topics. Here's an example message:</p>
 <pre><code class="hljs css language-go">msg := pulsar.ProducerMessage{
     Payload: []<span class="hljs-keyword">byte</span>(<span class="hljs-string">"Here is some message data"</span>),
     Key: <span class="hljs-string">"message-key"</span>,
@@ -690,7 +828,7 @@ readerInclusive, err := client.CreateReader(pulsar.ReaderOptions{
     log.Fatalf(<span class="hljs-string">"Could not publish message due to: %v"</span>, err)
 }
 </code></pre>
-<p><code>ProducerMessage</code> 对象可以使用以下方法参数:</p>
+<p>The following methods parameters are available for <code>ProducerMessage</code> objects:</p>
 <table>
 <thead>
 <tr><th style="text-align:left">参数名</th><th style="text-align:left">说明</th></tr>
@@ -709,7 +847,7 @@ readerInclusive, err := client.CreateReader(pulsar.ReaderOptions{
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="tls-加密和身份验证"></a><a href="#tls-加密和身份验证" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>要使用 <a href="/docs/zh-CN/next/security-tls-transport">TLS 加密</a>,你需要按照如下配置你的客户端:</p>
+<p>In order to use <a href="/docs/zh-CN/next/security-tls-transport">TLS encryption</a>, you'll need to configure your client to do so:</p>
 <ul>
 <li>使用 <code>pulsar+ssl</code> URL 类型</li>
 <li>设置 <code>TLSTrustCertCertsFilePath</code> 到你的客户端和 Pulsar broker 使用的 TLS 证书路径</li>
@@ -723,7 +861,7 @@ readerInclusive, err := client.CreateReader(pulsar.ReaderOptions{
 }
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="oauth2-身份验证"></a><a href="#oauth2-身份验证" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>要使用 <a href="/docs/zh-CN/next/security-oauth2">OAuth2 身份验证</a>,您需要配置您的客户端来执行以下操作。 此示例显示如何配置 OAuth2 身份验证。</p>
+<p>To use <a href="/docs/zh-CN/next/security-oauth2">OAuth2 authentication</a>, you'll need to configure your client to perform the following operations. This example shows how to configure OAuth2 authentication.</p>
 <pre><code class="hljs css language-go">oauth := pulsar.NewAuthenticationOAuth2(<span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>]<span class="hljs-keyword">string</span>{
         <span class="hljs-string">"type"</span>:       <span class="hljs-string">"client_credentials"</span>,
         <span class="hljs-string">"issuerUrl"</span>:  <span class="hljs-string">"https://dev-kt-aa9ne.us.auth0.com"</span>,
diff --git a/content/docs/zh-TW/2.8.0/client-libraries-python.html b/content/docs/zh-TW/2.8.0/client-libraries-python.html
index 8ebacc9..fb8c130 100644
--- a/content/docs/zh-TW/2.8.0/client-libraries-python.html
+++ b/content/docs/zh-TW/2.8.0/client-libraries-python.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/zh-TW/2.8.0/client-libraries-python/index.html b/content/docs/zh-TW/2.8.0/client-libraries-python/index.html
index 8ebacc9..fb8c130 100644
--- a/content/docs/zh-TW/2.8.0/client-libraries-python/index.html
+++ b/content/docs/zh-TW/2.8.0/client-libraries-python/index.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/zh-TW/client-libraries-python.html b/content/docs/zh-TW/client-libraries-python.html
index 2185863..3b2454f 100644
--- a/content/docs/zh-TW/client-libraries-python.html
+++ b/content/docs/zh-TW/client-libraries-python.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/zh-TW/client-libraries-python/index.html b/content/docs/zh-TW/client-libraries-python/index.html
index 2185863..3b2454f 100644
--- a/content/docs/zh-TW/client-libraries-python/index.html
+++ b/content/docs/zh-TW/client-libraries-python/index.html
@@ -86,13 +86,13 @@
 <h3><a class="anchor" aria-hidden="true" id="optional-dependencies"></a><a href="#optional-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
 <p>To support aspects like pulsar functions or Avro serialization, additional optional components can be installed alongside the  <code>pulsar-client</code> library</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> avro serialization</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[avro]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[avro]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> <span class="hljs-built_in">functions</span> runtime</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[functions]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[<span class="hljs-built_in">functions</span>]==<span class="hljs-string">'2.8.1'</span></span>
 <span class="hljs-meta">
 #</span><span class="bash"> all optional components</span>
-<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client==<span class="hljs-string">'2.8.1[all]'</span></span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pulsar-client[all]==<span class="hljs-string">'2.8.1'</span></span>
 </code></pre>
 <p>Installation via PyPi is available for the following Python versions:</p>
 <table>
diff --git a/content/docs/zh-TW/next/admin-api-topics.html b/content/docs/zh-TW/next/admin-api-topics.html
index 5909bde..c66fdae 100644
--- a/content/docs/zh-TW/next/admin-api-topics.html
+++ b/content/docs/zh-TW/next/admin-api-topics.html
@@ -149,6 +149,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgThroughputOut</strong>: The sum of all local and replication consumers' dispatch rates (bytes/s).</p></li>
 <li><p><strong>averageMsgSize</strong>: The average size (in bytes) of messages published within the last interval.</p></li>
 <li><p><strong>storageSize</strong>: The sum of the ledgers' storage size for this topic. The space used to store the messages for the topic.</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklogs</strong>: The publish time of the earliest message in the backlog (ms).</p></li>
 <li><p><strong>bytesInCounter</strong>: Total bytes published to the topic.</p></li>
 <li><p><strong>msgInCounter</strong>: Total messages published to the topic.</p></li>
 <li><p><strong>bytesOutCounter</strong>: Total bytes delivered to consumers.</p></li>
@@ -193,6 +194,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgRateRedeliver</strong>: Total rate of messages redelivered on this subscription (msg/s).</p></li>
 <li><p><strong>chunkedMessageRate</strong>: Chunked message dispatch rate.</p></li>
 <li><p><strong>backlogSize</strong>: Size of backlog for this subscription (in bytes).</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklog</strong>: The publish time of the earliest message in the backlog for the subscription (ms).</p></li>
 <li><p><strong>msgBacklogNoDelayed</strong>: Number of messages in the subscription backlog that do not contain the delay messages.</p></li>
 <li><p><strong>blockedSubscriptionOnUnackedMsgs</strong>: Flag to verify if a subscription is blocked due to reaching threshold of unacked messages.</p></li>
 <li><p><strong>msgDelayed</strong>: Number of delayed messages currently being tracked.</p></li>
@@ -261,6 +263,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
   <span class="hljs-attr">"msgChunkPublished"</span> : <span class="hljs-literal">false</span>,
   <span class="hljs-attr">"storageSize"</span> : <span class="hljs-number">504</span>,
   <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+  <span class="hljs-attr">"earliestMsgPublishTimeInBacklogs"</span>: <span class="hljs-number">0</span>,
   <span class="hljs-attr">"offloadedStorageSize"</span> : <span class="hljs-number">0</span>,
   <span class="hljs-attr">"publishers"</span> : [ {
     <span class="hljs-attr">"accessMode"</span> : <span class="hljs-string">"Shared"</span>,
@@ -286,6 +289,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
       <span class="hljs-attr">"chunkedMessageRate"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklog"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+      <span class="hljs-attr">"earliestMsgPublishTimeInBacklog"</span>: <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklogNoDelayed"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"blockedSubscriptionOnUnackedMsgs"</span> : <span class="hljs-literal">false</span>,
       <span class="hljs-attr">"msgDelayed"</span> : <span class="hljs-number">0</span>,
@@ -872,7 +876,8 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 </span></div></div><div id="tab-group-2364-content-2366" class="tab-pane" data-group="group_2364" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.8.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-2364-content-2367" class="tab-pane" data-group="group_2364" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-TW/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/zh-TW/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul cla [...]
+</span></div></div></div></div>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-TW/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/zh-TW/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul class="toc-headings"><li><a href=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-TW/next/admin-api-topics/index.html b/content/docs/zh-TW/next/admin-api-topics/index.html
index 5909bde..c66fdae 100644
--- a/content/docs/zh-TW/next/admin-api-topics/index.html
+++ b/content/docs/zh-TW/next/admin-api-topics/index.html
@@ -149,6 +149,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgThroughputOut</strong>: The sum of all local and replication consumers' dispatch rates (bytes/s).</p></li>
 <li><p><strong>averageMsgSize</strong>: The average size (in bytes) of messages published within the last interval.</p></li>
 <li><p><strong>storageSize</strong>: The sum of the ledgers' storage size for this topic. The space used to store the messages for the topic.</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklogs</strong>: The publish time of the earliest message in the backlog (ms).</p></li>
 <li><p><strong>bytesInCounter</strong>: Total bytes published to the topic.</p></li>
 <li><p><strong>msgInCounter</strong>: Total messages published to the topic.</p></li>
 <li><p><strong>bytesOutCounter</strong>: Total bytes delivered to consumers.</p></li>
@@ -193,6 +194,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
 <li><p><strong>msgRateRedeliver</strong>: Total rate of messages redelivered on this subscription (msg/s).</p></li>
 <li><p><strong>chunkedMessageRate</strong>: Chunked message dispatch rate.</p></li>
 <li><p><strong>backlogSize</strong>: Size of backlog for this subscription (in bytes).</p></li>
+<li><p><strong>earliestMsgPublishTimeInBacklog</strong>: The publish time of the earliest message in the backlog for the subscription (ms).</p></li>
 <li><p><strong>msgBacklogNoDelayed</strong>: Number of messages in the subscription backlog that do not contain the delay messages.</p></li>
 <li><p><strong>blockedSubscriptionOnUnackedMsgs</strong>: Flag to verify if a subscription is blocked due to reaching threshold of unacked messages.</p></li>
 <li><p><strong>msgDelayed</strong>: Number of delayed messages currently being tracked.</p></li>
@@ -261,6 +263,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
   <span class="hljs-attr">"msgChunkPublished"</span> : <span class="hljs-literal">false</span>,
   <span class="hljs-attr">"storageSize"</span> : <span class="hljs-number">504</span>,
   <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+  <span class="hljs-attr">"earliestMsgPublishTimeInBacklogs"</span>: <span class="hljs-number">0</span>,
   <span class="hljs-attr">"offloadedStorageSize"</span> : <span class="hljs-number">0</span>,
   <span class="hljs-attr">"publishers"</span> : [ {
     <span class="hljs-attr">"accessMode"</span> : <span class="hljs-string">"Shared"</span>,
@@ -286,6 +289,7 @@ Take <a href="https://pulsar.apache.org/admin-rest-api#operation/getList?version
       <span class="hljs-attr">"chunkedMessageRate"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklog"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"backlogSize"</span> : <span class="hljs-number">0</span>,
+      <span class="hljs-attr">"earliestMsgPublishTimeInBacklog"</span>: <span class="hljs-number">0</span>,
       <span class="hljs-attr">"msgBacklogNoDelayed"</span> : <span class="hljs-number">0</span>,
       <span class="hljs-attr">"blockedSubscriptionOnUnackedMsgs"</span> : <span class="hljs-literal">false</span>,
       <span class="hljs-attr">"msgDelayed"</span> : <span class="hljs-number">0</span>,
@@ -872,7 +876,8 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 </span></div></div><div id="tab-group-2364-content-2366" class="tab-pane" data-group="group_2364" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.8.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-2364-content-2367" class="tab-pane" data-group="group_2364" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-TW/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/zh-TW/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul cla [...]
+</span></div></div></div></div>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-TW/next/admin-api-permissions"><span class="arrow-prev">← </span><span>Permissions</span></a><a class="docs-next button" href="/docs/zh-TW/next/admin-api-functions"><span>Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#manage-topic-resources">Manage topic resources</a><ul class="toc-headings"><li><a href=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-TW/next/client-libraries-go.html b/content/docs/zh-TW/next/client-libraries-go.html
index d94d011..9bd0034 100644
--- a/content/docs/zh-TW/next/client-libraries-go.html
+++ b/content/docs/zh-TW/next/client-libraries-go.html
@@ -314,6 +314,76 @@ msg, err = consumer.Receive(ctx)
 fmt.Println(msg.Payload())
 canc()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-producer"></a><a href="#how-to-use-prometheus-metrics-in-producer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>Pulsar Go client registers client metrics using Prometheus. This section demonstrates how to create a simple Pulsar producer application that exposes Prometheus metrics via HTTP.</p>
+<ol>
+<li>Write a simple producer application.</li>
+</ol>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a producer</span>
+producer, err := client.CreateProducer(pulsar.ProducerOptions{
+    Topic: <span class="hljs-string">"topic-1"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> producer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can produce messages by requesting http://localhost:8082/produce</span>
+webPort := <span class="hljs-number">8082</span>
+http.HandleFunc(<span class="hljs-string">"/produce"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msgId, err := producer.Send(ctx, &amp;pulsar.ProducerMessage{
+        Payload: []<span class="hljs-keyword">byte</span>(fmt.Sprintf(<span class="hljs-string">"hello world"</span>)),
+    })
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Published message: %v"</span>, msgId)
+        fmt.Fprintf(w, <span class="hljs-string">"Published message: %v"</span>, msgId)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="producer-configuration"></a><a href="#producer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Name | Name specify a name for the producer. If not assigned, the system will generate a globally unique name which can be access with Producer.ProducerName(). | | | Properties | Properties attach a set of application defined properties to the producer This properties will be visible in th [...]
 <h2><a class="anchor" aria-hidden="true" id="consumers"></a><a href="#consumers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
@@ -532,6 +602,74 @@ err = msg.GetSchemaValue(&amp;s)
 
 <span class="hljs-keyword">defer</span> consumer.Close()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-consumer"></a><a href="#how-to-use-prometheus-metrics-in-consumer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>In this guide, This section demonstrates how to create a simple Pulsar consumer application that exposes Prometheus metrics via HTTP. 1. Write a simple consumer application.</p>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a consumer</span>
+consumer, err := client.Subscribe(pulsar.ConsumerOptions{
+    Topic:            <span class="hljs-string">"topic-1"</span>,
+    SubscriptionName: <span class="hljs-string">"sub-1"</span>,
+    Type:             pulsar.Shared,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> consumer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can consume messages by requesting http://localhost:8083/consume</span>
+webPort := <span class="hljs-number">8083</span>
+http.HandleFunc(<span class="hljs-string">"/consume"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msg, err := consumer.Receive(ctx)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        fmt.Fprintf(w, <span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        consumer.Ack(msg)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="consumer-configuration"></a><a href="#consumer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Topics | Specify a list of topics this consumer will subscribe on. Either a topic, a list of topics or a topics pattern are required when subscribing| | | TopicsPattern | Specify a regular expression to subscribe to multiple topics under the same namespace. Either a topic, a list of topics [...]
 <h2><a class="anchor" aria-hidden="true" id="readers"></a><a href="#readers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
diff --git a/content/docs/zh-TW/next/client-libraries-go/index.html b/content/docs/zh-TW/next/client-libraries-go/index.html
index d94d011..9bd0034 100644
--- a/content/docs/zh-TW/next/client-libraries-go/index.html
+++ b/content/docs/zh-TW/next/client-libraries-go/index.html
@@ -314,6 +314,76 @@ msg, err = consumer.Receive(ctx)
 fmt.Println(msg.Payload())
 canc()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-producer"></a><a href="#how-to-use-prometheus-metrics-in-producer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>Pulsar Go client registers client metrics using Prometheus. This section demonstrates how to create a simple Pulsar producer application that exposes Prometheus metrics via HTTP.</p>
+<ol>
+<li>Write a simple producer application.</li>
+</ol>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a producer</span>
+producer, err := client.CreateProducer(pulsar.ProducerOptions{
+    Topic: <span class="hljs-string">"topic-1"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> producer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can produce messages by requesting http://localhost:8082/produce</span>
+webPort := <span class="hljs-number">8082</span>
+http.HandleFunc(<span class="hljs-string">"/produce"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msgId, err := producer.Send(ctx, &amp;pulsar.ProducerMessage{
+        Payload: []<span class="hljs-keyword">byte</span>(fmt.Sprintf(<span class="hljs-string">"hello world"</span>)),
+    })
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Published message: %v"</span>, msgId)
+        fmt.Fprintf(w, <span class="hljs-string">"Published message: %v"</span>, msgId)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="producer-configuration"></a><a href="#producer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Name | Name specify a name for the producer. If not assigned, the system will generate a globally unique name which can be access with Producer.ProducerName(). | | | Properties | Properties attach a set of application defined properties to the producer This properties will be visible in th [...]
 <h2><a class="anchor" aria-hidden="true" id="consumers"></a><a href="#consumers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
@@ -532,6 +602,74 @@ err = msg.GetSchemaValue(&amp;s)
 
 <span class="hljs-keyword">defer</span> consumer.Close()
 </code></pre>
+<h4><a class="anchor" aria-hidden="true" id="how-to-use-prometheus-metrics-in-consumer"></a><a href="#how-to-use-prometheus-metrics-in-consumer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
+<p>In this guide, This section demonstrates how to create a simple Pulsar consumer application that exposes Prometheus metrics via HTTP. 1. Write a simple consumer application.</p>
+<pre><code class="hljs css language-go"><span class="hljs-comment">// Create a Pulsar client</span>
+client, err := pulsar.NewClient(pulsar.ClientOptions{
+    URL: <span class="hljs-string">"pulsar://localhost:6650"</span>,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> client.Close()
+
+<span class="hljs-comment">// Start a separate goroutine for Prometheus metrics</span>
+<span class="hljs-comment">// In this case, Prometheus metrics can be accessed via http://localhost:2112/metrics</span>
+<span class="hljs-keyword">go</span> <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">()</span></span> {
+    prometheusPort := <span class="hljs-number">2112</span>
+    log.Printf(<span class="hljs-string">"Starting Prometheus metrics at http://localhost:%v/metrics\n"</span>, prometheusPort)
+    http.Handle(<span class="hljs-string">"/metrics"</span>, promhttp.Handler())
+    err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(prometheusPort), <span class="hljs-literal">nil</span>)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    }
+}()
+
+<span class="hljs-comment">// Create a consumer</span>
+consumer, err := client.Subscribe(pulsar.ConsumerOptions{
+    Topic:            <span class="hljs-string">"topic-1"</span>,
+    SubscriptionName: <span class="hljs-string">"sub-1"</span>,
+    Type:             pulsar.Shared,
+})
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+
+<span class="hljs-keyword">defer</span> consumer.Close()
+
+ctx := context.Background()
+
+<span class="hljs-comment">// Write your business logic here</span>
+<span class="hljs-comment">// In this case, you build a simple Web server. You can consume messages by requesting http://localhost:8083/consume</span>
+webPort := <span class="hljs-number">8083</span>
+http.HandleFunc(<span class="hljs-string">"/consume"</span>, <span class="hljs-function"><span class="hljs-keyword">func</span><span class="hljs-params">(w http.ResponseWriter, r *http.Request)</span></span> {
+    msg, err := consumer.Receive(ctx)
+    <span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+        log.Fatal(err)
+    } <span class="hljs-keyword">else</span> {
+        log.Printf(<span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        fmt.Fprintf(w, <span class="hljs-string">"Received message msgId: %v -- content: '%s'\n"</span>, msg.ID(), <span class="hljs-keyword">string</span>(msg.Payload()))
+        consumer.Ack(msg)
+    }
+})
+
+err = http.ListenAndServe(<span class="hljs-string">":"</span>+strconv.Itoa(webPort), <span class="hljs-literal">nil</span>)
+<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
+    log.Fatal(err)
+}
+</code></pre>
+<ol>
+<li>To scrape metrics from applications, configure a local running Prometheus instance using a configuration file (<code>prometheus.yml</code>).</li>
+</ol>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">scrape_configs:</span>
+<span class="hljs-bullet">-</span> <span class="hljs-attr">job_name:</span> <span class="hljs-string">pulsar-client-go-metrics</span>
+  <span class="hljs-attr">scrape_interval:</span> <span class="hljs-string">10s</span>
+  <span class="hljs-attr">static_configs:</span>
+  <span class="hljs-bullet">-</span> <span class="hljs-attr">targets:</span>
+    <span class="hljs-bullet">-</span> <span class="hljs-string">localhost:2112</span>
+</code></pre>
+<p>Now you can query Pulsar client metrics on Prometheus.</p>
 <h3><a class="anchor" aria-hidden="true" id="consumer-configuration"></a><a href="#consumer-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>Name | Description | Default | :-------- | :---------- |:---------- | | Topic | Topic specify the topic this consumer will subscribe to. This argument is required when constructing the reader. | | | Topics | Specify a list of topics this consumer will subscribe on. Either a topic, a list of topics or a topics pattern are required when subscribing| | | TopicsPattern | Specify a regular expression to subscribe to multiple topics under the same namespace. Either a topic, a list of topics [...]
 <h2><a class="anchor" aria-hidden="true" id="readers"></a><a href="#readers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
diff --git a/content/en/powered-by.html b/content/en/powered-by.html
index b7ab518..3298b1e 100644
--- a/content/en/powered-by.html
+++ b/content/en/powered-by.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Companies using or contributing to Apache Pulsar</h1><hr/></header><div class="logo-wrapper"><div  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Companies using or contributing to Apache Pulsar</h1><hr/></header><div class="logo-wrapper"><div  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/en/powered-by/index.html b/content/en/powered-by/index.html
index b7ab518..3298b1e 100644
--- a/content/en/powered-by/index.html
+++ b/content/en/powered-by/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Companies using or contributing to Apache Pulsar</h1><hr/></header><div class="logo-wrapper"><div  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Companies using or contributing to Apache Pulsar</h1><hr/></header><div class="logo-wrapper"><div  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/fr/powered-by.html b/content/fr/powered-by.html
index 66e0888..076cc8e 100644
--- a/content/fr/powered-by.html
+++ b/content/fr/powered-by.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Entreprises utilisant ou contribuant à Apache Pulsar</h1><hr/></header><div class="logo-wrapper">< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Entreprises utilisant ou contribuant à Apache Pulsar</h1><hr/></header><div class="logo-wrapper">< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/fr/powered-by/index.html b/content/fr/powered-by/index.html
index 66e0888..076cc8e 100644
--- a/content/fr/powered-by/index.html
+++ b/content/fr/powered-by/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Entreprises utilisant ou contribuant à Apache Pulsar</h1><hr/></header><div class="logo-wrapper">< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Entreprises utilisant ou contribuant à Apache Pulsar</h1><hr/></header><div class="logo-wrapper">< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/ja/powered-by.html b/content/ja/powered-by.html
index 1ef3e97..766692f 100644
--- a/content/ja/powered-by.html
+++ b/content/ja/powered-by.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Companies using or contributing to Apache Pulsar</h1><hr/></header><div class="logo-wrapper"><div  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Companies using or contributing to Apache Pulsar</h1><hr/></header><div class="logo-wrapper"><div  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/ja/powered-by/index.html b/content/ja/powered-by/index.html
index 1ef3e97..766692f 100644
--- a/content/ja/powered-by/index.html
+++ b/content/ja/powered-by/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Companies using or contributing to Apache Pulsar</h1><hr/></header><div class="logo-wrapper"><div  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Companies using or contributing to Apache Pulsar</h1><hr/></header><div class="logo-wrapper"><div  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/ko/powered-by.html b/content/ko/powered-by.html
index 04f5bca..dccd560 100644
--- a/content/ko/powered-by.html
+++ b/content/ko/powered-by.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Apache Pulsar를 사용하거나 기여하는 회사</h1><hr/></header><div class="logo-wrapper"><div class="logo-box"><a  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Apache Pulsar를 사용하거나 기여하는 회사</h1><hr/></header><div class="logo-wrapper"><div class="logo-box"><a  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/ko/powered-by/index.html b/content/ko/powered-by/index.html
index 04f5bca..dccd560 100644
--- a/content/ko/powered-by/index.html
+++ b/content/ko/powered-by/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Apache Pulsar를 사용하거나 기여하는 회사</h1><hr/></header><div class="logo-wrapper"><div class="logo-box"><a  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Apache Pulsar를 사용하거나 기여하는 회사</h1><hr/></header><div class="logo-wrapper"><div class="logo-box"><a  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/powered-by.html b/content/powered-by.html
index b7ab518..3298b1e 100644
--- a/content/powered-by.html
+++ b/content/powered-by.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Companies using or contributing to Apache Pulsar</h1><hr/></header><div class="logo-wrapper"><div  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Companies using or contributing to Apache Pulsar</h1><hr/></header><div class="logo-wrapper"><div  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/powered-by/index.html b/content/powered-by/index.html
index b7ab518..3298b1e 100644
--- a/content/powered-by/index.html
+++ b/content/powered-by/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Companies using or contributing to Apache Pulsar</h1><hr/></header><div class="logo-wrapper"><div  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Companies using or contributing to Apache Pulsar</h1><hr/></header><div class="logo-wrapper"><div  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/swagger/2.10.0-SNAPSHOT/swagger.json b/content/swagger/2.10.0-SNAPSHOT/swagger.json
index 28aa1b0..c19e072 100644
--- a/content/swagger/2.10.0-SNAPSHOT/swagger.json
+++ b/content/swagger/2.10.0-SNAPSHOT/swagger.json
@@ -2512,7 +2512,7 @@
     "/namespaces/{tenant}/{namespace}/dispatchRate" : {
       "get" : {
         "tags" : [ "namespaces" ],
-        "summary" : "Get dispatch-rate configured for the namespace, -1 represents not configured yet",
+        "summary" : "Get dispatch-rate configured for the namespace, null means dispatch-rate not configured, -1 means msg-dispatch-rate or byte-dispatch-rate not configured in dispatch-rate yet",
         "description" : "",
         "operationId" : "getDispatchRate",
         "consumes" : [ "application/json" ],
@@ -4606,7 +4606,7 @@
     "/namespaces/{tenant}/{namespace}/replicatorDispatchRate" : {
       "get" : {
         "tags" : [ "namespaces" ],
-        "summary" : "Get replicator dispatch-rate configured for the namespace, -1 represents not configured yet",
+        "summary" : "Get replicator dispatch-rate configured for the namespace, null means replicator dispatch-rate not configured, -1 means msg-dispatch-rate or byte-dispatch-rate not configured in dispatch-rate yet",
         "description" : "",
         "operationId" : "getReplicatorDispatchRate",
         "consumes" : [ "application/json" ],
@@ -5314,7 +5314,7 @@
     "/namespaces/{tenant}/{namespace}/subscriptionDispatchRate" : {
       "get" : {
         "tags" : [ "namespaces" ],
-        "summary" : "Get Subscription dispatch-rate configured for the namespace, -1 represents not configured yet",
+        "summary" : "Get subscription dispatch-rate configured for the namespace, null means subscription dispatch-rate not configured, -1 means msg-dispatch-rate or byte-dispatch-rate not configured in dispatch-rate yet",
         "description" : "",
         "operationId" : "getSubscriptionDispatchRate",
         "consumes" : [ "application/json" ],
@@ -10621,6 +10621,12 @@
           "required" : true,
           "type" : "string"
         }, {
+          "name" : "isGlobal",
+          "in" : "query",
+          "required" : false,
+          "type" : "boolean",
+          "default" : false
+        }, {
           "name" : "applied",
           "in" : "query",
           "required" : false,
@@ -10677,6 +10683,12 @@
           "type" : "boolean",
           "default" : false
         }, {
+          "name" : "isGlobal",
+          "in" : "query",
+          "required" : false,
+          "type" : "boolean",
+          "default" : false
+        }, {
           "in" : "body",
           "name" : "body",
           "description" : "Retention policies for the specified namespace",
@@ -10725,12 +10737,18 @@
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "authoritative",
+          "name" : "isGlobal",
           "in" : "query",
           "description" : "Is authentication required to perform this operation",
           "required" : false,
           "type" : "boolean",
           "default" : false
+        }, {
+          "name" : "authoritative",
+          "in" : "query",
+          "required" : false,
+          "type" : "boolean",
+          "default" : false
         } ],
         "responses" : {
           "403" : {
@@ -11740,7 +11758,7 @@
           "description" : "messageId where to create the subscription. It can be 'latest', 'earliest' or (ledgerId:entryId)",
           "required" : false,
           "schema" : {
-            "$ref" : "#/definitions/MessageIdImpl"
+            "$ref" : "#/definitions/ResetCursorData"
           }
         }, {
           "name" : "replicated",
@@ -16899,6 +16917,12 @@
           "required" : true,
           "type" : "string"
         }, {
+          "name" : "isGlobal",
+          "in" : "query",
+          "required" : false,
+          "type" : "boolean",
+          "default" : false
+        }, {
           "name" : "applied",
           "in" : "query",
           "required" : false,
@@ -16955,6 +16979,12 @@
           "type" : "boolean",
           "default" : false
         }, {
+          "name" : "isGlobal",
+          "in" : "query",
+          "required" : false,
+          "type" : "boolean",
+          "default" : false
+        }, {
           "in" : "body",
           "name" : "body",
           "description" : "Retention policies for the specified namespace",
@@ -17003,12 +17033,18 @@
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "authoritative",
+          "name" : "isGlobal",
           "in" : "query",
           "description" : "Is authentication required to perform this operation",
           "required" : false,
           "type" : "boolean",
           "default" : false
+        }, {
+          "name" : "authoritative",
+          "in" : "query",
+          "required" : false,
+          "type" : "boolean",
+          "default" : false
         } ],
         "responses" : {
           "403" : {
@@ -18021,7 +18057,7 @@
           "description" : "messageId where to create the subscription. It can be 'latest', 'earliest' or (ledgerId:entryId)",
           "required" : false,
           "schema" : {
-            "$ref" : "#/definitions/MessageIdImpl"
+            "$ref" : "#/definitions/ResetCursorData"
           }
         }, {
           "name" : "replicated",
@@ -19991,15 +20027,15 @@
     "AutoTopicCreationOverride" : {
       "type" : "object",
       "properties" : {
+        "topicType" : {
+          "type" : "string"
+        },
         "defaultNumPartitions" : {
           "type" : "integer",
           "format" : "int32"
         },
         "allowAutoTopicCreation" : {
           "type" : "boolean"
-        },
-        "topicType" : {
-          "type" : "string"
         }
       }
     },
@@ -20017,6 +20053,10 @@
         "limitTime" : {
           "type" : "integer",
           "format" : "int32"
+        },
+        "limit" : {
+          "type" : "integer",
+          "format" : "int64"
         }
       }
     },
@@ -20276,10 +20316,10 @@
     "CompletableFuture" : {
       "type" : "object",
       "properties" : {
-        "cancelled" : {
+        "done" : {
           "type" : "boolean"
         },
-        "done" : {
+        "cancelled" : {
           "type" : "boolean"
         },
         "numberOfDependents" : {
@@ -20294,10 +20334,10 @@
     "CompletableFutureClusterData" : {
       "type" : "object",
       "properties" : {
-        "cancelled" : {
+        "done" : {
           "type" : "boolean"
         },
-        "done" : {
+        "cancelled" : {
           "type" : "boolean"
         },
         "numberOfDependents" : {
@@ -20312,10 +20352,10 @@
     "CompletableFuturePartitionedTopicMetadata" : {
       "type" : "object",
       "properties" : {
-        "cancelled" : {
+        "done" : {
           "type" : "boolean"
         },
-        "done" : {
+        "cancelled" : {
           "type" : "boolean"
         },
         "numberOfDependents" : {
@@ -20353,25 +20393,20 @@
     "ConsumerStats" : {
       "type" : "object",
       "properties" : {
-        "bytesOutCounter" : {
-          "type" : "integer",
-          "format" : "int64"
+        "address" : {
+          "type" : "string"
         },
-        "msgOutCounter" : {
-          "type" : "integer",
-          "format" : "int64"
+        "metadata" : {
+          "type" : "object",
+          "additionalProperties" : {
+            "type" : "string"
+          }
         },
-        "chunkedMessageRate" : {
+        "msgRateRedeliver" : {
           "type" : "number",
           "format" : "double"
         },
-        "connectedSince" : {
-          "type" : "string"
-        },
-        "clientVersion" : {
-          "type" : "string"
-        },
-        "msgRateRedeliver" : {
+        "chunkedMessageRate" : {
           "type" : "number",
           "format" : "double"
         },
@@ -20404,28 +20439,33 @@
         "readPositionWhenJoining" : {
           "type" : "string"
         },
-        "keyHashRanges" : {
-          "type" : "array",
-          "items" : {
-            "type" : "string"
-          }
+        "connectedSince" : {
+          "type" : "string"
         },
-        "address" : {
+        "clientVersion" : {
           "type" : "string"
         },
-        "metadata" : {
-          "type" : "object",
-          "additionalProperties" : {
+        "keyHashRanges" : {
+          "type" : "array",
+          "items" : {
             "type" : "string"
           }
         },
-        "msgThroughputOut" : {
+        "msgRateOut" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgRateOut" : {
+        "msgThroughputOut" : {
           "type" : "number",
           "format" : "double"
+        },
+        "bytesOutCounter" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "msgOutCounter" : {
+          "type" : "integer",
+          "format" : "int64"
         }
       }
     },
@@ -20449,10 +20489,10 @@
         "displayName" : {
           "type" : "string"
         },
-        "symbol" : {
+        "numericCodeAsString" : {
           "type" : "string"
         },
-        "numericCodeAsString" : {
+        "symbol" : {
           "type" : "string"
         }
       }
@@ -20572,15 +20612,15 @@
     "DeserializationConfig" : {
       "type" : "object",
       "properties" : {
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
         "defaultPropertyInclusion" : {
           "$ref" : "#/definitions/Value"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "deserializationFeatures" : {
           "type" : "integer",
           "format" : "int32"
@@ -20591,39 +20631,39 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
+        "defaultVisibilityChecker" : {
+          "$ref" : "#/definitions/VisibilityCheckerObject"
+        },
+        "subtypeResolver" : {
+          "$ref" : "#/definitions/SubtypeResolver"
+        },
         "rootName" : {
           "type" : "string"
         },
         "fullRootName" : {
           "$ref" : "#/definitions/PropertyName"
         },
-        "subtypeResolver" : {
-          "$ref" : "#/definitions/SubtypeResolver"
-        },
-        "defaultVisibilityChecker" : {
-          "$ref" : "#/definitions/VisibilityCheckerObject"
+        "locale" : {
+          "$ref" : "#/definitions/Locale"
         },
         "timeZone" : {
           "$ref" : "#/definitions/TimeZone"
         },
-        "locale" : {
-          "$ref" : "#/definitions/Locale"
+        "propertyNamingStrategy" : {
+          "$ref" : "#/definitions/PropertyNamingStrategy"
         },
-        "classIntrospector" : {
-          "$ref" : "#/definitions/ClassIntrospector"
+        "dateFormat" : {
+          "$ref" : "#/definitions/DateFormat"
         },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "classIntrospector" : {
+          "$ref" : "#/definitions/ClassIntrospector"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
-        "propertyNamingStrategy" : {
-          "$ref" : "#/definitions/PropertyNamingStrategy"
-        },
-        "dateFormat" : {
-          "$ref" : "#/definitions/DateFormat"
-        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
@@ -20635,15 +20675,18 @@
     "DeserializationContext" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "factory" : {
           "$ref" : "#/definitions/DeserializerFactory"
         },
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
         "config" : {
           "$ref" : "#/definitions/DeserializationConfig"
         },
@@ -20656,9 +20699,6 @@
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "contextualType" : {
           "$ref" : "#/definitions/JavaType"
         },
@@ -21001,15 +21041,15 @@
         "enumType" : {
           "type" : "boolean"
         },
-        "containerType" : {
-          "type" : "boolean"
-        },
         "valueHandler" : {
           "type" : "object"
         },
         "typeHandler" : {
           "type" : "object"
         },
+        "containerType" : {
+          "type" : "boolean"
+        },
         "referencedType" : {
           "$ref" : "#/definitions/JavaType"
         },
@@ -21042,9 +21082,6 @@
     "JsonFactory" : {
       "type" : "object",
       "properties" : {
-        "rootValueSeparator" : {
-          "type" : "string"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
@@ -21059,6 +21096,9 @@
         },
         "outputDecorator" : {
           "$ref" : "#/definitions/OutputDecorator"
+        },
+        "rootValueSeparator" : {
+          "type" : "string"
         }
       }
     },
@@ -21068,17 +21108,25 @@
         "closed" : {
           "type" : "boolean"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
+        "characterEscapes" : {
+          "$ref" : "#/definitions/CharacterEscapes"
+        },
         "prettyPrinter" : {
           "$ref" : "#/definitions/PrettyPrinter"
         },
-        "characterEscapes" : {
-          "$ref" : "#/definitions/CharacterEscapes"
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
+        "featureMask" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "formatFeatures" : {
+          "type" : "integer",
+          "format" : "int32"
         },
         "highestEscapedChar" : {
           "type" : "integer",
@@ -21091,25 +21139,21 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "outputContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
-        },
         "currentValue" : {
           "type" : "object"
         },
-        "featureMask" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "formatFeatures" : {
-          "type" : "integer",
-          "format" : "int32"
+        "outputContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         }
       }
     },
     "JsonLocation" : {
       "type" : "object",
       "properties" : {
+        "byteOffset" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
         "sourceRef" : {
           "type" : "object"
         },
@@ -21124,10 +21168,6 @@
         "charOffset" : {
           "type" : "integer",
           "format" : "int64"
-        },
-        "byteOffset" : {
-          "type" : "integer",
-          "format" : "int64"
         }
       }
     },
@@ -21153,6 +21193,12 @@
             "type" : "string"
           }
         },
+        "codec" : {
+          "$ref" : "#/definitions/ObjectCodec"
+        },
+        "currentName" : {
+          "type" : "string"
+        },
         "byteValue" : {
           "type" : "string",
           "format" : "byte"
@@ -21183,30 +21229,15 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "typeId" : {
-          "type" : "object"
-        },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
-        "codec" : {
-          "$ref" : "#/definitions/ObjectCodec"
-        },
         "currentToken" : {
           "type" : "string",
           "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
         },
-        "currentName" : {
-          "type" : "string"
-        },
-        "tokenLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "inputSource" : {
+        "typeId" : {
           "type" : "object"
         },
-        "currentValue" : {
-          "type" : "object"
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
         },
         "featureMask" : {
           "type" : "integer",
@@ -21216,45 +21247,51 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentTokenId" : {
+        "currentValue" : {
+          "type" : "object"
+        },
+        "textOffset" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "parsingContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
+        "numberType" : {
+          "type" : "string",
+          "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
         },
-        "currentLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
+        "bigIntegerValue" : {
+          "type" : "integer"
         },
-        "expectedStartArrayToken" : {
-          "type" : "boolean"
+        "decimalValue" : {
+          "type" : "number"
         },
-        "expectedStartObjectToken" : {
-          "type" : "boolean"
-        },
-        "lastClearedToken" : {
-          "type" : "string",
-          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        "embeddedObject" : {
+          "type" : "object"
         },
-        "textOffset" : {
+        "currentTokenId" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "numberValue" : {
-          "$ref" : "#/definitions/Number"
+        "tokenLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
         },
-        "numberType" : {
-          "type" : "string",
-          "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
+        "parsingContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
-        "bigIntegerValue" : {
-          "type" : "integer"
+        "currentLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
         },
-        "decimalValue" : {
-          "type" : "number"
+        "expectedStartArrayToken" : {
+          "type" : "boolean"
         },
-        "embeddedObject" : {
-          "type" : "object"
+        "expectedStartObjectToken" : {
+          "type" : "boolean"
+        },
+        "lastClearedToken" : {
+          "type" : "string",
+          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        },
+        "numberValue" : {
+          "$ref" : "#/definitions/Number"
         },
         "binaryValue" : {
           "type" : "array",
@@ -21280,6 +21317,9 @@
         },
         "valueAsString" : {
           "type" : "string"
+        },
+        "inputSource" : {
+          "type" : "object"
         }
       }
     },
@@ -21294,24 +21334,17 @@
     "JsonSerializerObject" : {
       "type" : "object",
       "properties" : {
-        "unwrappingSerializer" : {
-          "type" : "boolean"
-        },
         "delegatee" : {
           "$ref" : "#/definitions/JsonSerializerObject"
+        },
+        "unwrappingSerializer" : {
+          "type" : "boolean"
         }
       }
     },
     "JsonStreamContext" : {
       "type" : "object",
       "properties" : {
-        "typeDesc" : {
-          "type" : "string"
-        },
-        "currentIndex" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "parent" : {
           "$ref" : "#/definitions/JsonStreamContext"
         },
@@ -21324,6 +21357,13 @@
         "entryCount" : {
           "type" : "integer",
           "format" : "int32"
+        },
+        "typeDesc" : {
+          "type" : "string"
+        },
+        "currentIndex" : {
+          "type" : "integer",
+          "format" : "int32"
         }
       }
     },
@@ -21611,34 +21651,34 @@
           "type" : "number",
           "format" : "double"
         },
-        "underLoaded" : {
-          "type" : "boolean"
-        },
-        "overLoaded" : {
-          "type" : "boolean"
-        },
-        "loadReportType" : {
-          "type" : "string"
-        },
-        "cpu" : {
+        "bandwidthIn" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "memory" : {
+        "bandwidthOut" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "directMemory" : {
+        "memory" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "bandwidthIn" : {
+        "cpu" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "bandwidthOut" : {
+        "directMemory" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
         "lastUpdate" : {
           "type" : "integer",
           "format" : "int64"
         },
+        "underLoaded" : {
+          "type" : "boolean"
+        },
+        "overLoaded" : {
+          "type" : "boolean"
+        },
+        "loadReportType" : {
+          "type" : "string"
+        },
         "msgThroughputIn" : {
           "type" : "number",
           "format" : "double"
@@ -21748,23 +21788,6 @@
     "MessageId" : {
       "type" : "object"
     },
-    "MessageIdImpl" : {
-      "type" : "object",
-      "properties" : {
-        "ledgerId" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
-        "entryId" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
-        "partitionIndex" : {
-          "type" : "integer",
-          "format" : "int32"
-        }
-      }
-    },
     "Metrics" : {
       "type" : "object",
       "properties" : {
@@ -21926,45 +21949,45 @@
           "type" : "number",
           "format" : "double"
         },
-        "averageMsgSize" : {
-          "type" : "number",
-          "format" : "double"
+        "address" : {
+          "type" : "string"
         },
-        "accessMode" : {
-          "type" : "string",
-          "enum" : [ "Shared", "Exclusive", "WaitForExclusive" ]
+        "metadata" : {
+          "type" : "object",
+          "additionalProperties" : {
+            "type" : "string"
+          }
         },
         "chunkedMessageRate" : {
           "type" : "number",
           "format" : "double"
         },
-        "producerId" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
         "connectedSince" : {
           "type" : "string"
         },
         "clientVersion" : {
           "type" : "string"
         },
-        "address" : {
-          "type" : "string"
+        "accessMode" : {
+          "type" : "string",
+          "enum" : [ "Shared", "Exclusive", "WaitForExclusive" ]
         },
-        "metadata" : {
-          "type" : "object",
-          "additionalProperties" : {
-            "type" : "string"
-          }
+        "producerId" : {
+          "type" : "integer",
+          "format" : "int64"
         },
         "producerName" : {
           "type" : "string"
         },
+        "msgRateIn" : {
+          "type" : "number",
+          "format" : "double"
+        },
         "msgThroughputIn" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgRateIn" : {
+        "averageMsgSize" : {
           "type" : "number",
           "format" : "double"
         }
@@ -21977,6 +22000,9 @@
           "type" : "number",
           "format" : "double"
         },
+        "connected" : {
+          "type" : "boolean"
+        },
         "msgRateExpired" : {
           "type" : "number",
           "format" : "double"
@@ -22001,22 +22027,19 @@
         "outboundConnectedSince" : {
           "type" : "string"
         },
-        "connected" : {
-          "type" : "boolean"
-        },
-        "msgThroughputIn" : {
+        "msgRateIn" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgThroughputOut" : {
+        "msgThroughputIn" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgRateIn" : {
+        "msgRateOut" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgRateOut" : {
+        "msgThroughputOut" : {
           "type" : "number",
           "format" : "double"
         }
@@ -22029,36 +22052,13 @@
           "type" : "number",
           "format" : "double"
         },
-        "consumers" : {
-          "type" : "array",
-          "items" : {
-            "$ref" : "#/definitions/ConsumerStats"
-          }
-        },
-        "bytesOutCounter" : {
-          "type" : "integer",
-          "format" : "int64"
+        "type" : {
+          "type" : "string"
         },
-        "msgOutCounter" : {
+        "backlogSize" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "nonContiguousDeletedMessagesRanges" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "nonContiguousDeletedMessagesRangesSerializedSize" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "chunkedMessageRate" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "msgRateExpired" : {
-          "type" : "number",
-          "format" : "double"
-        },
         "msgBacklog" : {
           "type" : "integer",
           "format" : "int64"
@@ -22067,6 +22067,10 @@
           "type" : "number",
           "format" : "double"
         },
+        "chunkedMessageRate" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "earliestMsgPublishTimeInBacklog" : {
           "type" : "integer",
           "format" : "int64"
@@ -22089,6 +22093,10 @@
         "activeConsumerName" : {
           "type" : "string"
         },
+        "msgRateExpired" : {
+          "type" : "number",
+          "format" : "double"
+        },
         "totalMsgExpired" : {
           "type" : "integer",
           "format" : "int64"
@@ -22131,53 +22139,88 @@
             "type" : "string"
           }
         },
-        "type" : {
-          "type" : "string"
-        },
-        "backlogSize" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
         "replicated" : {
           "type" : "boolean"
         },
         "durable" : {
           "type" : "boolean"
         },
-        "msgThroughputOut" : {
+        "consumers" : {
+          "type" : "array",
+          "items" : {
+            "$ref" : "#/definitions/ConsumerStats"
+          }
+        },
+        "msgRateOut" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgRateOut" : {
+        "msgThroughputOut" : {
           "type" : "number",
           "format" : "double"
+        },
+        "bytesOutCounter" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "msgOutCounter" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "nonContiguousDeletedMessagesRanges" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "nonContiguousDeletedMessagesRangesSerializedSize" : {
+          "type" : "integer",
+          "format" : "int32"
         }
       }
     },
     "NonPersistentTopicStats" : {
       "type" : "object",
       "properties" : {
-        "publishers" : {
-          "type" : "array",
-          "items" : {
-            "$ref" : "#/definitions/NonPersistentPublisherStats"
+        "subscriptions" : {
+          "type" : "object",
+          "additionalProperties" : {
+            "$ref" : "#/definitions/NonPersistentSubscriptionStats"
           }
         },
         "msgDropRate" : {
           "type" : "number",
           "format" : "double"
         },
+        "publishers" : {
+          "type" : "array",
+          "items" : {
+            "$ref" : "#/definitions/NonPersistentPublisherStats"
+          }
+        },
         "replication" : {
           "type" : "object",
           "additionalProperties" : {
             "$ref" : "#/definitions/NonPersistentReplicatorStats"
           }
         },
-        "subscriptions" : {
-          "type" : "object",
-          "additionalProperties" : {
-            "$ref" : "#/definitions/NonPersistentSubscriptionStats"
-          }
+        "backlogSize" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "msgRateIn" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "msgThroughputIn" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "msgRateOut" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "msgThroughputOut" : {
+          "type" : "number",
+          "format" : "double"
         },
         "bytesInCounter" : {
           "type" : "integer",
@@ -22235,26 +22278,6 @@
         },
         "compaction" : {
           "$ref" : "#/definitions/CompactionStats"
-        },
-        "backlogSize" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
-        "msgThroughputIn" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgRateIn" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgRateOut" : {
-          "type" : "number",
-          "format" : "double"
         }
       }
     },
@@ -22312,9 +22335,24 @@
         "factory" : {
           "$ref" : "#/definitions/JsonFactory"
         },
+        "propertyNamingStrategy" : {
+          "$ref" : "#/definitions/PropertyNamingStrategy"
+        },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
+        "jsonFactory" : {
+          "$ref" : "#/definitions/JsonFactory"
+        },
+        "dateFormat" : {
+          "$ref" : "#/definitions/DateFormat"
+        },
+        "injectableValues" : {
+          "$ref" : "#/definitions/InjectableValues"
+        },
         "serializationConfig" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -22338,58 +22376,12 @@
         },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
-        },
-        "propertyNamingStrategy" : {
-          "$ref" : "#/definitions/PropertyNamingStrategy"
-        },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
-        "jsonFactory" : {
-          "$ref" : "#/definitions/JsonFactory"
-        },
-        "dateFormat" : {
-          "$ref" : "#/definitions/DateFormat"
-        },
-        "injectableValues" : {
-          "$ref" : "#/definitions/InjectableValues"
         }
       }
     },
     "OffloadPolicies" : {
       "type" : "object",
       "properties" : {
-        "managedLedgerOffloadDriver" : {
-          "type" : "string"
-        },
-        "offloadersDirectory" : {
-          "type" : "string"
-        },
-        "managedLedgerOffloadMaxThreads" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "managedLedgerOffloadPrefetchRounds" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "managedLedgerOffloadedReadPriority" : {
-          "type" : "string",
-          "enum" : [ "BOOKKEEPER_FIRST", "TIERED_STORAGE_FIRST" ]
-        },
-        "s3ManagedLedgerOffloadRegion" : {
-          "type" : "string"
-        },
-        "s3ManagedLedgerOffloadBucket" : {
-          "type" : "string"
-        },
-        "s3ManagedLedgerOffloadServiceEndpoint" : {
-          "type" : "string"
-        },
-        "s3ManagedLedgerOffloadMaxBlockSizeInBytes" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "s3ManagedLedgerOffloadReadBufferSizeInBytes" : {
           "type" : "integer",
           "format" : "int32"
@@ -22446,6 +22438,23 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "managedLedgerOffloadedReadPriority" : {
+          "type" : "string",
+          "enum" : [ "BOOKKEEPER_FIRST", "TIERED_STORAGE_FIRST" ]
+        },
+        "s3ManagedLedgerOffloadRegion" : {
+          "type" : "string"
+        },
+        "s3ManagedLedgerOffloadBucket" : {
+          "type" : "string"
+        },
+        "s3ManagedLedgerOffloadServiceEndpoint" : {
+          "type" : "string"
+        },
+        "s3ManagedLedgerOffloadMaxBlockSizeInBytes" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "managedLedgerOffloadThresholdInBytes" : {
           "type" : "integer",
           "format" : "int64"
@@ -22453,6 +22462,20 @@
         "managedLedgerOffloadDeletionLagInMillis" : {
           "type" : "integer",
           "format" : "int64"
+        },
+        "managedLedgerOffloadDriver" : {
+          "type" : "string"
+        },
+        "offloadersDirectory" : {
+          "type" : "string"
+        },
+        "managedLedgerOffloadMaxThreads" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "managedLedgerOffloadPrefetchRounds" : {
+          "type" : "integer",
+          "format" : "int32"
         }
       }
     },
@@ -22568,15 +22591,15 @@
     "OffloadProcessStatus" : {
       "type" : "object",
       "properties" : {
+        "status" : {
+          "type" : "string",
+          "enum" : [ "NOT_RUN", "RUNNING", "SUCCESS", "ERROR" ]
+        },
         "lastError" : {
           "type" : "string"
         },
         "firstUnoffloadedMessage" : {
           "$ref" : "#/definitions/MessageId"
-        },
-        "status" : {
-          "type" : "string",
-          "enum" : [ "NOT_RUN", "RUNNING", "SUCCESS", "ERROR" ]
         }
       }
     },
@@ -23185,10 +23208,10 @@
     "PublicKey" : {
       "type" : "object",
       "properties" : {
-        "algorithm" : {
+        "format" : {
           "type" : "string"
         },
-        "format" : {
+        "algorithm" : {
           "type" : "string"
         },
         "encoded" : {
@@ -23214,47 +23237,47 @@
       }
     },
     "PublisherStats" : {
-      "type" : "object",
-      "properties" : {
-        "averageMsgSize" : {
-          "type" : "number",
-          "format" : "double"
+      "type" : "object",
+      "properties" : {
+        "address" : {
+          "type" : "string"
         },
-        "accessMode" : {
-          "type" : "string",
-          "enum" : [ "Shared", "Exclusive", "WaitForExclusive" ]
+        "metadata" : {
+          "type" : "object",
+          "additionalProperties" : {
+            "type" : "string"
+          }
         },
         "chunkedMessageRate" : {
           "type" : "number",
           "format" : "double"
         },
-        "producerId" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
         "connectedSince" : {
           "type" : "string"
         },
         "clientVersion" : {
           "type" : "string"
         },
-        "address" : {
-          "type" : "string"
+        "accessMode" : {
+          "type" : "string",
+          "enum" : [ "Shared", "Exclusive", "WaitForExclusive" ]
         },
-        "metadata" : {
-          "type" : "object",
-          "additionalProperties" : {
-            "type" : "string"
-          }
+        "producerId" : {
+          "type" : "integer",
+          "format" : "int64"
         },
         "producerName" : {
           "type" : "string"
         },
+        "msgRateIn" : {
+          "type" : "number",
+          "format" : "double"
+        },
         "msgThroughputIn" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgRateIn" : {
+        "averageMsgSize" : {
           "type" : "number",
           "format" : "double"
         }
@@ -23271,6 +23294,9 @@
     "ReplicatorStats" : {
       "type" : "object",
       "properties" : {
+        "connected" : {
+          "type" : "boolean"
+        },
         "msgRateExpired" : {
           "type" : "number",
           "format" : "double"
@@ -23295,22 +23321,19 @@
         "outboundConnectedSince" : {
           "type" : "string"
         },
-        "connected" : {
-          "type" : "boolean"
-        },
-        "msgThroughputIn" : {
+        "msgRateIn" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgThroughputOut" : {
+        "msgThroughputIn" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgRateIn" : {
+        "msgRateOut" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgRateOut" : {
+        "msgThroughputOut" : {
           "type" : "number",
           "format" : "double"
         }
@@ -23407,11 +23430,11 @@
     "ResourceUnit" : {
       "type" : "object",
       "properties" : {
-        "resourceId" : {
-          "type" : "string"
-        },
         "availableResource" : {
           "$ref" : "#/definitions/ResourceDescription"
+        },
+        "resourceId" : {
+          "type" : "string"
         }
       }
     },
@@ -23464,6 +23487,9 @@
     "SerializationConfig" : {
       "type" : "object",
       "properties" : {
+        "defaultPrettyPrinter" : {
+          "$ref" : "#/definitions/PrettyPrinter"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -23473,9 +23499,6 @@
         "filterProvider" : {
           "$ref" : "#/definitions/FilterProvider"
         },
-        "defaultPrettyPrinter" : {
-          "$ref" : "#/definitions/PrettyPrinter"
-        },
         "serializationInclusion" : {
           "type" : "string",
           "enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
@@ -23487,39 +23510,39 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
+        "defaultVisibilityChecker" : {
+          "$ref" : "#/definitions/VisibilityCheckerObject"
+        },
+        "subtypeResolver" : {
+          "$ref" : "#/definitions/SubtypeResolver"
+        },
         "rootName" : {
           "type" : "string"
         },
         "fullRootName" : {
           "$ref" : "#/definitions/PropertyName"
         },
-        "subtypeResolver" : {
-          "$ref" : "#/definitions/SubtypeResolver"
-        },
-        "defaultVisibilityChecker" : {
-          "$ref" : "#/definitions/VisibilityCheckerObject"
+        "locale" : {
+          "$ref" : "#/definitions/Locale"
         },
         "timeZone" : {
           "$ref" : "#/definitions/TimeZone"
         },
-        "locale" : {
-          "$ref" : "#/definitions/Locale"
+        "propertyNamingStrategy" : {
+          "$ref" : "#/definitions/PropertyNamingStrategy"
         },
-        "classIntrospector" : {
-          "$ref" : "#/definitions/ClassIntrospector"
+        "dateFormat" : {
+          "$ref" : "#/definitions/DateFormat"
         },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "classIntrospector" : {
+          "$ref" : "#/definitions/ClassIntrospector"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
-        "propertyNamingStrategy" : {
-          "$ref" : "#/definitions/PropertyNamingStrategy"
-        },
-        "dateFormat" : {
-          "$ref" : "#/definitions/DateFormat"
-        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
@@ -23534,15 +23557,15 @@
     "SerializerProvider" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "generator" : {
           "$ref" : "#/definitions/JsonGenerator"
         },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "config" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -23653,36 +23676,13 @@
     "SubscriptionStats" : {
       "type" : "object",
       "properties" : {
-        "consumers" : {
-          "type" : "array",
-          "items" : {
-            "$ref" : "#/definitions/ConsumerStats"
-          }
-        },
-        "bytesOutCounter" : {
-          "type" : "integer",
-          "format" : "int64"
+        "type" : {
+          "type" : "string"
         },
-        "msgOutCounter" : {
+        "backlogSize" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "nonContiguousDeletedMessagesRanges" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "nonContiguousDeletedMessagesRangesSerializedSize" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "chunkedMessageRate" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "msgRateExpired" : {
-          "type" : "number",
-          "format" : "double"
-        },
         "msgBacklog" : {
           "type" : "integer",
           "format" : "int64"
@@ -23691,6 +23691,10 @@
           "type" : "number",
           "format" : "double"
         },
+        "chunkedMessageRate" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "earliestMsgPublishTimeInBacklog" : {
           "type" : "integer",
           "format" : "int64"
@@ -23713,6 +23717,10 @@
         "activeConsumerName" : {
           "type" : "string"
         },
+        "msgRateExpired" : {
+          "type" : "number",
+          "format" : "double"
+        },
         "totalMsgExpired" : {
           "type" : "integer",
           "format" : "int64"
@@ -23755,26 +23763,41 @@
             "type" : "string"
           }
         },
-        "type" : {
-          "type" : "string"
-        },
-        "backlogSize" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
         "replicated" : {
           "type" : "boolean"
         },
         "durable" : {
           "type" : "boolean"
         },
-        "msgThroughputOut" : {
+        "consumers" : {
+          "type" : "array",
+          "items" : {
+            "$ref" : "#/definitions/ConsumerStats"
+          }
+        },
+        "msgRateOut" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgRateOut" : {
+        "msgThroughputOut" : {
           "type" : "number",
           "format" : "double"
+        },
+        "bytesOutCounter" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "msgOutCounter" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "nonContiguousDeletedMessagesRanges" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "nonContiguousDeletedMessagesRangesSerializedSize" : {
+          "type" : "integer",
+          "format" : "int32"
         }
       }
     },
@@ -23856,6 +23879,32 @@
     "TopicStats" : {
       "type" : "object",
       "properties" : {
+        "backlogSize" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "subscriptions" : {
+          "type" : "object",
+          "additionalProperties" : {
+            "$ref" : "#/definitions/SubscriptionStats"
+          }
+        },
+        "msgRateIn" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "msgThroughputIn" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "msgRateOut" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "msgThroughputOut" : {
+          "type" : "number",
+          "format" : "double"
+        },
         "bytesInCounter" : {
           "type" : "integer",
           "format" : "int64"
@@ -23924,32 +23973,6 @@
         },
         "compaction" : {
           "$ref" : "#/definitions/CompactionStats"
-        },
-        "backlogSize" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
-        "subscriptions" : {
-          "type" : "object",
-          "additionalProperties" : {
-            "$ref" : "#/definitions/SubscriptionStats"
-          }
-        },
-        "msgThroughputIn" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgRateIn" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgRateOut" : {
-          "type" : "number",
-          "format" : "double"
         }
       }
     },
@@ -24055,6 +24078,9 @@
         "validateConnectorConfig" : {
           "type" : "boolean"
         },
+        "uploadBuiltinSinksSources" : {
+          "type" : "boolean"
+        },
         "functionsDirectory" : {
           "type" : "string"
         },
@@ -24263,6 +24289,12 @@
         "forwardSourceMessageProperty" : {
           "type" : "boolean"
         },
+        "additionalJavaRuntimeArguments" : {
+          "type" : "array",
+          "items" : {
+            "type" : "string"
+          }
+        },
         "functionsWorkerServiceNarPackage" : {
           "type" : "string"
         },
@@ -24343,9 +24375,6 @@
     "WorkerService" : {
       "type" : "object",
       "properties" : {
-        "workerConfig" : {
-          "$ref" : "#/definitions/WorkerConfig"
-        },
         "sources" : {
           "$ref" : "#/definitions/SourcesWorkerService"
         },
@@ -24363,6 +24392,9 @@
         },
         "workers" : {
           "$ref" : "#/definitions/WorkersWorkerService"
+        },
+        "workerConfig" : {
+          "$ref" : "#/definitions/WorkerConfig"
         }
       }
     },
@@ -24399,6 +24431,16 @@
         "issuerX500Principal" : {
           "$ref" : "#/definitions/X500Principal"
         },
+        "version" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "keyUsage" : {
+          "type" : "array",
+          "items" : {
+            "type" : "boolean"
+          }
+        },
         "issuerDN" : {
           "$ref" : "#/definitions/Principal"
         },
@@ -24454,16 +24496,6 @@
             "type" : "string"
           }
         },
-        "version" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "keyUsage" : {
-          "type" : "array",
-          "items" : {
-            "type" : "boolean"
-          }
-        },
         "signature" : {
           "type" : "array",
           "items" : {
@@ -24493,14 +24525,14 @@
             }
           }
         },
-        "nonCriticalExtensionOIDs" : {
+        "criticalExtensionOIDs" : {
           "type" : "array",
           "uniqueItems" : true,
           "items" : {
             "type" : "string"
           }
         },
-        "criticalExtensionOIDs" : {
+        "nonCriticalExtensionOIDs" : {
           "type" : "array",
           "uniqueItems" : true,
           "items" : {
diff --git a/content/swagger/2.10.0-SNAPSHOT/swaggerfunctions.json b/content/swagger/2.10.0-SNAPSHOT/swaggerfunctions.json
index 1bdd091..253bd2d 100644
--- a/content/swagger/2.10.0-SNAPSHOT/swaggerfunctions.json
+++ b/content/swagger/2.10.0-SNAPSHOT/swaggerfunctions.json
@@ -1048,10 +1048,10 @@
     "CompletableFuture" : {
       "type" : "object",
       "properties" : {
-        "cancelled" : {
+        "done" : {
           "type" : "boolean"
         },
-        "done" : {
+        "cancelled" : {
           "type" : "boolean"
         },
         "numberOfDependents" : {
@@ -1066,10 +1066,10 @@
     "CompletableFutureClusterData" : {
       "type" : "object",
       "properties" : {
-        "cancelled" : {
+        "done" : {
           "type" : "boolean"
         },
-        "done" : {
+        "cancelled" : {
           "type" : "boolean"
         },
         "numberOfDependents" : {
@@ -1165,10 +1165,10 @@
         "displayName" : {
           "type" : "string"
         },
-        "symbol" : {
+        "numericCodeAsString" : {
           "type" : "string"
         },
-        "numericCodeAsString" : {
+        "symbol" : {
           "type" : "string"
         }
       }
@@ -1194,15 +1194,15 @@
     "DeserializationConfig" : {
       "type" : "object",
       "properties" : {
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
         "defaultPropertyInclusion" : {
           "$ref" : "#/definitions/Value"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "deserializationFeatures" : {
           "type" : "integer",
           "format" : "int32"
@@ -1213,39 +1213,39 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
+        "defaultVisibilityChecker" : {
+          "$ref" : "#/definitions/VisibilityCheckerObject"
+        },
+        "subtypeResolver" : {
+          "$ref" : "#/definitions/SubtypeResolver"
+        },
         "rootName" : {
           "type" : "string"
         },
         "fullRootName" : {
           "$ref" : "#/definitions/PropertyName"
         },
-        "subtypeResolver" : {
-          "$ref" : "#/definitions/SubtypeResolver"
-        },
-        "defaultVisibilityChecker" : {
-          "$ref" : "#/definitions/VisibilityCheckerObject"
+        "locale" : {
+          "$ref" : "#/definitions/Locale"
         },
         "timeZone" : {
           "$ref" : "#/definitions/TimeZone"
         },
-        "locale" : {
-          "$ref" : "#/definitions/Locale"
+        "propertyNamingStrategy" : {
+          "$ref" : "#/definitions/PropertyNamingStrategy"
         },
-        "classIntrospector" : {
-          "$ref" : "#/definitions/ClassIntrospector"
+        "dateFormat" : {
+          "$ref" : "#/definitions/DateFormat"
         },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "classIntrospector" : {
+          "$ref" : "#/definitions/ClassIntrospector"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
-        "propertyNamingStrategy" : {
-          "$ref" : "#/definitions/PropertyNamingStrategy"
-        },
-        "dateFormat" : {
-          "$ref" : "#/definitions/DateFormat"
-        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
@@ -1257,15 +1257,18 @@
     "DeserializationContext" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "factory" : {
           "$ref" : "#/definitions/DeserializerFactory"
         },
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
         "config" : {
           "$ref" : "#/definitions/DeserializationConfig"
         },
@@ -1278,9 +1281,6 @@
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "contextualType" : {
           "$ref" : "#/definitions/JavaType"
         },
@@ -1887,15 +1887,15 @@
         "enumType" : {
           "type" : "boolean"
         },
-        "containerType" : {
-          "type" : "boolean"
-        },
         "valueHandler" : {
           "type" : "object"
         },
         "typeHandler" : {
           "type" : "object"
         },
+        "containerType" : {
+          "type" : "boolean"
+        },
         "referencedType" : {
           "$ref" : "#/definitions/JavaType"
         },
@@ -1928,9 +1928,6 @@
     "JsonFactory" : {
       "type" : "object",
       "properties" : {
-        "rootValueSeparator" : {
-          "type" : "string"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
@@ -1945,6 +1942,9 @@
         },
         "outputDecorator" : {
           "$ref" : "#/definitions/OutputDecorator"
+        },
+        "rootValueSeparator" : {
+          "type" : "string"
         }
       }
     },
@@ -1954,17 +1954,25 @@
         "closed" : {
           "type" : "boolean"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
+        "characterEscapes" : {
+          "$ref" : "#/definitions/CharacterEscapes"
+        },
         "prettyPrinter" : {
           "$ref" : "#/definitions/PrettyPrinter"
         },
-        "characterEscapes" : {
-          "$ref" : "#/definitions/CharacterEscapes"
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
+        "featureMask" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "formatFeatures" : {
+          "type" : "integer",
+          "format" : "int32"
         },
         "highestEscapedChar" : {
           "type" : "integer",
@@ -1977,25 +1985,21 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "outputContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
-        },
         "currentValue" : {
           "type" : "object"
         },
-        "featureMask" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "formatFeatures" : {
-          "type" : "integer",
-          "format" : "int32"
+        "outputContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         }
       }
     },
     "JsonLocation" : {
       "type" : "object",
       "properties" : {
+        "byteOffset" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
         "sourceRef" : {
           "type" : "object"
         },
@@ -2010,10 +2014,6 @@
         "charOffset" : {
           "type" : "integer",
           "format" : "int64"
-        },
-        "byteOffset" : {
-          "type" : "integer",
-          "format" : "int64"
         }
       }
     },
@@ -2039,6 +2039,12 @@
             "type" : "string"
           }
         },
+        "codec" : {
+          "$ref" : "#/definitions/ObjectCodec"
+        },
+        "currentName" : {
+          "type" : "string"
+        },
         "byteValue" : {
           "type" : "string",
           "format" : "byte"
@@ -2069,30 +2075,15 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "typeId" : {
-          "type" : "object"
-        },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
-        "codec" : {
-          "$ref" : "#/definitions/ObjectCodec"
-        },
         "currentToken" : {
           "type" : "string",
           "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
         },
-        "currentName" : {
-          "type" : "string"
-        },
-        "tokenLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "inputSource" : {
+        "typeId" : {
           "type" : "object"
         },
-        "currentValue" : {
-          "type" : "object"
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
         },
         "featureMask" : {
           "type" : "integer",
@@ -2102,10 +2093,33 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "currentValue" : {
+          "type" : "object"
+        },
+        "textOffset" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "numberType" : {
+          "type" : "string",
+          "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
+        },
+        "bigIntegerValue" : {
+          "type" : "integer"
+        },
+        "decimalValue" : {
+          "type" : "number"
+        },
+        "embeddedObject" : {
+          "type" : "object"
+        },
         "currentTokenId" : {
           "type" : "integer",
           "format" : "int32"
         },
+        "tokenLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
+        },
         "parsingContext" : {
           "$ref" : "#/definitions/JsonStreamContext"
         },
@@ -2122,26 +2136,9 @@
           "type" : "string",
           "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
         },
-        "textOffset" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "numberValue" : {
           "$ref" : "#/definitions/Number"
         },
-        "numberType" : {
-          "type" : "string",
-          "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
-        },
-        "bigIntegerValue" : {
-          "type" : "integer"
-        },
-        "decimalValue" : {
-          "type" : "number"
-        },
-        "embeddedObject" : {
-          "type" : "object"
-        },
         "binaryValue" : {
           "type" : "array",
           "items" : {
@@ -2166,6 +2163,9 @@
         },
         "valueAsString" : {
           "type" : "string"
+        },
+        "inputSource" : {
+          "type" : "object"
         }
       }
     },
@@ -2180,24 +2180,17 @@
     "JsonSerializerObject" : {
       "type" : "object",
       "properties" : {
-        "unwrappingSerializer" : {
-          "type" : "boolean"
-        },
         "delegatee" : {
           "$ref" : "#/definitions/JsonSerializerObject"
+        },
+        "unwrappingSerializer" : {
+          "type" : "boolean"
         }
       }
     },
     "JsonStreamContext" : {
       "type" : "object",
       "properties" : {
-        "typeDesc" : {
-          "type" : "string"
-        },
-        "currentIndex" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "parent" : {
           "$ref" : "#/definitions/JsonStreamContext"
         },
@@ -2210,6 +2203,13 @@
         "entryCount" : {
           "type" : "integer",
           "format" : "int32"
+        },
+        "typeDesc" : {
+          "type" : "string"
+        },
+        "currentIndex" : {
+          "type" : "integer",
+          "format" : "int32"
         }
       }
     },
@@ -2284,26 +2284,6 @@
     "Message" : {
       "type" : "object",
       "properties" : {
-        "topicName" : {
-          "type" : "string"
-        },
-        "messageId" : {
-          "$ref" : "#/definitions/MessageId"
-        },
-        "encryptionCtx" : {
-          "$ref" : "#/definitions/EncryptionContext"
-        },
-        "redeliveryCount" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "readerSchema" : {
-          "$ref" : "#/definitions/SchemaObject"
-        },
-        "brokerPublishTime" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
         "keyBytes" : {
           "type" : "array",
           "items" : {
@@ -2334,6 +2314,23 @@
             "format" : "byte"
           }
         },
+        "brokerPublishTime" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "messageId" : {
+          "$ref" : "#/definitions/MessageId"
+        },
+        "encryptionCtx" : {
+          "$ref" : "#/definitions/EncryptionContext"
+        },
+        "redeliveryCount" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "readerSchema" : {
+          "$ref" : "#/definitions/SchemaObject"
+        },
         "publishTime" : {
           "type" : "integer",
           "format" : "int64"
@@ -2368,6 +2365,9 @@
         },
         "replicated" : {
           "type" : "boolean"
+        },
+        "topicName" : {
+          "type" : "string"
         }
       }
     },
@@ -2481,9 +2481,24 @@
         "factory" : {
           "$ref" : "#/definitions/JsonFactory"
         },
+        "propertyNamingStrategy" : {
+          "$ref" : "#/definitions/PropertyNamingStrategy"
+        },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
+        "jsonFactory" : {
+          "$ref" : "#/definitions/JsonFactory"
+        },
+        "dateFormat" : {
+          "$ref" : "#/definitions/DateFormat"
+        },
+        "injectableValues" : {
+          "$ref" : "#/definitions/InjectableValues"
+        },
         "serializationConfig" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -2507,21 +2522,6 @@
         },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
-        },
-        "propertyNamingStrategy" : {
-          "$ref" : "#/definitions/PropertyNamingStrategy"
-        },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
-        "jsonFactory" : {
-          "$ref" : "#/definitions/JsonFactory"
-        },
-        "dateFormat" : {
-          "$ref" : "#/definitions/DateFormat"
-        },
-        "injectableValues" : {
-          "$ref" : "#/definitions/InjectableValues"
         }
       }
     },
@@ -2622,10 +2622,10 @@
     "PublicKey" : {
       "type" : "object",
       "properties" : {
-        "algorithm" : {
+        "format" : {
           "type" : "string"
         },
-        "format" : {
+        "algorithm" : {
           "type" : "string"
         },
         "encoded" : {
@@ -2668,9 +2668,6 @@
     "SchemaInfo" : {
       "type" : "object",
       "properties" : {
-        "schemaDefinition" : {
-          "type" : "string"
-        },
         "name" : {
           "type" : "string"
         },
@@ -2690,6 +2687,9 @@
             "type" : "string",
             "format" : "byte"
           }
+        },
+        "schemaDefinition" : {
+          "type" : "string"
         }
       }
     },
@@ -2707,6 +2707,9 @@
     "SerializationConfig" : {
       "type" : "object",
       "properties" : {
+        "defaultPrettyPrinter" : {
+          "$ref" : "#/definitions/PrettyPrinter"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -2716,9 +2719,6 @@
         "filterProvider" : {
           "$ref" : "#/definitions/FilterProvider"
         },
-        "defaultPrettyPrinter" : {
-          "$ref" : "#/definitions/PrettyPrinter"
-        },
         "serializationInclusion" : {
           "type" : "string",
           "enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
@@ -2730,39 +2730,39 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
+        "defaultVisibilityChecker" : {
+          "$ref" : "#/definitions/VisibilityCheckerObject"
+        },
+        "subtypeResolver" : {
+          "$ref" : "#/definitions/SubtypeResolver"
+        },
         "rootName" : {
           "type" : "string"
         },
         "fullRootName" : {
           "$ref" : "#/definitions/PropertyName"
         },
-        "subtypeResolver" : {
-          "$ref" : "#/definitions/SubtypeResolver"
-        },
-        "defaultVisibilityChecker" : {
-          "$ref" : "#/definitions/VisibilityCheckerObject"
+        "locale" : {
+          "$ref" : "#/definitions/Locale"
         },
         "timeZone" : {
           "$ref" : "#/definitions/TimeZone"
         },
-        "locale" : {
-          "$ref" : "#/definitions/Locale"
+        "propertyNamingStrategy" : {
+          "$ref" : "#/definitions/PropertyNamingStrategy"
         },
-        "classIntrospector" : {
-          "$ref" : "#/definitions/ClassIntrospector"
+        "dateFormat" : {
+          "$ref" : "#/definitions/DateFormat"
         },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "classIntrospector" : {
+          "$ref" : "#/definitions/ClassIntrospector"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
-        "propertyNamingStrategy" : {
-          "$ref" : "#/definitions/PropertyNamingStrategy"
-        },
-        "dateFormat" : {
-          "$ref" : "#/definitions/DateFormat"
-        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
@@ -2777,15 +2777,15 @@
     "SerializerProvider" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "generator" : {
           "$ref" : "#/definitions/JsonGenerator"
         },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "config" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -2950,6 +2950,16 @@
         "issuerX500Principal" : {
           "$ref" : "#/definitions/X500Principal"
         },
+        "version" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "keyUsage" : {
+          "type" : "array",
+          "items" : {
+            "type" : "boolean"
+          }
+        },
         "issuerDN" : {
           "$ref" : "#/definitions/Principal"
         },
@@ -3005,16 +3015,6 @@
             "type" : "string"
           }
         },
-        "version" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "keyUsage" : {
-          "type" : "array",
-          "items" : {
-            "type" : "boolean"
-          }
-        },
         "signature" : {
           "type" : "array",
           "items" : {
@@ -3044,14 +3044,14 @@
             }
           }
         },
-        "nonCriticalExtensionOIDs" : {
+        "criticalExtensionOIDs" : {
           "type" : "array",
           "uniqueItems" : true,
           "items" : {
             "type" : "string"
           }
         },
-        "criticalExtensionOIDs" : {
+        "nonCriticalExtensionOIDs" : {
           "type" : "array",
           "uniqueItems" : true,
           "items" : {
diff --git a/content/swagger/2.10.0-SNAPSHOT/swaggerpackages.json b/content/swagger/2.10.0-SNAPSHOT/swaggerpackages.json
index e722938..8c270962 100644
--- a/content/swagger/2.10.0-SNAPSHOT/swaggerpackages.json
+++ b/content/swagger/2.10.0-SNAPSHOT/swaggerpackages.json
@@ -497,10 +497,10 @@
     "CompletableFuture" : {
       "type" : "object",
       "properties" : {
-        "cancelled" : {
+        "done" : {
           "type" : "boolean"
         },
-        "done" : {
+        "cancelled" : {
           "type" : "boolean"
         },
         "numberOfDependents" : {
@@ -515,10 +515,10 @@
     "CompletableFutureClusterData" : {
       "type" : "object",
       "properties" : {
-        "cancelled" : {
+        "done" : {
           "type" : "boolean"
         },
-        "done" : {
+        "cancelled" : {
           "type" : "boolean"
         },
         "numberOfDependents" : {
@@ -550,10 +550,10 @@
         "displayName" : {
           "type" : "string"
         },
-        "symbol" : {
+        "numericCodeAsString" : {
           "type" : "string"
         },
-        "numericCodeAsString" : {
+        "symbol" : {
           "type" : "string"
         }
       }
@@ -579,15 +579,15 @@
     "DeserializationConfig" : {
       "type" : "object",
       "properties" : {
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
         "defaultPropertyInclusion" : {
           "$ref" : "#/definitions/Value"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "deserializationFeatures" : {
           "type" : "integer",
           "format" : "int32"
@@ -598,39 +598,39 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
+        "defaultVisibilityChecker" : {
+          "$ref" : "#/definitions/VisibilityCheckerObject"
+        },
+        "subtypeResolver" : {
+          "$ref" : "#/definitions/SubtypeResolver"
+        },
         "rootName" : {
           "type" : "string"
         },
         "fullRootName" : {
           "$ref" : "#/definitions/PropertyName"
         },
-        "subtypeResolver" : {
-          "$ref" : "#/definitions/SubtypeResolver"
-        },
-        "defaultVisibilityChecker" : {
-          "$ref" : "#/definitions/VisibilityCheckerObject"
+        "locale" : {
+          "$ref" : "#/definitions/Locale"
         },
         "timeZone" : {
           "$ref" : "#/definitions/TimeZone"
         },
-        "locale" : {
-          "$ref" : "#/definitions/Locale"
+        "propertyNamingStrategy" : {
+          "$ref" : "#/definitions/PropertyNamingStrategy"
         },
-        "classIntrospector" : {
-          "$ref" : "#/definitions/ClassIntrospector"
+        "dateFormat" : {
+          "$ref" : "#/definitions/DateFormat"
         },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "classIntrospector" : {
+          "$ref" : "#/definitions/ClassIntrospector"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
-        "propertyNamingStrategy" : {
-          "$ref" : "#/definitions/PropertyNamingStrategy"
-        },
-        "dateFormat" : {
-          "$ref" : "#/definitions/DateFormat"
-        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
@@ -642,15 +642,18 @@
     "DeserializationContext" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "factory" : {
           "$ref" : "#/definitions/DeserializerFactory"
         },
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
         "config" : {
           "$ref" : "#/definitions/DeserializationConfig"
         },
@@ -663,9 +666,6 @@
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "contextualType" : {
           "$ref" : "#/definitions/JavaType"
         },
@@ -761,15 +761,15 @@
         "enumType" : {
           "type" : "boolean"
         },
-        "containerType" : {
-          "type" : "boolean"
-        },
         "valueHandler" : {
           "type" : "object"
         },
         "typeHandler" : {
           "type" : "object"
         },
+        "containerType" : {
+          "type" : "boolean"
+        },
         "referencedType" : {
           "$ref" : "#/definitions/JavaType"
         },
@@ -802,9 +802,6 @@
     "JsonFactory" : {
       "type" : "object",
       "properties" : {
-        "rootValueSeparator" : {
-          "type" : "string"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
@@ -819,6 +816,9 @@
         },
         "outputDecorator" : {
           "$ref" : "#/definitions/OutputDecorator"
+        },
+        "rootValueSeparator" : {
+          "type" : "string"
         }
       }
     },
@@ -828,17 +828,25 @@
         "closed" : {
           "type" : "boolean"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
+        "characterEscapes" : {
+          "$ref" : "#/definitions/CharacterEscapes"
+        },
         "prettyPrinter" : {
           "$ref" : "#/definitions/PrettyPrinter"
         },
-        "characterEscapes" : {
-          "$ref" : "#/definitions/CharacterEscapes"
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
+        "featureMask" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "formatFeatures" : {
+          "type" : "integer",
+          "format" : "int32"
         },
         "highestEscapedChar" : {
           "type" : "integer",
@@ -851,25 +859,21 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "outputContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
-        },
         "currentValue" : {
           "type" : "object"
         },
-        "featureMask" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "formatFeatures" : {
-          "type" : "integer",
-          "format" : "int32"
+        "outputContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         }
       }
     },
     "JsonLocation" : {
       "type" : "object",
       "properties" : {
+        "byteOffset" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
         "sourceRef" : {
           "type" : "object"
         },
@@ -884,10 +888,6 @@
         "charOffset" : {
           "type" : "integer",
           "format" : "int64"
-        },
-        "byteOffset" : {
-          "type" : "integer",
-          "format" : "int64"
         }
       }
     },
@@ -913,6 +913,12 @@
             "type" : "string"
           }
         },
+        "codec" : {
+          "$ref" : "#/definitions/ObjectCodec"
+        },
+        "currentName" : {
+          "type" : "string"
+        },
         "byteValue" : {
           "type" : "string",
           "format" : "byte"
@@ -943,30 +949,15 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "typeId" : {
-          "type" : "object"
-        },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
-        "codec" : {
-          "$ref" : "#/definitions/ObjectCodec"
-        },
         "currentToken" : {
           "type" : "string",
           "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
         },
-        "currentName" : {
-          "type" : "string"
-        },
-        "tokenLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "inputSource" : {
+        "typeId" : {
           "type" : "object"
         },
-        "currentValue" : {
-          "type" : "object"
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
         },
         "featureMask" : {
           "type" : "integer",
@@ -976,10 +967,33 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "currentValue" : {
+          "type" : "object"
+        },
+        "textOffset" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "numberType" : {
+          "type" : "string",
+          "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
+        },
+        "bigIntegerValue" : {
+          "type" : "integer"
+        },
+        "decimalValue" : {
+          "type" : "number"
+        },
+        "embeddedObject" : {
+          "type" : "object"
+        },
         "currentTokenId" : {
           "type" : "integer",
           "format" : "int32"
         },
+        "tokenLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
+        },
         "parsingContext" : {
           "$ref" : "#/definitions/JsonStreamContext"
         },
@@ -996,26 +1010,9 @@
           "type" : "string",
           "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
         },
-        "textOffset" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "numberValue" : {
           "$ref" : "#/definitions/Number"
         },
-        "numberType" : {
-          "type" : "string",
-          "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
-        },
-        "bigIntegerValue" : {
-          "type" : "integer"
-        },
-        "decimalValue" : {
-          "type" : "number"
-        },
-        "embeddedObject" : {
-          "type" : "object"
-        },
         "binaryValue" : {
           "type" : "array",
           "items" : {
@@ -1040,6 +1037,9 @@
         },
         "valueAsString" : {
           "type" : "string"
+        },
+        "inputSource" : {
+          "type" : "object"
         }
       }
     },
@@ -1054,24 +1054,17 @@
     "JsonSerializerObject" : {
       "type" : "object",
       "properties" : {
-        "unwrappingSerializer" : {
-          "type" : "boolean"
-        },
         "delegatee" : {
           "$ref" : "#/definitions/JsonSerializerObject"
+        },
+        "unwrappingSerializer" : {
+          "type" : "boolean"
         }
       }
     },
     "JsonStreamContext" : {
       "type" : "object",
       "properties" : {
-        "typeDesc" : {
-          "type" : "string"
-        },
-        "currentIndex" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "parent" : {
           "$ref" : "#/definitions/JsonStreamContext"
         },
@@ -1084,6 +1077,13 @@
         "entryCount" : {
           "type" : "integer",
           "format" : "int32"
+        },
+        "typeDesc" : {
+          "type" : "string"
+        },
+        "currentIndex" : {
+          "type" : "integer",
+          "format" : "int32"
         }
       }
     },
@@ -1262,9 +1262,24 @@
         "factory" : {
           "$ref" : "#/definitions/JsonFactory"
         },
+        "propertyNamingStrategy" : {
+          "$ref" : "#/definitions/PropertyNamingStrategy"
+        },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
+        "jsonFactory" : {
+          "$ref" : "#/definitions/JsonFactory"
+        },
+        "dateFormat" : {
+          "$ref" : "#/definitions/DateFormat"
+        },
+        "injectableValues" : {
+          "$ref" : "#/definitions/InjectableValues"
+        },
         "serializationConfig" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -1288,21 +1303,6 @@
         },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
-        },
-        "propertyNamingStrategy" : {
-          "$ref" : "#/definitions/PropertyNamingStrategy"
-        },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
-        "jsonFactory" : {
-          "$ref" : "#/definitions/JsonFactory"
-        },
-        "dateFormat" : {
-          "$ref" : "#/definitions/DateFormat"
-        },
-        "injectableValues" : {
-          "$ref" : "#/definitions/InjectableValues"
         }
       }
     },
@@ -1406,10 +1406,10 @@
     "PublicKey" : {
       "type" : "object",
       "properties" : {
-        "algorithm" : {
+        "format" : {
           "type" : "string"
         },
-        "format" : {
+        "algorithm" : {
           "type" : "string"
         },
         "encoded" : {
@@ -1424,6 +1424,9 @@
     "SerializationConfig" : {
       "type" : "object",
       "properties" : {
+        "defaultPrettyPrinter" : {
+          "$ref" : "#/definitions/PrettyPrinter"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -1433,9 +1436,6 @@
         "filterProvider" : {
           "$ref" : "#/definitions/FilterProvider"
         },
-        "defaultPrettyPrinter" : {
-          "$ref" : "#/definitions/PrettyPrinter"
-        },
         "serializationInclusion" : {
           "type" : "string",
           "enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
@@ -1447,39 +1447,39 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
+        "defaultVisibilityChecker" : {
+          "$ref" : "#/definitions/VisibilityCheckerObject"
+        },
+        "subtypeResolver" : {
+          "$ref" : "#/definitions/SubtypeResolver"
+        },
         "rootName" : {
           "type" : "string"
         },
         "fullRootName" : {
           "$ref" : "#/definitions/PropertyName"
         },
-        "subtypeResolver" : {
-          "$ref" : "#/definitions/SubtypeResolver"
-        },
-        "defaultVisibilityChecker" : {
-          "$ref" : "#/definitions/VisibilityCheckerObject"
+        "locale" : {
+          "$ref" : "#/definitions/Locale"
         },
         "timeZone" : {
           "$ref" : "#/definitions/TimeZone"
         },
-        "locale" : {
-          "$ref" : "#/definitions/Locale"
+        "propertyNamingStrategy" : {
+          "$ref" : "#/definitions/PropertyNamingStrategy"
         },
-        "classIntrospector" : {
-          "$ref" : "#/definitions/ClassIntrospector"
+        "dateFormat" : {
+          "$ref" : "#/definitions/DateFormat"
         },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "classIntrospector" : {
+          "$ref" : "#/definitions/ClassIntrospector"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
-        "propertyNamingStrategy" : {
-          "$ref" : "#/definitions/PropertyNamingStrategy"
-        },
-        "dateFormat" : {
-          "$ref" : "#/definitions/DateFormat"
-        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
@@ -1494,15 +1494,15 @@
     "SerializerProvider" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "generator" : {
           "$ref" : "#/definitions/JsonGenerator"
         },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "config" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -1622,6 +1622,16 @@
         "issuerX500Principal" : {
           "$ref" : "#/definitions/X500Principal"
         },
+        "version" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "keyUsage" : {
+          "type" : "array",
+          "items" : {
+            "type" : "boolean"
+          }
+        },
         "issuerDN" : {
           "$ref" : "#/definitions/Principal"
         },
@@ -1677,16 +1687,6 @@
             "type" : "string"
           }
         },
-        "version" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "keyUsage" : {
-          "type" : "array",
-          "items" : {
-            "type" : "boolean"
-          }
-        },
         "signature" : {
           "type" : "array",
           "items" : {
@@ -1716,14 +1716,14 @@
             }
           }
         },
-        "nonCriticalExtensionOIDs" : {
+        "criticalExtensionOIDs" : {
           "type" : "array",
           "uniqueItems" : true,
           "items" : {
             "type" : "string"
           }
         },
-        "criticalExtensionOIDs" : {
+        "nonCriticalExtensionOIDs" : {
           "type" : "array",
           "uniqueItems" : true,
           "items" : {
diff --git a/content/swagger/2.10.0-SNAPSHOT/swaggersink.json b/content/swagger/2.10.0-SNAPSHOT/swaggersink.json
index 87f540d..c0f81a5 100644
--- a/content/swagger/2.10.0-SNAPSHOT/swaggersink.json
+++ b/content/swagger/2.10.0-SNAPSHOT/swaggersink.json
@@ -887,10 +887,10 @@
     "CompletableFuture" : {
       "type" : "object",
       "properties" : {
-        "cancelled" : {
+        "done" : {
           "type" : "boolean"
         },
-        "done" : {
+        "cancelled" : {
           "type" : "boolean"
         },
         "numberOfDependents" : {
@@ -905,10 +905,10 @@
     "CompletableFutureClusterData" : {
       "type" : "object",
       "properties" : {
-        "cancelled" : {
+        "done" : {
           "type" : "boolean"
         },
-        "done" : {
+        "cancelled" : {
           "type" : "boolean"
         },
         "numberOfDependents" : {
@@ -1044,10 +1044,10 @@
         "displayName" : {
           "type" : "string"
         },
-        "symbol" : {
+        "numericCodeAsString" : {
           "type" : "string"
         },
-        "numericCodeAsString" : {
+        "symbol" : {
           "type" : "string"
         }
       }
@@ -1073,15 +1073,15 @@
     "DeserializationConfig" : {
       "type" : "object",
       "properties" : {
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
         "defaultPropertyInclusion" : {
           "$ref" : "#/definitions/Value"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "deserializationFeatures" : {
           "type" : "integer",
           "format" : "int32"
@@ -1092,39 +1092,39 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
+        "defaultVisibilityChecker" : {
+          "$ref" : "#/definitions/VisibilityCheckerObject"
+        },
+        "subtypeResolver" : {
+          "$ref" : "#/definitions/SubtypeResolver"
+        },
         "rootName" : {
           "type" : "string"
         },
         "fullRootName" : {
           "$ref" : "#/definitions/PropertyName"
         },
-        "subtypeResolver" : {
-          "$ref" : "#/definitions/SubtypeResolver"
-        },
-        "defaultVisibilityChecker" : {
-          "$ref" : "#/definitions/VisibilityCheckerObject"
+        "locale" : {
+          "$ref" : "#/definitions/Locale"
         },
         "timeZone" : {
           "$ref" : "#/definitions/TimeZone"
         },
-        "locale" : {
-          "$ref" : "#/definitions/Locale"
+        "propertyNamingStrategy" : {
+          "$ref" : "#/definitions/PropertyNamingStrategy"
         },
-        "classIntrospector" : {
-          "$ref" : "#/definitions/ClassIntrospector"
+        "dateFormat" : {
+          "$ref" : "#/definitions/DateFormat"
         },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "classIntrospector" : {
+          "$ref" : "#/definitions/ClassIntrospector"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
-        "propertyNamingStrategy" : {
-          "$ref" : "#/definitions/PropertyNamingStrategy"
-        },
-        "dateFormat" : {
-          "$ref" : "#/definitions/DateFormat"
-        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
@@ -1136,15 +1136,18 @@
     "DeserializationContext" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "factory" : {
           "$ref" : "#/definitions/DeserializerFactory"
         },
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
         "config" : {
           "$ref" : "#/definitions/DeserializationConfig"
         },
@@ -1157,9 +1160,6 @@
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "contextualType" : {
           "$ref" : "#/definitions/JavaType"
         },
@@ -1267,15 +1267,15 @@
         "enumType" : {
           "type" : "boolean"
         },
-        "containerType" : {
-          "type" : "boolean"
-        },
         "valueHandler" : {
           "type" : "object"
         },
         "typeHandler" : {
           "type" : "object"
         },
+        "containerType" : {
+          "type" : "boolean"
+        },
         "referencedType" : {
           "$ref" : "#/definitions/JavaType"
         },
@@ -1308,9 +1308,6 @@
     "JsonFactory" : {
       "type" : "object",
       "properties" : {
-        "rootValueSeparator" : {
-          "type" : "string"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
@@ -1325,6 +1322,9 @@
         },
         "outputDecorator" : {
           "$ref" : "#/definitions/OutputDecorator"
+        },
+        "rootValueSeparator" : {
+          "type" : "string"
         }
       }
     },
@@ -1334,17 +1334,25 @@
         "closed" : {
           "type" : "boolean"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
+        "characterEscapes" : {
+          "$ref" : "#/definitions/CharacterEscapes"
+        },
         "prettyPrinter" : {
           "$ref" : "#/definitions/PrettyPrinter"
         },
-        "characterEscapes" : {
-          "$ref" : "#/definitions/CharacterEscapes"
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
+        "featureMask" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "formatFeatures" : {
+          "type" : "integer",
+          "format" : "int32"
         },
         "highestEscapedChar" : {
           "type" : "integer",
@@ -1357,25 +1365,21 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "outputContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
-        },
         "currentValue" : {
           "type" : "object"
         },
-        "featureMask" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "formatFeatures" : {
-          "type" : "integer",
-          "format" : "int32"
+        "outputContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         }
       }
     },
     "JsonLocation" : {
       "type" : "object",
       "properties" : {
+        "byteOffset" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
         "sourceRef" : {
           "type" : "object"
         },
@@ -1390,10 +1394,6 @@
         "charOffset" : {
           "type" : "integer",
           "format" : "int64"
-        },
-        "byteOffset" : {
-          "type" : "integer",
-          "format" : "int64"
         }
       }
     },
@@ -1419,6 +1419,12 @@
             "type" : "string"
           }
         },
+        "codec" : {
+          "$ref" : "#/definitions/ObjectCodec"
+        },
+        "currentName" : {
+          "type" : "string"
+        },
         "byteValue" : {
           "type" : "string",
           "format" : "byte"
@@ -1449,30 +1455,15 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "typeId" : {
-          "type" : "object"
-        },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
-        "codec" : {
-          "$ref" : "#/definitions/ObjectCodec"
-        },
         "currentToken" : {
           "type" : "string",
           "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
         },
-        "currentName" : {
-          "type" : "string"
-        },
-        "tokenLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "inputSource" : {
+        "typeId" : {
           "type" : "object"
         },
-        "currentValue" : {
-          "type" : "object"
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
         },
         "featureMask" : {
           "type" : "integer",
@@ -1482,10 +1473,33 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "currentValue" : {
+          "type" : "object"
+        },
+        "textOffset" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "numberType" : {
+          "type" : "string",
+          "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
+        },
+        "bigIntegerValue" : {
+          "type" : "integer"
+        },
+        "decimalValue" : {
+          "type" : "number"
+        },
+        "embeddedObject" : {
+          "type" : "object"
+        },
         "currentTokenId" : {
           "type" : "integer",
           "format" : "int32"
         },
+        "tokenLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
+        },
         "parsingContext" : {
           "$ref" : "#/definitions/JsonStreamContext"
         },
@@ -1502,26 +1516,9 @@
           "type" : "string",
           "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
         },
-        "textOffset" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "numberValue" : {
           "$ref" : "#/definitions/Number"
         },
-        "numberType" : {
-          "type" : "string",
-          "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
-        },
-        "bigIntegerValue" : {
-          "type" : "integer"
-        },
-        "decimalValue" : {
-          "type" : "number"
-        },
-        "embeddedObject" : {
-          "type" : "object"
-        },
         "binaryValue" : {
           "type" : "array",
           "items" : {
@@ -1546,6 +1543,9 @@
         },
         "valueAsString" : {
           "type" : "string"
+        },
+        "inputSource" : {
+          "type" : "object"
         }
       }
     },
@@ -1560,24 +1560,17 @@
     "JsonSerializerObject" : {
       "type" : "object",
       "properties" : {
-        "unwrappingSerializer" : {
-          "type" : "boolean"
-        },
         "delegatee" : {
           "$ref" : "#/definitions/JsonSerializerObject"
+        },
+        "unwrappingSerializer" : {
+          "type" : "boolean"
         }
       }
     },
     "JsonStreamContext" : {
       "type" : "object",
       "properties" : {
-        "typeDesc" : {
-          "type" : "string"
-        },
-        "currentIndex" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "parent" : {
           "$ref" : "#/definitions/JsonStreamContext"
         },
@@ -1590,6 +1583,13 @@
         "entryCount" : {
           "type" : "integer",
           "format" : "int32"
+        },
+        "typeDesc" : {
+          "type" : "string"
+        },
+        "currentIndex" : {
+          "type" : "integer",
+          "format" : "int32"
         }
       }
     },
@@ -1768,9 +1768,24 @@
         "factory" : {
           "$ref" : "#/definitions/JsonFactory"
         },
+        "propertyNamingStrategy" : {
+          "$ref" : "#/definitions/PropertyNamingStrategy"
+        },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
+        "jsonFactory" : {
+          "$ref" : "#/definitions/JsonFactory"
+        },
+        "dateFormat" : {
+          "$ref" : "#/definitions/DateFormat"
+        },
+        "injectableValues" : {
+          "$ref" : "#/definitions/InjectableValues"
+        },
         "serializationConfig" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -1794,21 +1809,6 @@
         },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
-        },
-        "propertyNamingStrategy" : {
-          "$ref" : "#/definitions/PropertyNamingStrategy"
-        },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
-        "jsonFactory" : {
-          "$ref" : "#/definitions/JsonFactory"
-        },
-        "dateFormat" : {
-          "$ref" : "#/definitions/DateFormat"
-        },
-        "injectableValues" : {
-          "$ref" : "#/definitions/InjectableValues"
         }
       }
     },
@@ -1887,10 +1887,10 @@
     "PublicKey" : {
       "type" : "object",
       "properties" : {
-        "algorithm" : {
+        "format" : {
           "type" : "string"
         },
-        "format" : {
+        "algorithm" : {
           "type" : "string"
         },
         "encoded" : {
@@ -1922,6 +1922,9 @@
     "SerializationConfig" : {
       "type" : "object",
       "properties" : {
+        "defaultPrettyPrinter" : {
+          "$ref" : "#/definitions/PrettyPrinter"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -1931,9 +1934,6 @@
         "filterProvider" : {
           "$ref" : "#/definitions/FilterProvider"
         },
-        "defaultPrettyPrinter" : {
-          "$ref" : "#/definitions/PrettyPrinter"
-        },
         "serializationInclusion" : {
           "type" : "string",
           "enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
@@ -1945,39 +1945,39 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
+        "defaultVisibilityChecker" : {
+          "$ref" : "#/definitions/VisibilityCheckerObject"
+        },
+        "subtypeResolver" : {
+          "$ref" : "#/definitions/SubtypeResolver"
+        },
         "rootName" : {
           "type" : "string"
         },
         "fullRootName" : {
           "$ref" : "#/definitions/PropertyName"
         },
-        "subtypeResolver" : {
-          "$ref" : "#/definitions/SubtypeResolver"
-        },
-        "defaultVisibilityChecker" : {
-          "$ref" : "#/definitions/VisibilityCheckerObject"
+        "locale" : {
+          "$ref" : "#/definitions/Locale"
         },
         "timeZone" : {
           "$ref" : "#/definitions/TimeZone"
         },
-        "locale" : {
-          "$ref" : "#/definitions/Locale"
+        "propertyNamingStrategy" : {
+          "$ref" : "#/definitions/PropertyNamingStrategy"
         },
-        "classIntrospector" : {
-          "$ref" : "#/definitions/ClassIntrospector"
+        "dateFormat" : {
+          "$ref" : "#/definitions/DateFormat"
         },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "classIntrospector" : {
+          "$ref" : "#/definitions/ClassIntrospector"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
-        "propertyNamingStrategy" : {
-          "$ref" : "#/definitions/PropertyNamingStrategy"
-        },
-        "dateFormat" : {
-          "$ref" : "#/definitions/DateFormat"
-        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
@@ -1992,15 +1992,15 @@
     "SerializerProvider" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "generator" : {
           "$ref" : "#/definitions/JsonGenerator"
         },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "config" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -2321,6 +2321,16 @@
         "issuerX500Principal" : {
           "$ref" : "#/definitions/X500Principal"
         },
+        "version" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "keyUsage" : {
+          "type" : "array",
+          "items" : {
+            "type" : "boolean"
+          }
+        },
         "issuerDN" : {
           "$ref" : "#/definitions/Principal"
         },
@@ -2376,16 +2386,6 @@
             "type" : "string"
           }
         },
-        "version" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "keyUsage" : {
-          "type" : "array",
-          "items" : {
-            "type" : "boolean"
-          }
-        },
         "signature" : {
           "type" : "array",
           "items" : {
@@ -2415,14 +2415,14 @@
             }
           }
         },
-        "nonCriticalExtensionOIDs" : {
+        "criticalExtensionOIDs" : {
           "type" : "array",
           "uniqueItems" : true,
           "items" : {
             "type" : "string"
           }
         },
-        "criticalExtensionOIDs" : {
+        "nonCriticalExtensionOIDs" : {
           "type" : "array",
           "uniqueItems" : true,
           "items" : {
diff --git a/content/swagger/2.10.0-SNAPSHOT/swaggersource.json b/content/swagger/2.10.0-SNAPSHOT/swaggersource.json
index ca08ab8..342d520 100644
--- a/content/swagger/2.10.0-SNAPSHOT/swaggersource.json
+++ b/content/swagger/2.10.0-SNAPSHOT/swaggersource.json
@@ -904,10 +904,10 @@
     "CompletableFuture" : {
       "type" : "object",
       "properties" : {
-        "cancelled" : {
+        "done" : {
           "type" : "boolean"
         },
-        "done" : {
+        "cancelled" : {
           "type" : "boolean"
         },
         "numberOfDependents" : {
@@ -922,10 +922,10 @@
     "CompletableFutureClusterData" : {
       "type" : "object",
       "properties" : {
-        "cancelled" : {
+        "done" : {
           "type" : "boolean"
         },
-        "done" : {
+        "cancelled" : {
           "type" : "boolean"
         },
         "numberOfDependents" : {
@@ -1025,10 +1025,10 @@
         "displayName" : {
           "type" : "string"
         },
-        "symbol" : {
+        "numericCodeAsString" : {
           "type" : "string"
         },
-        "numericCodeAsString" : {
+        "symbol" : {
           "type" : "string"
         }
       }
@@ -1054,15 +1054,15 @@
     "DeserializationConfig" : {
       "type" : "object",
       "properties" : {
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
         "defaultPropertyInclusion" : {
           "$ref" : "#/definitions/Value"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "deserializationFeatures" : {
           "type" : "integer",
           "format" : "int32"
@@ -1073,39 +1073,39 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
+        "defaultVisibilityChecker" : {
+          "$ref" : "#/definitions/VisibilityCheckerObject"
+        },
+        "subtypeResolver" : {
+          "$ref" : "#/definitions/SubtypeResolver"
+        },
         "rootName" : {
           "type" : "string"
         },
         "fullRootName" : {
           "$ref" : "#/definitions/PropertyName"
         },
-        "subtypeResolver" : {
-          "$ref" : "#/definitions/SubtypeResolver"
-        },
-        "defaultVisibilityChecker" : {
-          "$ref" : "#/definitions/VisibilityCheckerObject"
+        "locale" : {
+          "$ref" : "#/definitions/Locale"
         },
         "timeZone" : {
           "$ref" : "#/definitions/TimeZone"
         },
-        "locale" : {
-          "$ref" : "#/definitions/Locale"
+        "propertyNamingStrategy" : {
+          "$ref" : "#/definitions/PropertyNamingStrategy"
         },
-        "classIntrospector" : {
-          "$ref" : "#/definitions/ClassIntrospector"
+        "dateFormat" : {
+          "$ref" : "#/definitions/DateFormat"
         },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "classIntrospector" : {
+          "$ref" : "#/definitions/ClassIntrospector"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
-        "propertyNamingStrategy" : {
-          "$ref" : "#/definitions/PropertyNamingStrategy"
-        },
-        "dateFormat" : {
-          "$ref" : "#/definitions/DateFormat"
-        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
@@ -1117,15 +1117,18 @@
     "DeserializationContext" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "factory" : {
           "$ref" : "#/definitions/DeserializerFactory"
         },
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
         "config" : {
           "$ref" : "#/definitions/DeserializationConfig"
         },
@@ -1138,9 +1141,6 @@
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "contextualType" : {
           "$ref" : "#/definitions/JavaType"
         },
@@ -1248,15 +1248,15 @@
         "enumType" : {
           "type" : "boolean"
         },
-        "containerType" : {
-          "type" : "boolean"
-        },
         "valueHandler" : {
           "type" : "object"
         },
         "typeHandler" : {
           "type" : "object"
         },
+        "containerType" : {
+          "type" : "boolean"
+        },
         "referencedType" : {
           "$ref" : "#/definitions/JavaType"
         },
@@ -1289,9 +1289,6 @@
     "JsonFactory" : {
       "type" : "object",
       "properties" : {
-        "rootValueSeparator" : {
-          "type" : "string"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
@@ -1306,6 +1303,9 @@
         },
         "outputDecorator" : {
           "$ref" : "#/definitions/OutputDecorator"
+        },
+        "rootValueSeparator" : {
+          "type" : "string"
         }
       }
     },
@@ -1315,17 +1315,25 @@
         "closed" : {
           "type" : "boolean"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
+        "characterEscapes" : {
+          "$ref" : "#/definitions/CharacterEscapes"
+        },
         "prettyPrinter" : {
           "$ref" : "#/definitions/PrettyPrinter"
         },
-        "characterEscapes" : {
-          "$ref" : "#/definitions/CharacterEscapes"
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
+        "featureMask" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "formatFeatures" : {
+          "type" : "integer",
+          "format" : "int32"
         },
         "highestEscapedChar" : {
           "type" : "integer",
@@ -1338,25 +1346,21 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "outputContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
-        },
         "currentValue" : {
           "type" : "object"
         },
-        "featureMask" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "formatFeatures" : {
-          "type" : "integer",
-          "format" : "int32"
+        "outputContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         }
       }
     },
     "JsonLocation" : {
       "type" : "object",
       "properties" : {
+        "byteOffset" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
         "sourceRef" : {
           "type" : "object"
         },
@@ -1371,10 +1375,6 @@
         "charOffset" : {
           "type" : "integer",
           "format" : "int64"
-        },
-        "byteOffset" : {
-          "type" : "integer",
-          "format" : "int64"
         }
       }
     },
@@ -1400,6 +1400,12 @@
             "type" : "string"
           }
         },
+        "codec" : {
+          "$ref" : "#/definitions/ObjectCodec"
+        },
+        "currentName" : {
+          "type" : "string"
+        },
         "byteValue" : {
           "type" : "string",
           "format" : "byte"
@@ -1430,30 +1436,15 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "typeId" : {
-          "type" : "object"
-        },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
-        "codec" : {
-          "$ref" : "#/definitions/ObjectCodec"
-        },
         "currentToken" : {
           "type" : "string",
           "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
         },
-        "currentName" : {
-          "type" : "string"
-        },
-        "tokenLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "inputSource" : {
+        "typeId" : {
           "type" : "object"
         },
-        "currentValue" : {
-          "type" : "object"
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
         },
         "featureMask" : {
           "type" : "integer",
@@ -1463,10 +1454,33 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "currentValue" : {
+          "type" : "object"
+        },
+        "textOffset" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "numberType" : {
+          "type" : "string",
+          "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
+        },
+        "bigIntegerValue" : {
+          "type" : "integer"
+        },
+        "decimalValue" : {
+          "type" : "number"
+        },
+        "embeddedObject" : {
+          "type" : "object"
+        },
         "currentTokenId" : {
           "type" : "integer",
           "format" : "int32"
         },
+        "tokenLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
+        },
         "parsingContext" : {
           "$ref" : "#/definitions/JsonStreamContext"
         },
@@ -1483,26 +1497,9 @@
           "type" : "string",
           "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
         },
-        "textOffset" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "numberValue" : {
           "$ref" : "#/definitions/Number"
         },
-        "numberType" : {
-          "type" : "string",
-          "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
-        },
-        "bigIntegerValue" : {
-          "type" : "integer"
-        },
-        "decimalValue" : {
-          "type" : "number"
-        },
-        "embeddedObject" : {
-          "type" : "object"
-        },
         "binaryValue" : {
           "type" : "array",
           "items" : {
@@ -1527,6 +1524,9 @@
         },
         "valueAsString" : {
           "type" : "string"
+        },
+        "inputSource" : {
+          "type" : "object"
         }
       }
     },
@@ -1541,24 +1541,17 @@
     "JsonSerializerObject" : {
       "type" : "object",
       "properties" : {
-        "unwrappingSerializer" : {
-          "type" : "boolean"
-        },
         "delegatee" : {
           "$ref" : "#/definitions/JsonSerializerObject"
+        },
+        "unwrappingSerializer" : {
+          "type" : "boolean"
         }
       }
     },
     "JsonStreamContext" : {
       "type" : "object",
       "properties" : {
-        "typeDesc" : {
-          "type" : "string"
-        },
-        "currentIndex" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "parent" : {
           "$ref" : "#/definitions/JsonStreamContext"
         },
@@ -1571,6 +1564,13 @@
         "entryCount" : {
           "type" : "integer",
           "format" : "int32"
+        },
+        "typeDesc" : {
+          "type" : "string"
+        },
+        "currentIndex" : {
+          "type" : "integer",
+          "format" : "int32"
         }
       }
     },
@@ -1749,9 +1749,24 @@
         "factory" : {
           "$ref" : "#/definitions/JsonFactory"
         },
+        "propertyNamingStrategy" : {
+          "$ref" : "#/definitions/PropertyNamingStrategy"
+        },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
+        "jsonFactory" : {
+          "$ref" : "#/definitions/JsonFactory"
+        },
+        "dateFormat" : {
+          "$ref" : "#/definitions/DateFormat"
+        },
+        "injectableValues" : {
+          "$ref" : "#/definitions/InjectableValues"
+        },
         "serializationConfig" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -1775,21 +1790,6 @@
         },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
-        },
-        "propertyNamingStrategy" : {
-          "$ref" : "#/definitions/PropertyNamingStrategy"
-        },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
-        "jsonFactory" : {
-          "$ref" : "#/definitions/JsonFactory"
-        },
-        "dateFormat" : {
-          "$ref" : "#/definitions/DateFormat"
-        },
-        "injectableValues" : {
-          "$ref" : "#/definitions/InjectableValues"
         }
       }
     },
@@ -1890,10 +1890,10 @@
     "PublicKey" : {
       "type" : "object",
       "properties" : {
-        "algorithm" : {
+        "format" : {
           "type" : "string"
         },
-        "format" : {
+        "algorithm" : {
           "type" : "string"
         },
         "encoded" : {
@@ -1925,6 +1925,9 @@
     "SerializationConfig" : {
       "type" : "object",
       "properties" : {
+        "defaultPrettyPrinter" : {
+          "$ref" : "#/definitions/PrettyPrinter"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -1934,9 +1937,6 @@
         "filterProvider" : {
           "$ref" : "#/definitions/FilterProvider"
         },
-        "defaultPrettyPrinter" : {
-          "$ref" : "#/definitions/PrettyPrinter"
-        },
         "serializationInclusion" : {
           "type" : "string",
           "enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
@@ -1948,39 +1948,39 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
+        "defaultVisibilityChecker" : {
+          "$ref" : "#/definitions/VisibilityCheckerObject"
+        },
+        "subtypeResolver" : {
+          "$ref" : "#/definitions/SubtypeResolver"
+        },
         "rootName" : {
           "type" : "string"
         },
         "fullRootName" : {
           "$ref" : "#/definitions/PropertyName"
         },
-        "subtypeResolver" : {
-          "$ref" : "#/definitions/SubtypeResolver"
-        },
-        "defaultVisibilityChecker" : {
-          "$ref" : "#/definitions/VisibilityCheckerObject"
+        "locale" : {
+          "$ref" : "#/definitions/Locale"
         },
         "timeZone" : {
           "$ref" : "#/definitions/TimeZone"
         },
-        "locale" : {
-          "$ref" : "#/definitions/Locale"
+        "propertyNamingStrategy" : {
+          "$ref" : "#/definitions/PropertyNamingStrategy"
         },
-        "classIntrospector" : {
-          "$ref" : "#/definitions/ClassIntrospector"
+        "dateFormat" : {
+          "$ref" : "#/definitions/DateFormat"
         },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "classIntrospector" : {
+          "$ref" : "#/definitions/ClassIntrospector"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
-        "propertyNamingStrategy" : {
-          "$ref" : "#/definitions/PropertyNamingStrategy"
-        },
-        "dateFormat" : {
-          "$ref" : "#/definitions/DateFormat"
-        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
@@ -1995,15 +1995,15 @@
     "SerializerProvider" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "generator" : {
           "$ref" : "#/definitions/JsonGenerator"
         },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "config" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -2278,6 +2278,16 @@
         "issuerX500Principal" : {
           "$ref" : "#/definitions/X500Principal"
         },
+        "version" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "keyUsage" : {
+          "type" : "array",
+          "items" : {
+            "type" : "boolean"
+          }
+        },
         "issuerDN" : {
           "$ref" : "#/definitions/Principal"
         },
@@ -2333,16 +2343,6 @@
             "type" : "string"
           }
         },
-        "version" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "keyUsage" : {
-          "type" : "array",
-          "items" : {
-            "type" : "boolean"
-          }
-        },
         "signature" : {
           "type" : "array",
           "items" : {
@@ -2372,14 +2372,14 @@
             }
           }
         },
-        "nonCriticalExtensionOIDs" : {
+        "criticalExtensionOIDs" : {
           "type" : "array",
           "uniqueItems" : true,
           "items" : {
             "type" : "string"
           }
         },
-        "criticalExtensionOIDs" : {
+        "nonCriticalExtensionOIDs" : {
           "type" : "array",
           "uniqueItems" : true,
           "items" : {
diff --git a/content/swagger/2.10.0-SNAPSHOT/v2/swagger.json b/content/swagger/2.10.0-SNAPSHOT/v2/swagger.json
index 9225bd9..7239993 100644
--- a/content/swagger/2.10.0-SNAPSHOT/v2/swagger.json
+++ b/content/swagger/2.10.0-SNAPSHOT/v2/swagger.json
@@ -3087,7 +3087,7 @@
                 "tags": [
                     "namespaces"
                 ],
-                "summary": "Get dispatch-rate configured for the namespace, -1 represents not configured yet",
+                "summary": "Get dispatch-rate configured for the namespace, null means dispatch-rate not configured, -1 means msg-dispatch-rate or byte-dispatch-rate not configured in dispatch-rate yet",
                 "description": "",
                 "operationId": "getDispatchRate",
                 "consumes": [
@@ -5743,7 +5743,7 @@
                 "tags": [
                     "namespaces"
                 ],
-                "summary": "Get replicator dispatch-rate configured for the namespace, -1 represents not configured yet",
+                "summary": "Get replicator dispatch-rate configured for the namespace, null means replicator dispatch-rate not configured, -1 means msg-dispatch-rate or byte-dispatch-rate not configured in dispatch-rate yet",
                 "description": "",
                 "operationId": "getReplicatorDispatchRate",
                 "consumes": [
@@ -6663,7 +6663,7 @@
                 "tags": [
                     "namespaces"
                 ],
-                "summary": "Get Subscription dispatch-rate configured for the namespace, -1 represents not configured yet",
+                "summary": "Get subscription dispatch-rate configured for the namespace, null means subscription dispatch-rate not configured, -1 means msg-dispatch-rate or byte-dispatch-rate not configured in dispatch-rate yet",
                 "description": "",
                 "operationId": "getSubscriptionDispatchRate",
                 "consumes": [
@@ -13035,6 +13035,13 @@
                         "type": "string"
                     },
                     {
+                        "name": "isGlobal",
+                        "in": "query",
+                        "required": false,
+                        "type": "boolean",
+                        "default": false
+                    },
+                    {
                         "name": "applied",
                         "in": "query",
                         "required": false,
@@ -13102,6 +13109,13 @@
                         "default": false
                     },
                     {
+                        "name": "isGlobal",
+                        "in": "query",
+                        "required": false,
+                        "type": "boolean",
+                        "default": false
+                    },
+                    {
                         "in": "body",
                         "name": "body",
                         "description": "Retention policies for the specified namespace",
@@ -13159,12 +13173,19 @@
                         "type": "string"
                     },
                     {
-                        "name": "authoritative",
+                        "name": "isGlobal",
                         "in": "query",
                         "description": "Is authentication required to perform this operation",
                         "required": false,
                         "type": "boolean",
                         "default": false
+                    },
+                    {
+                        "name": "authoritative",
+                        "in": "query",
+                        "required": false,
+                        "type": "boolean",
+                        "default": false
                     }
                 ],
                 "responses": {
@@ -14335,7 +14356,7 @@
                         "description": "messageId where to create the subscription. It can be 'latest', 'earliest' or (ledgerId:entryId)",
                         "required": false,
                         "schema": {
-                            "$ref": "#/definitions/MessageIdImpl"
+                            "$ref": "#/definitions/ResetCursorData"
                         }
                     },
                     {
@@ -20463,6 +20484,13 @@
                         "type": "string"
                     },
                     {
+                        "name": "isGlobal",
+                        "in": "query",
+                        "required": false,
+                        "type": "boolean",
+                        "default": false
+                    },
+                    {
                         "name": "applied",
                         "in": "query",
                         "required": false,
@@ -20530,6 +20558,13 @@
                         "default": false
                     },
                     {
+                        "name": "isGlobal",
+                        "in": "query",
+                        "required": false,
+                        "type": "boolean",
+                        "default": false
+                    },
+                    {
                         "in": "body",
                         "name": "body",
                         "description": "Retention policies for the specified namespace",
@@ -20587,12 +20622,19 @@
                         "type": "string"
                     },
                     {
-                        "name": "authoritative",
+                        "name": "isGlobal",
                         "in": "query",
                         "description": "Is authentication required to perform this operation",
                         "required": false,
                         "type": "boolean",
                         "default": false
+                    },
+                    {
+                        "name": "authoritative",
+                        "in": "query",
+                        "required": false,
+                        "type": "boolean",
+                        "default": false
                     }
                 ],
                 "responses": {
@@ -21766,7 +21808,7 @@
                         "description": "messageId where to create the subscription. It can be 'latest', 'earliest' or (ledgerId:entryId)",
                         "required": false,
                         "schema": {
-                            "$ref": "#/definitions/MessageIdImpl"
+                            "$ref": "#/definitions/ResetCursorData"
                         }
                     },
                     {
@@ -24067,15 +24109,15 @@
         "AutoTopicCreationOverride": {
             "type": "object",
             "properties": {
+                "topicType": {
+                    "type": "string"
+                },
                 "defaultNumPartitions": {
                     "type": "integer",
                     "format": "int32"
                 },
                 "allowAutoTopicCreation": {
                     "type": "boolean"
-                },
-                "topicType": {
-                    "type": "string"
                 }
             }
         },
@@ -24097,6 +24139,10 @@
                 "limitTime": {
                     "type": "integer",
                     "format": "int32"
+                },
+                "limit": {
+                    "type": "integer",
+                    "format": "int64"
                 }
             }
         },
@@ -24358,10 +24404,10 @@
         "CompletableFuture": {
             "type": "object",
             "properties": {
-                "cancelled": {
+                "done": {
                     "type": "boolean"
                 },
-                "done": {
+                "cancelled": {
                     "type": "boolean"
                 },
                 "numberOfDependents": {
@@ -24376,10 +24422,10 @@
         "CompletableFutureClusterData": {
             "type": "object",
             "properties": {
-                "cancelled": {
+                "done": {
                     "type": "boolean"
                 },
-                "done": {
+                "cancelled": {
                     "type": "boolean"
                 },
                 "numberOfDependents": {
@@ -24394,10 +24440,10 @@
         "CompletableFuturePartitionedTopicMetadata": {
             "type": "object",
             "properties": {
-                "cancelled": {
+                "done": {
                     "type": "boolean"
                 },
-                "done": {
+                "cancelled": {
                     "type": "boolean"
                 },
                 "numberOfDependents": {
@@ -24435,25 +24481,20 @@
         "ConsumerStats": {
             "type": "object",
             "properties": {
-                "bytesOutCounter": {
-                    "type": "integer",
-                    "format": "int64"
+                "address": {
+                    "type": "string"
                 },
-                "msgOutCounter": {
-                    "type": "integer",
-                    "format": "int64"
+                "metadata": {
+                    "type": "object",
+                    "additionalProperties": {
+                        "type": "string"
+                    }
                 },
-                "chunkedMessageRate": {
+                "msgRateRedeliver": {
                     "type": "number",
                     "format": "double"
                 },
-                "connectedSince": {
-                    "type": "string"
-                },
-                "clientVersion": {
-                    "type": "string"
-                },
-                "msgRateRedeliver": {
+                "chunkedMessageRate": {
                     "type": "number",
                     "format": "double"
                 },
@@ -24486,28 +24527,33 @@
                 "readPositionWhenJoining": {
                     "type": "string"
                 },
-                "keyHashRanges": {
-                    "type": "array",
-                    "items": {
-                        "type": "string"
-                    }
... 12934 lines suppressed ...