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 2022/02/01 14:03:30 UTC

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

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 f530609  Updated site at revision 3c29c7e
f530609 is described below

commit f5306097ee76f3837dfffb77721b7c8f0e45e231
Author: Pulsar Site Updater <de...@pulsar.incubator.apache.org>
AuthorDate: Tue Feb 1 13:59:18 2022 +0000

    Updated site at revision 3c29c7e
---
 .../admin/2.10.0-SNAPSHOT/member-search-index.zip  | Bin 12755 -> 12755 bytes
 .../admin/2.10.0-SNAPSHOT/overview-summary.html    |   2 +-
 .../admin/2.10.0-SNAPSHOT/package-search-index.zip | Bin 263 -> 263 bytes
 .../admin/2.10.0-SNAPSHOT/type-search-index.zip    | Bin 500 -> 500 bytes
 .../client/2.10.0-SNAPSHOT/member-search-index.zip | Bin 11099 -> 11099 bytes
 .../client/2.10.0-SNAPSHOT/overview-summary.html   |   2 +-
 .../2.10.0-SNAPSHOT/package-search-index.zip       | Bin 298 -> 298 bytes
 .../client/2.10.0-SNAPSHOT/type-search-index.zip   | Bin 1543 -> 1543 bytes
 .../2.10.0-SNAPSHOT/member-search-index.zip        | Bin 69854 -> 69854 bytes
 .../2.10.0-SNAPSHOT/overview-summary.html          |   2 +-
 .../2.10.0-SNAPSHOT/package-search-index.zip       | Bin 593 -> 593 bytes
 .../2.10.0-SNAPSHOT/type-search-index.zip          | Bin 4370 -> 4370 bytes
 .../2.10.0-SNAPSHOT/member-search-index.zip        | Bin 1255 -> 1255 bytes
 .../2.10.0-SNAPSHOT/overview-summary.html          |   2 +-
 .../2.10.0-SNAPSHOT/package-search-index.zip       | Bin 260 -> 260 bytes
 .../2.10.0-SNAPSHOT/type-search-index.zip          | Bin 349 -> 349 bytes
 content/api/python/2.10.0-SNAPSHOT/index.html      |   6 +-
 content/api/python/index.html                      |   6 +-
 content/docs/assets/zookeeper-batching.png         | Bin 0 -> 159664 bytes
 content/docs/en/next/administration-zk-bk.html     |  31 +-
 .../docs/en/next/administration-zk-bk/index.html   |  31 +-
 content/docs/en/next/concepts-messaging.html       |  39 +-
 content/docs/en/next/concepts-messaging/index.html |  39 +-
 content/docs/en/next/reference-configuration.html  |  27 +-
 .../en/next/reference-configuration/index.html     |  27 +-
 content/docs/fr/next/client-libraries-java.html    |  40 +-
 .../docs/fr/next/client-libraries-java/index.html  |  40 +-
 .../fr/next/concepts-architecture-overview.html    |   3 +
 .../next/concepts-architecture-overview/index.html |   3 +
 .../fr/next/schema-evolution-compatibility.html    |   2 +-
 .../next/schema-evolution-compatibility/index.html |   2 +-
 content/docs/fr/next/standalone.html               |   9 +-
 content/docs/fr/next/standalone/index.html         |   9 +-
 content/docs/ja/next/client-libraries-java.html    |  40 +-
 .../docs/ja/next/client-libraries-java/index.html  |  40 +-
 .../ja/next/concepts-architecture-overview.html    |   3 +
 .../next/concepts-architecture-overview/index.html |   3 +
 .../ja/next/schema-evolution-compatibility.html    |   2 +-
 .../next/schema-evolution-compatibility/index.html |   2 +-
 content/docs/ja/next/standalone.html               |   9 +-
 content/docs/ja/next/standalone/index.html         |   9 +-
 content/docs/ko/next/client-libraries-java.html    |  40 +-
 .../docs/ko/next/client-libraries-java/index.html  |  40 +-
 .../ko/next/concepts-architecture-overview.html    |   3 +
 .../next/concepts-architecture-overview/index.html |   3 +
 .../ko/next/schema-evolution-compatibility.html    |   2 +-
 .../next/schema-evolution-compatibility/index.html |   2 +-
 content/docs/ko/next/standalone.html               |   9 +-
 content/docs/ko/next/standalone/index.html         |   9 +-
 content/docs/zh-CN/next/client-libraries-java.html | 156 ++--
 .../zh-CN/next/client-libraries-java/index.html    | 156 ++--
 .../zh-CN/next/concepts-architecture-overview.html |   5 +-
 .../next/concepts-architecture-overview/index.html |   5 +-
 .../zh-CN/next/schema-evolution-compatibility.html |   2 +-
 .../next/schema-evolution-compatibility/index.html |   2 +-
 content/docs/zh-CN/next/standalone.html            |   9 +-
 content/docs/zh-CN/next/standalone/index.html      |   9 +-
 content/docs/zh-TW/next/client-libraries-java.html |  40 +-
 .../zh-TW/next/client-libraries-java/index.html    |  40 +-
 .../zh-TW/next/concepts-architecture-overview.html |   3 +
 .../next/concepts-architecture-overview/index.html |   3 +
 .../zh-TW/next/schema-evolution-compatibility.html |   2 +-
 .../next/schema-evolution-compatibility/index.html |   2 +-
 content/docs/zh-TW/next/standalone.html            |   9 +-
 content/docs/zh-TW/next/standalone/index.html      |   9 +-
 content/swagger/2.10.0-SNAPSHOT/swagger.json       | 820 ++++++++++----------
 .../swagger/2.10.0-SNAPSHOT/swaggerfunctions.json  | 356 ++++-----
 .../swagger/2.10.0-SNAPSHOT/swaggerpackages.json   | 316 ++++----
 content/swagger/2.10.0-SNAPSHOT/swaggersink.json   | 316 ++++----
 content/swagger/2.10.0-SNAPSHOT/swaggersource.json | 316 ++++----
 content/swagger/2.10.0-SNAPSHOT/v2/swagger.json    | 836 ++++++++++-----------
 .../2.10.0-SNAPSHOT/v3/swaggerfunctions.json       | 384 +++++-----
 .../2.10.0-SNAPSHOT/v3/swaggerpackages.json        | 344 ++++-----
 .../swagger/2.10.0-SNAPSHOT/v3/swaggersink.json    | 344 ++++-----
 .../swagger/2.10.0-SNAPSHOT/v3/swaggersource.json  | 344 ++++-----
 content/swagger/master/swagger.json                | 820 ++++++++++----------
 content/swagger/master/swaggerfunctions.json       | 356 ++++-----
 content/swagger/master/swaggerpackages.json        | 316 ++++----
 content/swagger/master/swaggersink.json            | 316 ++++----
 content/swagger/master/swaggersource.json          | 316 ++++----
 content/swagger/master/v2/swagger.json             | 836 ++++++++++-----------
 content/swagger/master/v3/swaggerfunctions.json    | 384 +++++-----
 content/swagger/master/v3/swaggerpackages.json     | 344 ++++-----
 content/swagger/master/v3/swaggersink.json         | 344 ++++-----
 content/swagger/master/v3/swaggersource.json       | 344 ++++-----
 85 files changed, 5046 insertions(+), 4696 deletions(-)

diff --git a/content/api/admin/2.10.0-SNAPSHOT/member-search-index.zip b/content/api/admin/2.10.0-SNAPSHOT/member-search-index.zip
index 1f004f0..0b2793f 100644
Binary files a/content/api/admin/2.10.0-SNAPSHOT/member-search-index.zip and b/content/api/admin/2.10.0-SNAPSHOT/member-search-index.zip differ
diff --git a/content/api/admin/2.10.0-SNAPSHOT/overview-summary.html b/content/api/admin/2.10.0-SNAPSHOT/overview-summary.html
index 8521b445..33e810c 100644
--- a/content/api/admin/2.10.0-SNAPSHOT/overview-summary.html
+++ b/content/api/admin/2.10.0-SNAPSHOT/overview-summary.html
@@ -2,7 +2,7 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.11) on Mon Jan 31 18:07:46 UTC 2022 -->
+<!-- Generated by javadoc (11.0.11) on Tue Feb 01 12:11:37 UTC 2022 -->
 <title>Pulsar Client Admin Original 2.10.0-SNAPSHOT API</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <script type="text/javascript">window.location.replace('index.html')</script>
diff --git a/content/api/admin/2.10.0-SNAPSHOT/package-search-index.zip b/content/api/admin/2.10.0-SNAPSHOT/package-search-index.zip
index 9c0e28c..64c41d3 100644
Binary files a/content/api/admin/2.10.0-SNAPSHOT/package-search-index.zip and b/content/api/admin/2.10.0-SNAPSHOT/package-search-index.zip differ
diff --git a/content/api/admin/2.10.0-SNAPSHOT/type-search-index.zip b/content/api/admin/2.10.0-SNAPSHOT/type-search-index.zip
index 9e5c04a..6d5205c 100644
Binary files a/content/api/admin/2.10.0-SNAPSHOT/type-search-index.zip and b/content/api/admin/2.10.0-SNAPSHOT/type-search-index.zip differ
diff --git a/content/api/client/2.10.0-SNAPSHOT/member-search-index.zip b/content/api/client/2.10.0-SNAPSHOT/member-search-index.zip
index 5d9fa82..6d95fe0 100644
Binary files a/content/api/client/2.10.0-SNAPSHOT/member-search-index.zip and b/content/api/client/2.10.0-SNAPSHOT/member-search-index.zip differ
diff --git a/content/api/client/2.10.0-SNAPSHOT/overview-summary.html b/content/api/client/2.10.0-SNAPSHOT/overview-summary.html
index e2965d7..00f3261 100644
--- a/content/api/client/2.10.0-SNAPSHOT/overview-summary.html
+++ b/content/api/client/2.10.0-SNAPSHOT/overview-summary.html
@@ -2,7 +2,7 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.11) on Mon Jan 31 18:07:38 UTC 2022 -->
+<!-- Generated by javadoc (11.0.11) on Tue Feb 01 12:11:27 UTC 2022 -->
 <title>Pulsar Client :: API 2.10.0-SNAPSHOT API</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <script type="text/javascript">window.location.replace('index.html')</script>
diff --git a/content/api/client/2.10.0-SNAPSHOT/package-search-index.zip b/content/api/client/2.10.0-SNAPSHOT/package-search-index.zip
index 2707784..e03de14 100644
Binary files a/content/api/client/2.10.0-SNAPSHOT/package-search-index.zip and b/content/api/client/2.10.0-SNAPSHOT/package-search-index.zip differ
diff --git a/content/api/client/2.10.0-SNAPSHOT/type-search-index.zip b/content/api/client/2.10.0-SNAPSHOT/type-search-index.zip
index 33d5a2b..353b235 100644
Binary files a/content/api/client/2.10.0-SNAPSHOT/type-search-index.zip and b/content/api/client/2.10.0-SNAPSHOT/type-search-index.zip differ
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/member-search-index.zip b/content/api/pulsar-broker/2.10.0-SNAPSHOT/member-search-index.zip
index 0da62bd..041500a 100644
Binary files a/content/api/pulsar-broker/2.10.0-SNAPSHOT/member-search-index.zip and b/content/api/pulsar-broker/2.10.0-SNAPSHOT/member-search-index.zip differ
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/overview-summary.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/overview-summary.html
index 2b22c13..118e8f9 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/overview-summary.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/overview-summary.html
@@ -2,7 +2,7 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.11) on Mon Jan 31 18:08:04 UTC 2022 -->
+<!-- Generated by javadoc (11.0.11) on Tue Feb 01 12:11:56 UTC 2022 -->
 <title>Pulsar Broker 2.10.0-SNAPSHOT API</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <script type="text/javascript">window.location.replace('index.html')</script>
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/package-search-index.zip b/content/api/pulsar-broker/2.10.0-SNAPSHOT/package-search-index.zip
index caf9025..7021752 100644
Binary files a/content/api/pulsar-broker/2.10.0-SNAPSHOT/package-search-index.zip and b/content/api/pulsar-broker/2.10.0-SNAPSHOT/package-search-index.zip differ
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/type-search-index.zip b/content/api/pulsar-broker/2.10.0-SNAPSHOT/type-search-index.zip
index f4b0cc1..b66e0ca 100644
Binary files a/content/api/pulsar-broker/2.10.0-SNAPSHOT/type-search-index.zip and b/content/api/pulsar-broker/2.10.0-SNAPSHOT/type-search-index.zip differ
diff --git a/content/api/pulsar-functions/2.10.0-SNAPSHOT/member-search-index.zip b/content/api/pulsar-functions/2.10.0-SNAPSHOT/member-search-index.zip
index 0f8d55c..bf094d5 100644
Binary files a/content/api/pulsar-functions/2.10.0-SNAPSHOT/member-search-index.zip and b/content/api/pulsar-functions/2.10.0-SNAPSHOT/member-search-index.zip differ
diff --git a/content/api/pulsar-functions/2.10.0-SNAPSHOT/overview-summary.html b/content/api/pulsar-functions/2.10.0-SNAPSHOT/overview-summary.html
index 6518939..9a12090 100644
--- a/content/api/pulsar-functions/2.10.0-SNAPSHOT/overview-summary.html
+++ b/content/api/pulsar-functions/2.10.0-SNAPSHOT/overview-summary.html
@@ -2,7 +2,7 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.11) on Mon Jan 31 18:07:52 UTC 2022 -->
+<!-- Generated by javadoc (11.0.11) on Tue Feb 01 12:11:44 UTC 2022 -->
 <title>Pulsar Functions :: API 2.10.0-SNAPSHOT API</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <script type="text/javascript">window.location.replace('index.html')</script>
diff --git a/content/api/pulsar-functions/2.10.0-SNAPSHOT/package-search-index.zip b/content/api/pulsar-functions/2.10.0-SNAPSHOT/package-search-index.zip
index 4e42b1c..91d6a26 100644
Binary files a/content/api/pulsar-functions/2.10.0-SNAPSHOT/package-search-index.zip and b/content/api/pulsar-functions/2.10.0-SNAPSHOT/package-search-index.zip differ
diff --git a/content/api/pulsar-functions/2.10.0-SNAPSHOT/type-search-index.zip b/content/api/pulsar-functions/2.10.0-SNAPSHOT/type-search-index.zip
index ac4ebe2..8ed7167 100644
Binary files a/content/api/pulsar-functions/2.10.0-SNAPSHOT/type-search-index.zip and b/content/api/pulsar-functions/2.10.0-SNAPSHOT/type-search-index.zip differ
diff --git a/content/api/python/2.10.0-SNAPSHOT/index.html b/content/api/python/2.10.0-SNAPSHOT/index.html
index 6b37b4e..55826be 100644
--- a/content/api/python/2.10.0-SNAPSHOT/index.html
+++ b/content/api/python/2.10.0-SNAPSHOT/index.html
@@ -3787,7 +3787,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 0x7f855363ee50&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 0x7fbb305dde50&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>
     
 
@@ -4041,7 +4041,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 0x7f854bbb2350&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 0x7fbb28b51350&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>
     
 
@@ -4258,7 +4258,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 0x7f854bbb2290&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 0x7fbb28b51290&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 6b37b4e..55826be 100644
--- a/content/api/python/index.html
+++ b/content/api/python/index.html
@@ -3787,7 +3787,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 0x7f855363ee50&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 0x7fbb305dde50&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>
     
 
@@ -4041,7 +4041,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 0x7f854bbb2350&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 0x7fbb28b51350&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>
     
 
@@ -4258,7 +4258,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 0x7f854bbb2290&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 0x7fbb28b51290&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/assets/zookeeper-batching.png b/content/docs/assets/zookeeper-batching.png
new file mode 100644
index 0000000..4bd461e
Binary files /dev/null and b/content/docs/assets/zookeeper-batching.png differ
diff --git a/content/docs/en/next/administration-zk-bk.html b/content/docs/en/next/administration-zk-bk.html
index 0d27e9a..3e9894d 100644
--- a/content/docs/en/next/administration-zk-bk.html
+++ b/content/docs/en/next/administration-zk-bk.html
@@ -156,26 +156,17 @@
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start configuration-store</span>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="zookeeper-configuration"></a><a href="#zookeeper-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 [...]
-<p>In Pulsar, ZooKeeper configuration is handled by two separate configuration files in the <code>conf</code> directory of your Pulsar installation: <code>conf/zookeeper.conf</code> for <a href="#local-zookeeper">local ZooKeeper</a> and <code>conf/global-zookeeper.conf</code> for <a href="#configuration-store">configuration store</a>.</p>
-<h4><a class="anchor" aria-hidden="true" id="local-zookeeper"></a><a href="#local-zookeeper" 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>The <a href="/docs/en/next/reference-configuration#zookeeper"><code>conf/zookeeper.conf</code></a> file handles the configuration for local ZooKeeper. The table below shows the available parameters:</p>
-<table>
-<thead>
-<tr><th>Name</th><th>Description</th><th>Default</th></tr>
-</thead>
-<tbody>
-<tr><td>tickTime</td><td>The tick is the basic unit of time in ZooKeeper, measured in milliseconds and used to regulate things like heartbeats and timeouts. tickTime is the length of a single tick.</td><td>2000</td></tr>
-<tr><td>initLimit</td><td>The maximum time, in ticks, that the leader ZooKeeper server allows follower ZooKeeper servers to successfully connect and sync. The tick time is set in milliseconds using the tickTime parameter.</td><td>10</td></tr>
-<tr><td>syncLimit</td><td>The maximum time, in ticks, that a follower ZooKeeper server is allowed to sync with other ZooKeeper servers. The tick time is set in milliseconds using the tickTime parameter.</td><td>5</td></tr>
-<tr><td>dataDir</td><td>The location where ZooKeeper stores in-memory database snapshots as well as the transaction log of updates to the database.</td><td>data/zookeeper</td></tr>
-<tr><td>clientPort</td><td>The port on which the ZooKeeper server listens for connections.</td><td>2181</td></tr>
-<tr><td>autopurge.snapRetainCount</td><td>In ZooKeeper, auto purge determines how many recent snapshots of the database stored in dataDir to retain within the time interval specified by autopurge.purgeInterval (while deleting the rest).</td><td>3</td></tr>
-<tr><td>autopurge.purgeInterval</td><td>The time interval, in hours, which triggers the ZooKeeper database purge task. Setting to a non-zero number enables auto purge; setting to 0 disables. Read this guide before enabling auto purge.</td><td>1</td></tr>
-<tr><td>maxClientCnxns</td><td>The maximum number of client connections. Increase this if you need to handle more ZooKeeper clients.</td><td>60</td></tr>
-</tbody>
-</table>
-<h4><a class="anchor" aria-hidden="true" id="configuration-store"></a><a href="#configuration-store" 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 [...]
-<p>The <a href="/docs/en/next/reference-configuration#configuration-store"><code>conf/global-zookeeper.conf</code></a> file handles the configuration for configuration store. The table below shows the available parameters:</p>
+<p>In Pulsar, ZooKeeper configuration is handled by two separate configuration files in the <code>conf</code> directory of your Pulsar installation:</p>
+<ul>
+<li>The <code>conf/zookeeper.conf</code> file handles the configuration for local ZooKeeper.</li>
+<li>The <code>conf/global-zookeeper.conf</code> file handles the configuration for configuration store.
+See <a href="/docs/en/next/reference-configuration#zookeeper">parameters</a> for more details.</li>
+</ul>
+<h4><a class="anchor" aria-hidden="true" id="configure-batching-operations"></a><a href="#configure-batching-operations" 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  [...]
+<p>Using the batching operations reduces the remote procedure call (RPC) traffic between ZooKeeper client and servers. It also reduces the number of write transactions, because each batching operation corresponds to a single ZooKeeper transaction, containing multiple read and write operations.</p>
+<p>The following figure demonstrates a basic benchmark of batching read/write operations that can be requested to ZooKeeper in one second:</p>
+<p><img src="/docs/assets/zookeeper-batching.png" alt="Zookeeper batching benchmark"></p>
+<p>To enable batching operations, set the <a href="/docs/en/next/reference-configuration#broker"><code>metadataStoreBatchingEnabled</code></a> parameter to <code>true</code> on the broker side.</p>
 <h2><a class="anchor" aria-hidden="true" id="bookkeeper"></a><a href="#bookkeeper" 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 [...]
 <p>BookKeeper stores all durable message in Pulsar. BookKeeper is a distributed <a href="https://en.wikipedia.org/wiki/Write-ahead_logging">write-ahead log</a> WAL system that guarantees read consistency of independent message logs calls ledgers. Individual BookKeeper servers are also called <em>bookies</em>.</p>
 <blockquote>
diff --git a/content/docs/en/next/administration-zk-bk/index.html b/content/docs/en/next/administration-zk-bk/index.html
index 0d27e9a..3e9894d 100644
--- a/content/docs/en/next/administration-zk-bk/index.html
+++ b/content/docs/en/next/administration-zk-bk/index.html
@@ -156,26 +156,17 @@
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start configuration-store</span>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="zookeeper-configuration"></a><a href="#zookeeper-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 [...]
-<p>In Pulsar, ZooKeeper configuration is handled by two separate configuration files in the <code>conf</code> directory of your Pulsar installation: <code>conf/zookeeper.conf</code> for <a href="#local-zookeeper">local ZooKeeper</a> and <code>conf/global-zookeeper.conf</code> for <a href="#configuration-store">configuration store</a>.</p>
-<h4><a class="anchor" aria-hidden="true" id="local-zookeeper"></a><a href="#local-zookeeper" 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>The <a href="/docs/en/next/reference-configuration#zookeeper"><code>conf/zookeeper.conf</code></a> file handles the configuration for local ZooKeeper. The table below shows the available parameters:</p>
-<table>
-<thead>
-<tr><th>Name</th><th>Description</th><th>Default</th></tr>
-</thead>
-<tbody>
-<tr><td>tickTime</td><td>The tick is the basic unit of time in ZooKeeper, measured in milliseconds and used to regulate things like heartbeats and timeouts. tickTime is the length of a single tick.</td><td>2000</td></tr>
-<tr><td>initLimit</td><td>The maximum time, in ticks, that the leader ZooKeeper server allows follower ZooKeeper servers to successfully connect and sync. The tick time is set in milliseconds using the tickTime parameter.</td><td>10</td></tr>
-<tr><td>syncLimit</td><td>The maximum time, in ticks, that a follower ZooKeeper server is allowed to sync with other ZooKeeper servers. The tick time is set in milliseconds using the tickTime parameter.</td><td>5</td></tr>
-<tr><td>dataDir</td><td>The location where ZooKeeper stores in-memory database snapshots as well as the transaction log of updates to the database.</td><td>data/zookeeper</td></tr>
-<tr><td>clientPort</td><td>The port on which the ZooKeeper server listens for connections.</td><td>2181</td></tr>
-<tr><td>autopurge.snapRetainCount</td><td>In ZooKeeper, auto purge determines how many recent snapshots of the database stored in dataDir to retain within the time interval specified by autopurge.purgeInterval (while deleting the rest).</td><td>3</td></tr>
-<tr><td>autopurge.purgeInterval</td><td>The time interval, in hours, which triggers the ZooKeeper database purge task. Setting to a non-zero number enables auto purge; setting to 0 disables. Read this guide before enabling auto purge.</td><td>1</td></tr>
-<tr><td>maxClientCnxns</td><td>The maximum number of client connections. Increase this if you need to handle more ZooKeeper clients.</td><td>60</td></tr>
-</tbody>
-</table>
-<h4><a class="anchor" aria-hidden="true" id="configuration-store"></a><a href="#configuration-store" 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 [...]
-<p>The <a href="/docs/en/next/reference-configuration#configuration-store"><code>conf/global-zookeeper.conf</code></a> file handles the configuration for configuration store. The table below shows the available parameters:</p>
+<p>In Pulsar, ZooKeeper configuration is handled by two separate configuration files in the <code>conf</code> directory of your Pulsar installation:</p>
+<ul>
+<li>The <code>conf/zookeeper.conf</code> file handles the configuration for local ZooKeeper.</li>
+<li>The <code>conf/global-zookeeper.conf</code> file handles the configuration for configuration store.
+See <a href="/docs/en/next/reference-configuration#zookeeper">parameters</a> for more details.</li>
+</ul>
+<h4><a class="anchor" aria-hidden="true" id="configure-batching-operations"></a><a href="#configure-batching-operations" 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  [...]
+<p>Using the batching operations reduces the remote procedure call (RPC) traffic between ZooKeeper client and servers. It also reduces the number of write transactions, because each batching operation corresponds to a single ZooKeeper transaction, containing multiple read and write operations.</p>
+<p>The following figure demonstrates a basic benchmark of batching read/write operations that can be requested to ZooKeeper in one second:</p>
+<p><img src="/docs/assets/zookeeper-batching.png" alt="Zookeeper batching benchmark"></p>
+<p>To enable batching operations, set the <a href="/docs/en/next/reference-configuration#broker"><code>metadataStoreBatchingEnabled</code></a> parameter to <code>true</code> on the broker side.</p>
 <h2><a class="anchor" aria-hidden="true" id="bookkeeper"></a><a href="#bookkeeper" 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 [...]
 <p>BookKeeper stores all durable message in Pulsar. BookKeeper is a distributed <a href="https://en.wikipedia.org/wiki/Write-ahead_logging">write-ahead log</a> WAL system that guarantees read consistency of independent message logs calls ledgers. Individual BookKeeper servers are also called <em>bookies</em>.</p>
 <blockquote>
diff --git a/content/docs/en/next/concepts-messaging.html b/content/docs/en/next/concepts-messaging.html
index f9b0838..9b6217b 100644
--- a/content/docs/en/next/concepts-messaging.html
+++ b/content/docs/en/next/concepts-messaging.html
@@ -154,21 +154,38 @@ nettyMaxFrameSizeBytes=5253120
 <p>To avoid redelivering acknowledged messages in a batch to the consumer, Pulsar introduces batch index acknowledgement since Pulsar 2.6.0. When batch index acknowledgement is enabled, the consumer filters out the batch index that has been acknowledged and sends the batch index acknowledgement request to the broker. The broker maintains the batch index acknowledgement status and tracks the acknowledgement status of each batch index to avoid dispatching acknowledged messages to the consu [...]
 <p>By default, batch index acknowledgement is disabled (<code>acknowledgmentAtBatchIndexLevelEnabled=false</code>). You can enable batch index acknowledgement by setting the <code>acknowledgmentAtBatchIndexLevelEnabled</code> parameter to <code>true</code> at the broker side. Enabling batch index acknowledgement results in more memory overheads.</p>
 <h3><a class="anchor" aria-hidden="true" id="chunking"></a><a href="#chunking" 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  [...]
-<p>Before you enable chunking, read the following instructions.</p>
+<p>Message chunking enables Pulsar to process large payload messages by splitting the message into chunks at the producer side and aggregating chunked messages at the consumer side.</p>
+<p>With message chunking enabled, when the size of a message exceeds the allowed maximum payload size (the <code>maxMessageSize</code> parameter of broker), the workflow of messaging is as follows:</p>
+<ol>
+<li>The producer splits the original message into chunked messages and publishes them with chunked metadata to the broker separately and in order.</li>
+<li>The broker stores the chunked messages in one managed-ledger in the same way as that of ordinary messages, and it uses the <code>chunkedMessageRate</code> parameter to record chunked message rate on the topic.</li>
+<li>The consumer buffers the chunked messages and aggregates them into the receiver queue when it receives all the chunks of a message.</li>
+<li>The client consumes the aggregated message from the receiver queue.</li>
+</ol>
+<p><strong>Limitations:</strong></p>
 <ul>
-<li>Batching and chunking cannot be enabled simultaneously. To enable chunking, you must disable batching in advance.</li>
-<li>Chunking is only supported for persisted topics.</li>
-<li>Chunking is only supported for Exclusive and Failover subscription types.</li>
+<li>Chunking is only available for persisted topics.</li>
+<li>Chunking is only available for the exclusive and failover subscription types.</li>
+<li>Chunking cannot be enabled simultaneously with batching.</li>
 </ul>
-<p>When chunking is enabled (<code>chunkingEnabled=true</code>), if the message size is greater than the allowed maximum publish-payload size, the producer splits the original message into chunked messages and publishes them with chunked metadata to the broker separately and in order. At the broker side, the chunked messages are stored in the managed-ledger in the same way as that of ordinary messages. The only difference is that the consumer needs to buffer the chunked messages and comb [...]
-<p>The consumer consumes the chunked messages and buffers them until the consumer receives all the chunks of a message. And then the consumer stitches chunked messages together and places them into the receiver-queue. Clients consume messages from the receiver-queue. Once the consumer consumes the entire large message and acknowledges it, the consumer internally sends acknowledgement of all the chunk messages associated to that large message. You can set the <code>maxPendingChunkedMessag [...]
-<p>The broker does not require any changes to support chunking for non-shared subscription. The broker only uses <code>chunkedMessageRate</code> to record chunked message rate on the topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="handle-chunked-messages-with-one-producer-and-one-ordered-consumer"></a><a href="#handle-chunked-messages-with-one-producer-and-one-ordered-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  [...]
-<p>As shown in the following figure, when a topic has one producer which publishes large message payload in chunked messages along with regular non-chunked messages. The producer publishes message M1 in three chunks M1-C1, M1-C2 and M1-C3. The broker stores all the three chunked messages in the managed-ledger and dispatches to the ordered (exclusive/failover) consumer in the same order. The consumer buffers all the chunked messages in memory until it receives all the chunked messages, co [...]
+<h4><a class="anchor" aria-hidden="true" id="handle-consecutive-chunked-messages-with-one-ordered-consumer"></a><a href="#handle-consecutive-chunked-messages-with-one-ordered-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-. [...]
+<p>The following figure shows a topic with one producer which publishes a large message payload in chunked messages along with regular non-chunked messages. The producer publishes message M1 in three chunks labeled M1-C1, M1-C2 and M1-C3. The broker stores all the three chunked messages in the managed-ledger and dispatches them to the ordered (exclusive/failover) consumer in the same order. The consumer buffers all the chunked messages in memory until it receives all the chunked messages [...]
 <p><img src="/docs/assets/chunking-01.png" alt=""></p>
-<h4><a class="anchor" aria-hidden="true" id="handle-chunked-messages-with-multiple-producers-and-one-ordered-consumer"></a><a href="#handle-chunked-messages-with-multiple-producers-and-one-ordered-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.09C1 [...]
-<p>When multiple publishers publish chunked messages into a single topic, the broker stores all the chunked messages coming from different publishers in the same managed-ledger. As shown below, Producer 1 publishes message M1 in three chunks M1-C1, M1-C2 and M1-C3. Producer 2 publishes message M2 in three chunks M2-C1, M2-C2 and M2-C3. All chunked messages of the specific message are still in order but might not be consecutive in the managed-ledger. This brings some memory pressure to th [...]
+<h4><a class="anchor" aria-hidden="true" id="handle-interwoven-chunked-messages-with-one-ordered-consumer"></a><a href="#handle-interwoven-chunked-messages-with-one-ordered-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 [...]
+<p>When multiple producers publish chunked messages into a single topic, the broker stores all the chunked messages coming from different producers in the same managed-ledger. The chunked messages in the managed-ledger can be interwoven with each other. As shown below, Producer 1 publishes message M1 in three chunks M1-C1, M1-C2 and M1-C3. Producer 2 publishes message M2 in three chunks M2-C1, M2-C2 and M2-C3. All chunked messages of the specific message are still in order but might not  [...]
 <p><img src="/docs/assets/chunking-02.png" alt=""></p>
+<blockquote>
+<p><strong>Note</strong>  <br>
+In this case, interwoven chunked messages may bring some memory pressure to the consumer because the consumer keeps a separate buffer for each large message to aggregate all its chunks in one message. You can limit the maximum number of chunked messages a consumer maintains concurrently by configuring the <code>maxPendingChunkedMessage</code> parameter. When the threshold is reached, the consumer drops pending messages by silently acknowledging them or asking the broker to redeliver them [...]
+</blockquote>
+<h4><a class="anchor" aria-hidden="true" id="enable-message-chunking"></a><a href="#enable-message-chunking" 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 [...]
+<p><strong>Prerequisite:</strong> Disable batching by setting the <code>enableBatching</code> parameter to <code>false</code>.</p>
+<p>The message chunking feature is OFF by default.
+To enable message chunking, set the <code>chunkingEnabled</code> parameter to <code>true</code> when creating a producer.</p>
+<blockquote>
+<p><strong>Note</strong>  <br>
+If the consumer fails to receive all chunks of a message within a specified time period, it expires incomplete chunks. The default value is 1 minute. For more information about the <code>expireTimeOfIncompleteChunkedMessage</code> parameter, refer to <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/">org.apache.pulsar.client.api</a>.</p>
+</blockquote>
 <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 [...]
 <p>A consumer is a process that attaches to a topic via a subscription and then receives messages.</p>
 <p>A consumer sends a <a href="/docs/en/next/develop-binary-protocol#flow-control">flow permit request</a> to a broker to get messages. There is a queue at the consumer side to receive messages pushed from the broker. You can configure the queue size with the <a href="/docs/en/next/client-libraries-java#configure-consumer"><code>receiverQueueSize</code></a> parameter. The default size is <code>1000</code>). Each time <code>consumer.receive()</code> is called, a message is dequeued from t [...]
diff --git a/content/docs/en/next/concepts-messaging/index.html b/content/docs/en/next/concepts-messaging/index.html
index f9b0838..9b6217b 100644
--- a/content/docs/en/next/concepts-messaging/index.html
+++ b/content/docs/en/next/concepts-messaging/index.html
@@ -154,21 +154,38 @@ nettyMaxFrameSizeBytes=5253120
 <p>To avoid redelivering acknowledged messages in a batch to the consumer, Pulsar introduces batch index acknowledgement since Pulsar 2.6.0. When batch index acknowledgement is enabled, the consumer filters out the batch index that has been acknowledged and sends the batch index acknowledgement request to the broker. The broker maintains the batch index acknowledgement status and tracks the acknowledgement status of each batch index to avoid dispatching acknowledged messages to the consu [...]
 <p>By default, batch index acknowledgement is disabled (<code>acknowledgmentAtBatchIndexLevelEnabled=false</code>). You can enable batch index acknowledgement by setting the <code>acknowledgmentAtBatchIndexLevelEnabled</code> parameter to <code>true</code> at the broker side. Enabling batch index acknowledgement results in more memory overheads.</p>
 <h3><a class="anchor" aria-hidden="true" id="chunking"></a><a href="#chunking" 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  [...]
-<p>Before you enable chunking, read the following instructions.</p>
+<p>Message chunking enables Pulsar to process large payload messages by splitting the message into chunks at the producer side and aggregating chunked messages at the consumer side.</p>
+<p>With message chunking enabled, when the size of a message exceeds the allowed maximum payload size (the <code>maxMessageSize</code> parameter of broker), the workflow of messaging is as follows:</p>
+<ol>
+<li>The producer splits the original message into chunked messages and publishes them with chunked metadata to the broker separately and in order.</li>
+<li>The broker stores the chunked messages in one managed-ledger in the same way as that of ordinary messages, and it uses the <code>chunkedMessageRate</code> parameter to record chunked message rate on the topic.</li>
+<li>The consumer buffers the chunked messages and aggregates them into the receiver queue when it receives all the chunks of a message.</li>
+<li>The client consumes the aggregated message from the receiver queue.</li>
+</ol>
+<p><strong>Limitations:</strong></p>
 <ul>
-<li>Batching and chunking cannot be enabled simultaneously. To enable chunking, you must disable batching in advance.</li>
-<li>Chunking is only supported for persisted topics.</li>
-<li>Chunking is only supported for Exclusive and Failover subscription types.</li>
+<li>Chunking is only available for persisted topics.</li>
+<li>Chunking is only available for the exclusive and failover subscription types.</li>
+<li>Chunking cannot be enabled simultaneously with batching.</li>
 </ul>
-<p>When chunking is enabled (<code>chunkingEnabled=true</code>), if the message size is greater than the allowed maximum publish-payload size, the producer splits the original message into chunked messages and publishes them with chunked metadata to the broker separately and in order. At the broker side, the chunked messages are stored in the managed-ledger in the same way as that of ordinary messages. The only difference is that the consumer needs to buffer the chunked messages and comb [...]
-<p>The consumer consumes the chunked messages and buffers them until the consumer receives all the chunks of a message. And then the consumer stitches chunked messages together and places them into the receiver-queue. Clients consume messages from the receiver-queue. Once the consumer consumes the entire large message and acknowledges it, the consumer internally sends acknowledgement of all the chunk messages associated to that large message. You can set the <code>maxPendingChunkedMessag [...]
-<p>The broker does not require any changes to support chunking for non-shared subscription. The broker only uses <code>chunkedMessageRate</code> to record chunked message rate on the topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="handle-chunked-messages-with-one-producer-and-one-ordered-consumer"></a><a href="#handle-chunked-messages-with-one-producer-and-one-ordered-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  [...]
-<p>As shown in the following figure, when a topic has one producer which publishes large message payload in chunked messages along with regular non-chunked messages. The producer publishes message M1 in three chunks M1-C1, M1-C2 and M1-C3. The broker stores all the three chunked messages in the managed-ledger and dispatches to the ordered (exclusive/failover) consumer in the same order. The consumer buffers all the chunked messages in memory until it receives all the chunked messages, co [...]
+<h4><a class="anchor" aria-hidden="true" id="handle-consecutive-chunked-messages-with-one-ordered-consumer"></a><a href="#handle-consecutive-chunked-messages-with-one-ordered-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-. [...]
+<p>The following figure shows a topic with one producer which publishes a large message payload in chunked messages along with regular non-chunked messages. The producer publishes message M1 in three chunks labeled M1-C1, M1-C2 and M1-C3. The broker stores all the three chunked messages in the managed-ledger and dispatches them to the ordered (exclusive/failover) consumer in the same order. The consumer buffers all the chunked messages in memory until it receives all the chunked messages [...]
 <p><img src="/docs/assets/chunking-01.png" alt=""></p>
-<h4><a class="anchor" aria-hidden="true" id="handle-chunked-messages-with-multiple-producers-and-one-ordered-consumer"></a><a href="#handle-chunked-messages-with-multiple-producers-and-one-ordered-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.09C1 [...]
-<p>When multiple publishers publish chunked messages into a single topic, the broker stores all the chunked messages coming from different publishers in the same managed-ledger. As shown below, Producer 1 publishes message M1 in three chunks M1-C1, M1-C2 and M1-C3. Producer 2 publishes message M2 in three chunks M2-C1, M2-C2 and M2-C3. All chunked messages of the specific message are still in order but might not be consecutive in the managed-ledger. This brings some memory pressure to th [...]
+<h4><a class="anchor" aria-hidden="true" id="handle-interwoven-chunked-messages-with-one-ordered-consumer"></a><a href="#handle-interwoven-chunked-messages-with-one-ordered-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 [...]
+<p>When multiple producers publish chunked messages into a single topic, the broker stores all the chunked messages coming from different producers in the same managed-ledger. The chunked messages in the managed-ledger can be interwoven with each other. As shown below, Producer 1 publishes message M1 in three chunks M1-C1, M1-C2 and M1-C3. Producer 2 publishes message M2 in three chunks M2-C1, M2-C2 and M2-C3. All chunked messages of the specific message are still in order but might not  [...]
 <p><img src="/docs/assets/chunking-02.png" alt=""></p>
+<blockquote>
+<p><strong>Note</strong>  <br>
+In this case, interwoven chunked messages may bring some memory pressure to the consumer because the consumer keeps a separate buffer for each large message to aggregate all its chunks in one message. You can limit the maximum number of chunked messages a consumer maintains concurrently by configuring the <code>maxPendingChunkedMessage</code> parameter. When the threshold is reached, the consumer drops pending messages by silently acknowledging them or asking the broker to redeliver them [...]
+</blockquote>
+<h4><a class="anchor" aria-hidden="true" id="enable-message-chunking"></a><a href="#enable-message-chunking" 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 [...]
+<p><strong>Prerequisite:</strong> Disable batching by setting the <code>enableBatching</code> parameter to <code>false</code>.</p>
+<p>The message chunking feature is OFF by default.
+To enable message chunking, set the <code>chunkingEnabled</code> parameter to <code>true</code> when creating a producer.</p>
+<blockquote>
+<p><strong>Note</strong>  <br>
+If the consumer fails to receive all chunks of a message within a specified time period, it expires incomplete chunks. The default value is 1 minute. For more information about the <code>expireTimeOfIncompleteChunkedMessage</code> parameter, refer to <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/">org.apache.pulsar.client.api</a>.</p>
+</blockquote>
 <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 [...]
 <p>A consumer is a process that attaches to a topic via a subscription and then receives messages.</p>
 <p>A consumer sends a <a href="/docs/en/next/develop-binary-protocol#flow-control">flow permit request</a> to a broker to get messages. There is a queue at the consumer side to receive messages pushed from the broker. You can configure the queue size with the <a href="/docs/en/next/client-libraries-java#configure-consumer"><code>receiverQueueSize</code></a> parameter. The default size is <code>1000</code>). Each time <code>consumer.receive()</code> is called, a message is dequeued from t [...]
diff --git a/content/docs/en/next/reference-configuration.html b/content/docs/en/next/reference-configuration.html
index 0955b27..c1740cc 100644
--- a/content/docs/en/next/reference-configuration.html
+++ b/content/docs/en/next/reference-configuration.html
@@ -177,7 +177,7 @@
 <tr><td>readBufferSizeBytes</td><td>The number of bytes we should use as capacity for BufferedReadChannel.</td><td>4096</td></tr>
 <tr><td>writeBufferSizeBytes</td><td>The number of bytes used as capacity for the write buffer</td><td>65536</td></tr>
 <tr><td>useHostNameAsBookieID</td><td>Whether the bookie should use its hostname to register with the coordination service (e.g.: zookeeper service). When false, bookie will use its ip address for the registration.</td><td>false</td></tr>
-<tr><td>bookieId</td><td>If you want to custom a bookie ID or use a dynamic network address for the bookie, you can set the <code>bookieId</code>. <br><br>Bookie advertises itself using the <code>bookieId</code> rather than the <code>BookieSocketAddress</code> (<code>hostname:port</code> or <code>IP:port</code>). If you set the <code>bookieId</code>, then the <code>useHostNameAsBookieID</code> does not take effect.<br><br>The <code>bookieId</code> is a non-empty string that can contain A [...]
+<tr><td>bookieId</td><td>If you want to custom a bookie ID or use a dynamic network address for the bookie, you can set the <code>bookieId</code>. <br /><br />Bookie advertises itself using the <code>bookieId</code> rather than the <code>BookieSocketAddress</code> (<code>hostname:port</code> or <code>IP:port</code>). If you set the <code>bookieId</code>, then the <code>useHostNameAsBookieID</code> does not take effect.<br /><br />The <code>bookieId</code> is a non-empty string that can c [...]
 <tr><td>allowEphemeralPorts</td><td>Whether the bookie is allowed to use an ephemeral port (port 0) as its server port. By default, an ephemeral port is not allowed. Using an ephemeral port as the service port usually indicates a configuration error. However, in unit tests, using an ephemeral port will address port conflict problems and allow running tests in parallel.</td><td>false</td></tr>
 <tr><td>enableLocalTransport</td><td>Whether the bookie is allowed to listen for the BookKeeper clients executed on the local JVM.</td><td>false</td></tr>
 <tr><td>disableServerSocketBind</td><td>Whether the bookie is allowed to disable bind on network interfaces. This bookie will be available only to BookKeeper clients executed on the local JVM.</td><td>false</td></tr>
@@ -206,8 +206,8 @@
 <tr><th>Name</th><th>Description</th><th>Default</th></tr>
 </thead>
 <tbody>
-<tr><td>advertisedListeners</td><td>Specify multiple advertised listeners for the broker.<br><br>The format is <code>&lt;listener_name&gt;:pulsar://&lt;host&gt;:&lt;port&gt;</code>.<br><br>If there are multiple listeners, separate them with commas.<br><br><strong>Note</strong>: do not use this configuration with <code>advertisedAddress</code> and <code>brokerServicePort</code>. If the value of this configuration is empty, the broker uses <code>advertisedAddress</code> and <code>brokerSer [...]
-<tr><td>internalListenerName</td><td>Specify the internal listener name for the broker.<br><br><strong>Note</strong>: the listener name must be contained in <code>advertisedListeners</code>.<br><br> If the value of this configuration is empty, the broker uses the first listener as the internal listener.</td><td>/</td></tr>
+<tr><td>advertisedListeners</td><td>Specify multiple advertised listeners for the broker.<br /><br />The format is <code>&lt;listener_name&gt;:pulsar://&lt;host&gt;:&lt;port&gt;</code>.<br /><br />If there are multiple listeners, separate them with commas.<br /><br /><strong>Note</strong>: do not use this configuration with <code>advertisedAddress</code> and <code>brokerServicePort</code>. If the value of this configuration is empty, the broker uses <code>advertisedAddress</code> and <co [...]
+<tr><td>internalListenerName</td><td>Specify the internal listener name for the broker.<br /><br /><strong>Note</strong>: the listener name must be contained in <code>advertisedListeners</code>.<br /><br /> If the value of this configuration is empty, the broker uses the first listener as the internal listener.</td><td>/</td></tr>
 <tr><td>authenticateOriginalAuthData</td><td>If this flag is set to <code>true</code>, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required).</td><td>false</td></tr>
 <tr><td>enablePersistentTopics</td><td>Whether persistent topics are enabled on the broker</td><td>true</td></tr>
 <tr><td>enableNonPersistentTopics</td><td>Whether non-persistent topics are enabled on the broker</td><td>true</td></tr>
@@ -268,7 +268,7 @@
 <tr><td>forceDeleteNamespaceAllowed</td><td>Enable you to delete a namespace forcefully.</td><td>false</td></tr>
 <tr><td>messageExpiryCheckIntervalInMinutes</td><td>The frequency of proactively checking and purging expired messages.</td><td>5</td></tr>
 <tr><td>brokerServiceCompactionMonitorIntervalInSeconds</td><td>Interval between checks to determine whether topics with compaction policies need compaction.</td><td>60</td></tr>
-<tr><td>brokerServiceCompactionThresholdInBytes</td><td>If the estimated backlog size is greater than this threshold, compression is triggered.<br><br>Set this threshold to 0 means disabling the compression check.</td><td>N/A</td></tr>
+<tr><td>brokerServiceCompactionThresholdInBytes</td><td>If the estimated backlog size is greater than this threshold, compression is triggered.<br /><br />Set this threshold to 0 means disabling the compression check.</td><td>N/A</td></tr>
 <tr><td>delayedDeliveryEnabled</td><td>Whether to enable the delayed delivery for messages. If disabled, messages will be immediately delivered and there will be no tracking overhead.</td><td>true</td></tr>
 <tr><td>delayedDeliveryTickTimeMillis</td><td>Control the tick time for retrying on delayed delivery, which affects the accuracy of the delivery time compared to the scheduled time. By default, it is 1 second.</td><td>1000</td></tr>
 <tr><td>activeConsumerFailoverDelayTimeMillis</td><td>How long to delay rewinding cursor and dispatching messages when active consumer is changed.</td><td>1000</td></tr>
@@ -296,6 +296,10 @@
 <tr><td>brokerClientTlsTrustStorePassword</td><td>TLS TrustStore password for internal client, used by the internal client to authenticate with Pulsar brokers</td><td></td></tr>
 <tr><td>brokerClientTlsCiphers</td><td>Specify the tls cipher the internal client will use to negotiate during TLS Handshake. (a comma-separated list of ciphers) e.g.  [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]</td><td></td></tr>
 <tr><td>brokerClientTlsProtocols</td><td>Specify the tls protocols the broker will use to negotiate during TLS handshake. (a comma-separated list of protocol names). e.g.  <code>TLSv1.3</code>, <code>TLSv1.2</code></td><td></td></tr>
+<tr><td>metadataStoreBatchingEnabled</td><td>Enable metadata operations batching.</td><td>true</td></tr>
+<tr><td>metadataStoreBatchingMaxDelayMillis</td><td>Maximum delay to impose on batching grouping.</td><td>5</td></tr>
+<tr><td>metadataStoreBatchingMaxOperations</td><td>Maximum number of operations to include in a singular batch.</td><td>1000</td></tr>
+<tr><td>metadataStoreBatchingMaxSizeKb</td><td>Maximum size of a batch.</td><td>128</td></tr>
 <tr><td>ttlDurationDefaultInSeconds</td><td>The default Time to Live (TTL) for namespaces if the TTL is not configured at namespace policies. When the value is set to <code>0</code>, TTL is disabled. By default, TTL is disabled.</td><td>0</td></tr>
 <tr><td>tokenSettingPrefix</td><td>Configure the prefix of the token-related settings, such as <code>tokenSecretKey</code>, <code>tokenPublicKey</code>, <code>tokenAuthClaim</code>, <code>tokenPublicAlg</code>, <code>tokenAudienceClaim</code>, and <code>tokenAudience</code>.</td><td></td></tr>
 <tr><td>tokenSecretKey</td><td>Configure the secret key to be used to validate auth tokens. The key can be specified like: <code>tokenSecretKey=data:;base64,xxxxxxxxx</code> or <code>tokenSecretKey=file:///my/secret.key</code>.  Note: key file must be DER-encoded.</td><td></td></tr>
@@ -365,7 +369,7 @@
 <tr><td>loadBalancerEnabled</td><td>Enable load balancer</td><td>true</td></tr>
 <tr><td>loadBalancerPlacementStrategy</td><td>Strategy to assign a new bundle weightedRandomSelection</td><td></td></tr>
 <tr><td>loadBalancerReportUpdateThresholdPercentage</td><td>Percentage of change to trigger load report update</td><td>10</td></tr>
-<tr><td>loadBalancerReportUpdateMaxIntervalMinutes</td><td>maximum interval to update load report</td><td>15</td></tr>
+<tr><td>loadBalancerReportUpdateMaxIntervalMinutes</td><td>Maximum interval to update load report</td><td>15</td></tr>
 <tr><td>loadBalancerHostUsageCheckIntervalMinutes</td><td>Frequency of report to collect</td><td>1</td></tr>
 <tr><td>loadBalancerSheddingIntervalMinutes</td><td>Load shedding interval. Broker periodically checks whether some traffic should be offload from some over-loaded broker to other under-loaded brokers</td><td>30</td></tr>
 <tr><td>loadBalancerSheddingGracePeriodMinutes</td><td>Prevent the same topics to be shed and moved to other broker more than once within this timeframe</td><td>30</td></tr>
@@ -430,8 +434,8 @@
 <tr><td>haProxyProtocolEnabled</td><td>Enable or disable the <a href="http://www.haproxy.org/">HAProxy</a> protocol.</td><td>false</td></tr>
 <tr><td>maxTopicsPerNamespace</td><td>The maximum number of persistent topics that can be created in the namespace. When the number of topics reaches this threshold, the broker rejects the request of creating a new topic, including the auto-created topics by the producer or consumer, until the number of connected consumers decreases. The default value 0 disables the check.</td><td>0</td></tr>
 <tr><td>subscriptionTypesEnabled</td><td>Enable all subscription types, which are exclusive, shared, failover, and key_shared.</td><td>Exclusive, Shared, Failover, Key_Shared</td></tr>
-<tr><td>managedLedgerInfoCompressionType</td><td>Compression type of managed ledger information. <br><br>Available options are <code>NONE</code>, <code>LZ4</code>, <code>ZLIB</code>, <code>ZSTD</code>, and <code>SNAPPY</code>). <br><br>If this value is <code>NONE</code> or invalid, the <code>managedLedgerInfo</code> is not compressed. <br><br><strong>Note</strong> that after enabling this configuration, if you want to degrade a broker, you need to change the value to <code>NONE</code> an [...]
-<tr><td>additionalServlets</td><td>Additional servlet name. <br><br>If you have multiple additional servlets, separate them by commas. <br><br>For example, additionalServlet_1, additionalServlet_2</td><td>N/A</td></tr>
+<tr><td>managedLedgerInfoCompressionType</td><td>Compression type of managed ledger information. <br /><br />Available options are <code>NONE</code>, <code>LZ4</code>, <code>ZLIB</code>, <code>ZSTD</code>, and <code>SNAPPY</code>). <br /><br />If this value is <code>NONE</code> or invalid, the <code>managedLedgerInfo</code> is not compressed. <br /><br /><strong>Note</strong> that after enabling this configuration, if you want to degrade a broker, you need to change the value to <code>NO [...]
+<tr><td>additionalServlets</td><td>Additional servlet name. <br /><br />If you have multiple additional servlets, separate them by commas. <br /><br />For example, additionalServlet_1, additionalServlet_2</td><td>N/A</td></tr>
 <tr><td>additionalServletDirectory</td><td>Location of broker additional servlet NAR directory</td><td>./brokerAdditionalServlet</td></tr>
 <tr><td>brokerEntryMetadataInterceptors</td><td>Set broker entry metadata interceptors.<br /><br />Multiple interceptors should be separated by commas. <br /><br />Available values:<li>org.apache.pulsar.common.intercept.AppendBrokerTimestampMetadataInterceptor</li><li>org.apache.pulsar.common.intercept.AppendIndexMetadataInterceptor</li> <br /><br />Example<br />brokerEntryMetadataInterceptors=org.apache.pulsar.common.intercept.AppendBrokerTimestampMetadataInterceptor, org.apache.pulsar. [...]
 <tr><td>enableExposingBrokerEntryMetadataToClient</td><td>Whether to expose broker entry metadata to client or not.<br /><br />Available values:<li>true</li><li>false</li><br />Example<br />enableExposingBrokerEntryMetadataToClient=true</td><td>false</td></tr>
@@ -596,7 +600,10 @@
 <tr><td>maxProducersPerTopic</td><td>Maximum number of producers allowed to connect to topic. Once this limit reaches, the broker rejects new producers until the number of connected producers decreases. When the value is set to 0, maxProducersPerTopic-limit check is disabled.</td><td>0</td></tr>
 <tr><td>maxConsumersPerTopic</td><td>Maximum number of consumers allowed to connect to topic. Once this limit reaches, the broker rejects new consumers until the number of connected consumers decreases. When the value is set to 0, maxConsumersPerTopic-limit check is disabled.</td><td>0</td></tr>
 <tr><td>maxConsumersPerSubscription</td><td>Maximum number of consumers allowed to connect to subscription. Once this limit reaches, the broker rejects new consumers until the number of connected consumers decreases. When the value is set to 0, maxConsumersPerSubscription-limit check is disabled.</td><td>0</td></tr>
-<tr><td>maxNumPartitionsPerPartitionedTopic</td><td>Maximum number of partitions per partitioned topic. When the value is set to a negative number or is set to 0, the check is disabled.</td><td>0</td></tr>
+<tr><td>metadataStoreBatchingEnabled</td><td>Enable metadata operations batching.</td><td>true</td></tr>
+<tr><td>metadataStoreBatchingMaxDelayMillis</td><td>Maximum delay to impose on batching grouping.</td><td>5</td></tr>
+<tr><td>metadataStoreBatchingMaxOperations</td><td>Maximum number of operations to include in a singular batch.</td><td>1000</td></tr>
+<tr><td>metadataStoreBatchingMaxSizeKb</td><td>Maximum size of a batch.</td><td>128</td></tr>
 <tr><td>tlsCertRefreshCheckDurationSec</td><td>TLS certificate refresh duration in seconds. When the value is set to 0, check the TLS certificate on every new connection.</td><td>300</td></tr>
 <tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file.</td><td></td></tr>
 <tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file.</td><td></td></tr>
@@ -724,7 +731,7 @@
 <tr><td>loadBalancerAutoBundleSplitEnabled</td><td></td><td>false</td></tr>
 <tr><td>loadBalancerAutoUnloadSplitBundlesEnabled</td><td>Enable/Disable automatic unloading of split bundles.</td><td>true</td></tr>
 <tr><td>loadBalancerNamespaceBundleMaxTopics</td><td></td><td>1000</td></tr>
-<tr><td>loadBalancerNamespaceBundleMaxSessions</td><td></td><td>1000</td></tr>
+<tr><td>loadBalancerNamespaceBundleMaxSessions</td><td>Maximum sessions (producers + consumers) in a bundle, otherwise bundle split will be triggered. <br />To disable the threshold check, set the value to -1.</td><td>1000</td></tr>
 <tr><td>loadBalancerNamespaceBundleMaxMsgRate</td><td></td><td>1000</td></tr>
 <tr><td>loadBalancerNamespaceBundleMaxBandwidthMbytes</td><td></td><td>100</td></tr>
 <tr><td>loadBalancerNamespaceMaximumBundles</td><td></td><td>128</td></tr>
@@ -747,7 +754,7 @@
 <tr><td>defaultRetentionSizeInMB</td><td></td><td>0</td></tr>
 <tr><td>keepAliveIntervalSeconds</td><td></td><td>30</td></tr>
 <tr><td>haProxyProtocolEnabled</td><td>Enable or disable the <a href="http://www.haproxy.org/">HAProxy</a> protocol.</td><td>false</td></tr>
-<tr><td>bookieId</td><td>If you want to custom a bookie ID or use a dynamic network address for a bookie, you can set the <code>bookieId</code>. <br><br>Bookie advertises itself using the <code>bookieId</code> rather than the <code>BookieSocketAddress</code> (<code>hostname:port</code> or <code>IP:port</code>).<br><br> The <code>bookieId</code> is a non-empty string that can contain ASCII digits and letters ([a-zA-Z9-0]), colons, dashes, and dots. <br><br>For more information about <code [...]
+<tr><td>bookieId</td><td>If you want to custom a bookie ID or use a dynamic network address for a bookie, you can set the <code>bookieId</code>. <br /><br />Bookie advertises itself using the <code>bookieId</code> rather than the <code>BookieSocketAddress</code> (<code>hostname:port</code> or <code>IP:port</code>).<br /><br /> The <code>bookieId</code> is a non-empty string that can contain ASCII digits and letters ([a-zA-Z9-0]), colons, dashes, and dots. <br /><br />For more information [...]
 <tr><td>maxTopicsPerNamespace</td><td>The maximum number of persistent topics that can be created in the namespace. When the number of topics reaches this threshold, the broker rejects the request of creating a new topic, including the auto-created topics by the producer or consumer, until the number of connected consumers decreases. The default value 0 disables the check.</td><td>0</td></tr>
 <tr><td>metadataStoreConfigPath</td><td>The configuration file path of the local metadata store. Standalone Pulsar uses <a href="http://rocksdb.org/">RocksDB</a> as the local metadata store. The format is <code>/xxx/xx/rocksdb.ini</code>.</td><td>N/A</td></tr>
 </tbody>
diff --git a/content/docs/en/next/reference-configuration/index.html b/content/docs/en/next/reference-configuration/index.html
index 0955b27..c1740cc 100644
--- a/content/docs/en/next/reference-configuration/index.html
+++ b/content/docs/en/next/reference-configuration/index.html
@@ -177,7 +177,7 @@
 <tr><td>readBufferSizeBytes</td><td>The number of bytes we should use as capacity for BufferedReadChannel.</td><td>4096</td></tr>
 <tr><td>writeBufferSizeBytes</td><td>The number of bytes used as capacity for the write buffer</td><td>65536</td></tr>
 <tr><td>useHostNameAsBookieID</td><td>Whether the bookie should use its hostname to register with the coordination service (e.g.: zookeeper service). When false, bookie will use its ip address for the registration.</td><td>false</td></tr>
-<tr><td>bookieId</td><td>If you want to custom a bookie ID or use a dynamic network address for the bookie, you can set the <code>bookieId</code>. <br><br>Bookie advertises itself using the <code>bookieId</code> rather than the <code>BookieSocketAddress</code> (<code>hostname:port</code> or <code>IP:port</code>). If you set the <code>bookieId</code>, then the <code>useHostNameAsBookieID</code> does not take effect.<br><br>The <code>bookieId</code> is a non-empty string that can contain A [...]
+<tr><td>bookieId</td><td>If you want to custom a bookie ID or use a dynamic network address for the bookie, you can set the <code>bookieId</code>. <br /><br />Bookie advertises itself using the <code>bookieId</code> rather than the <code>BookieSocketAddress</code> (<code>hostname:port</code> or <code>IP:port</code>). If you set the <code>bookieId</code>, then the <code>useHostNameAsBookieID</code> does not take effect.<br /><br />The <code>bookieId</code> is a non-empty string that can c [...]
 <tr><td>allowEphemeralPorts</td><td>Whether the bookie is allowed to use an ephemeral port (port 0) as its server port. By default, an ephemeral port is not allowed. Using an ephemeral port as the service port usually indicates a configuration error. However, in unit tests, using an ephemeral port will address port conflict problems and allow running tests in parallel.</td><td>false</td></tr>
 <tr><td>enableLocalTransport</td><td>Whether the bookie is allowed to listen for the BookKeeper clients executed on the local JVM.</td><td>false</td></tr>
 <tr><td>disableServerSocketBind</td><td>Whether the bookie is allowed to disable bind on network interfaces. This bookie will be available only to BookKeeper clients executed on the local JVM.</td><td>false</td></tr>
@@ -206,8 +206,8 @@
 <tr><th>Name</th><th>Description</th><th>Default</th></tr>
 </thead>
 <tbody>
-<tr><td>advertisedListeners</td><td>Specify multiple advertised listeners for the broker.<br><br>The format is <code>&lt;listener_name&gt;:pulsar://&lt;host&gt;:&lt;port&gt;</code>.<br><br>If there are multiple listeners, separate them with commas.<br><br><strong>Note</strong>: do not use this configuration with <code>advertisedAddress</code> and <code>brokerServicePort</code>. If the value of this configuration is empty, the broker uses <code>advertisedAddress</code> and <code>brokerSer [...]
-<tr><td>internalListenerName</td><td>Specify the internal listener name for the broker.<br><br><strong>Note</strong>: the listener name must be contained in <code>advertisedListeners</code>.<br><br> If the value of this configuration is empty, the broker uses the first listener as the internal listener.</td><td>/</td></tr>
+<tr><td>advertisedListeners</td><td>Specify multiple advertised listeners for the broker.<br /><br />The format is <code>&lt;listener_name&gt;:pulsar://&lt;host&gt;:&lt;port&gt;</code>.<br /><br />If there are multiple listeners, separate them with commas.<br /><br /><strong>Note</strong>: do not use this configuration with <code>advertisedAddress</code> and <code>brokerServicePort</code>. If the value of this configuration is empty, the broker uses <code>advertisedAddress</code> and <co [...]
+<tr><td>internalListenerName</td><td>Specify the internal listener name for the broker.<br /><br /><strong>Note</strong>: the listener name must be contained in <code>advertisedListeners</code>.<br /><br /> If the value of this configuration is empty, the broker uses the first listener as the internal listener.</td><td>/</td></tr>
 <tr><td>authenticateOriginalAuthData</td><td>If this flag is set to <code>true</code>, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required).</td><td>false</td></tr>
 <tr><td>enablePersistentTopics</td><td>Whether persistent topics are enabled on the broker</td><td>true</td></tr>
 <tr><td>enableNonPersistentTopics</td><td>Whether non-persistent topics are enabled on the broker</td><td>true</td></tr>
@@ -268,7 +268,7 @@
 <tr><td>forceDeleteNamespaceAllowed</td><td>Enable you to delete a namespace forcefully.</td><td>false</td></tr>
 <tr><td>messageExpiryCheckIntervalInMinutes</td><td>The frequency of proactively checking and purging expired messages.</td><td>5</td></tr>
 <tr><td>brokerServiceCompactionMonitorIntervalInSeconds</td><td>Interval between checks to determine whether topics with compaction policies need compaction.</td><td>60</td></tr>
-<tr><td>brokerServiceCompactionThresholdInBytes</td><td>If the estimated backlog size is greater than this threshold, compression is triggered.<br><br>Set this threshold to 0 means disabling the compression check.</td><td>N/A</td></tr>
+<tr><td>brokerServiceCompactionThresholdInBytes</td><td>If the estimated backlog size is greater than this threshold, compression is triggered.<br /><br />Set this threshold to 0 means disabling the compression check.</td><td>N/A</td></tr>
 <tr><td>delayedDeliveryEnabled</td><td>Whether to enable the delayed delivery for messages. If disabled, messages will be immediately delivered and there will be no tracking overhead.</td><td>true</td></tr>
 <tr><td>delayedDeliveryTickTimeMillis</td><td>Control the tick time for retrying on delayed delivery, which affects the accuracy of the delivery time compared to the scheduled time. By default, it is 1 second.</td><td>1000</td></tr>
 <tr><td>activeConsumerFailoverDelayTimeMillis</td><td>How long to delay rewinding cursor and dispatching messages when active consumer is changed.</td><td>1000</td></tr>
@@ -296,6 +296,10 @@
 <tr><td>brokerClientTlsTrustStorePassword</td><td>TLS TrustStore password for internal client, used by the internal client to authenticate with Pulsar brokers</td><td></td></tr>
 <tr><td>brokerClientTlsCiphers</td><td>Specify the tls cipher the internal client will use to negotiate during TLS Handshake. (a comma-separated list of ciphers) e.g.  [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]</td><td></td></tr>
 <tr><td>brokerClientTlsProtocols</td><td>Specify the tls protocols the broker will use to negotiate during TLS handshake. (a comma-separated list of protocol names). e.g.  <code>TLSv1.3</code>, <code>TLSv1.2</code></td><td></td></tr>
+<tr><td>metadataStoreBatchingEnabled</td><td>Enable metadata operations batching.</td><td>true</td></tr>
+<tr><td>metadataStoreBatchingMaxDelayMillis</td><td>Maximum delay to impose on batching grouping.</td><td>5</td></tr>
+<tr><td>metadataStoreBatchingMaxOperations</td><td>Maximum number of operations to include in a singular batch.</td><td>1000</td></tr>
+<tr><td>metadataStoreBatchingMaxSizeKb</td><td>Maximum size of a batch.</td><td>128</td></tr>
 <tr><td>ttlDurationDefaultInSeconds</td><td>The default Time to Live (TTL) for namespaces if the TTL is not configured at namespace policies. When the value is set to <code>0</code>, TTL is disabled. By default, TTL is disabled.</td><td>0</td></tr>
 <tr><td>tokenSettingPrefix</td><td>Configure the prefix of the token-related settings, such as <code>tokenSecretKey</code>, <code>tokenPublicKey</code>, <code>tokenAuthClaim</code>, <code>tokenPublicAlg</code>, <code>tokenAudienceClaim</code>, and <code>tokenAudience</code>.</td><td></td></tr>
 <tr><td>tokenSecretKey</td><td>Configure the secret key to be used to validate auth tokens. The key can be specified like: <code>tokenSecretKey=data:;base64,xxxxxxxxx</code> or <code>tokenSecretKey=file:///my/secret.key</code>.  Note: key file must be DER-encoded.</td><td></td></tr>
@@ -365,7 +369,7 @@
 <tr><td>loadBalancerEnabled</td><td>Enable load balancer</td><td>true</td></tr>
 <tr><td>loadBalancerPlacementStrategy</td><td>Strategy to assign a new bundle weightedRandomSelection</td><td></td></tr>
 <tr><td>loadBalancerReportUpdateThresholdPercentage</td><td>Percentage of change to trigger load report update</td><td>10</td></tr>
-<tr><td>loadBalancerReportUpdateMaxIntervalMinutes</td><td>maximum interval to update load report</td><td>15</td></tr>
+<tr><td>loadBalancerReportUpdateMaxIntervalMinutes</td><td>Maximum interval to update load report</td><td>15</td></tr>
 <tr><td>loadBalancerHostUsageCheckIntervalMinutes</td><td>Frequency of report to collect</td><td>1</td></tr>
 <tr><td>loadBalancerSheddingIntervalMinutes</td><td>Load shedding interval. Broker periodically checks whether some traffic should be offload from some over-loaded broker to other under-loaded brokers</td><td>30</td></tr>
 <tr><td>loadBalancerSheddingGracePeriodMinutes</td><td>Prevent the same topics to be shed and moved to other broker more than once within this timeframe</td><td>30</td></tr>
@@ -430,8 +434,8 @@
 <tr><td>haProxyProtocolEnabled</td><td>Enable or disable the <a href="http://www.haproxy.org/">HAProxy</a> protocol.</td><td>false</td></tr>
 <tr><td>maxTopicsPerNamespace</td><td>The maximum number of persistent topics that can be created in the namespace. When the number of topics reaches this threshold, the broker rejects the request of creating a new topic, including the auto-created topics by the producer or consumer, until the number of connected consumers decreases. The default value 0 disables the check.</td><td>0</td></tr>
 <tr><td>subscriptionTypesEnabled</td><td>Enable all subscription types, which are exclusive, shared, failover, and key_shared.</td><td>Exclusive, Shared, Failover, Key_Shared</td></tr>
-<tr><td>managedLedgerInfoCompressionType</td><td>Compression type of managed ledger information. <br><br>Available options are <code>NONE</code>, <code>LZ4</code>, <code>ZLIB</code>, <code>ZSTD</code>, and <code>SNAPPY</code>). <br><br>If this value is <code>NONE</code> or invalid, the <code>managedLedgerInfo</code> is not compressed. <br><br><strong>Note</strong> that after enabling this configuration, if you want to degrade a broker, you need to change the value to <code>NONE</code> an [...]
-<tr><td>additionalServlets</td><td>Additional servlet name. <br><br>If you have multiple additional servlets, separate them by commas. <br><br>For example, additionalServlet_1, additionalServlet_2</td><td>N/A</td></tr>
+<tr><td>managedLedgerInfoCompressionType</td><td>Compression type of managed ledger information. <br /><br />Available options are <code>NONE</code>, <code>LZ4</code>, <code>ZLIB</code>, <code>ZSTD</code>, and <code>SNAPPY</code>). <br /><br />If this value is <code>NONE</code> or invalid, the <code>managedLedgerInfo</code> is not compressed. <br /><br /><strong>Note</strong> that after enabling this configuration, if you want to degrade a broker, you need to change the value to <code>NO [...]
+<tr><td>additionalServlets</td><td>Additional servlet name. <br /><br />If you have multiple additional servlets, separate them by commas. <br /><br />For example, additionalServlet_1, additionalServlet_2</td><td>N/A</td></tr>
 <tr><td>additionalServletDirectory</td><td>Location of broker additional servlet NAR directory</td><td>./brokerAdditionalServlet</td></tr>
 <tr><td>brokerEntryMetadataInterceptors</td><td>Set broker entry metadata interceptors.<br /><br />Multiple interceptors should be separated by commas. <br /><br />Available values:<li>org.apache.pulsar.common.intercept.AppendBrokerTimestampMetadataInterceptor</li><li>org.apache.pulsar.common.intercept.AppendIndexMetadataInterceptor</li> <br /><br />Example<br />brokerEntryMetadataInterceptors=org.apache.pulsar.common.intercept.AppendBrokerTimestampMetadataInterceptor, org.apache.pulsar. [...]
 <tr><td>enableExposingBrokerEntryMetadataToClient</td><td>Whether to expose broker entry metadata to client or not.<br /><br />Available values:<li>true</li><li>false</li><br />Example<br />enableExposingBrokerEntryMetadataToClient=true</td><td>false</td></tr>
@@ -596,7 +600,10 @@
 <tr><td>maxProducersPerTopic</td><td>Maximum number of producers allowed to connect to topic. Once this limit reaches, the broker rejects new producers until the number of connected producers decreases. When the value is set to 0, maxProducersPerTopic-limit check is disabled.</td><td>0</td></tr>
 <tr><td>maxConsumersPerTopic</td><td>Maximum number of consumers allowed to connect to topic. Once this limit reaches, the broker rejects new consumers until the number of connected consumers decreases. When the value is set to 0, maxConsumersPerTopic-limit check is disabled.</td><td>0</td></tr>
 <tr><td>maxConsumersPerSubscription</td><td>Maximum number of consumers allowed to connect to subscription. Once this limit reaches, the broker rejects new consumers until the number of connected consumers decreases. When the value is set to 0, maxConsumersPerSubscription-limit check is disabled.</td><td>0</td></tr>
-<tr><td>maxNumPartitionsPerPartitionedTopic</td><td>Maximum number of partitions per partitioned topic. When the value is set to a negative number or is set to 0, the check is disabled.</td><td>0</td></tr>
+<tr><td>metadataStoreBatchingEnabled</td><td>Enable metadata operations batching.</td><td>true</td></tr>
+<tr><td>metadataStoreBatchingMaxDelayMillis</td><td>Maximum delay to impose on batching grouping.</td><td>5</td></tr>
+<tr><td>metadataStoreBatchingMaxOperations</td><td>Maximum number of operations to include in a singular batch.</td><td>1000</td></tr>
+<tr><td>metadataStoreBatchingMaxSizeKb</td><td>Maximum size of a batch.</td><td>128</td></tr>
 <tr><td>tlsCertRefreshCheckDurationSec</td><td>TLS certificate refresh duration in seconds. When the value is set to 0, check the TLS certificate on every new connection.</td><td>300</td></tr>
 <tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file.</td><td></td></tr>
 <tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file.</td><td></td></tr>
@@ -724,7 +731,7 @@
 <tr><td>loadBalancerAutoBundleSplitEnabled</td><td></td><td>false</td></tr>
 <tr><td>loadBalancerAutoUnloadSplitBundlesEnabled</td><td>Enable/Disable automatic unloading of split bundles.</td><td>true</td></tr>
 <tr><td>loadBalancerNamespaceBundleMaxTopics</td><td></td><td>1000</td></tr>
-<tr><td>loadBalancerNamespaceBundleMaxSessions</td><td></td><td>1000</td></tr>
+<tr><td>loadBalancerNamespaceBundleMaxSessions</td><td>Maximum sessions (producers + consumers) in a bundle, otherwise bundle split will be triggered. <br />To disable the threshold check, set the value to -1.</td><td>1000</td></tr>
 <tr><td>loadBalancerNamespaceBundleMaxMsgRate</td><td></td><td>1000</td></tr>
 <tr><td>loadBalancerNamespaceBundleMaxBandwidthMbytes</td><td></td><td>100</td></tr>
 <tr><td>loadBalancerNamespaceMaximumBundles</td><td></td><td>128</td></tr>
@@ -747,7 +754,7 @@
 <tr><td>defaultRetentionSizeInMB</td><td></td><td>0</td></tr>
 <tr><td>keepAliveIntervalSeconds</td><td></td><td>30</td></tr>
 <tr><td>haProxyProtocolEnabled</td><td>Enable or disable the <a href="http://www.haproxy.org/">HAProxy</a> protocol.</td><td>false</td></tr>
-<tr><td>bookieId</td><td>If you want to custom a bookie ID or use a dynamic network address for a bookie, you can set the <code>bookieId</code>. <br><br>Bookie advertises itself using the <code>bookieId</code> rather than the <code>BookieSocketAddress</code> (<code>hostname:port</code> or <code>IP:port</code>).<br><br> The <code>bookieId</code> is a non-empty string that can contain ASCII digits and letters ([a-zA-Z9-0]), colons, dashes, and dots. <br><br>For more information about <code [...]
+<tr><td>bookieId</td><td>If you want to custom a bookie ID or use a dynamic network address for a bookie, you can set the <code>bookieId</code>. <br /><br />Bookie advertises itself using the <code>bookieId</code> rather than the <code>BookieSocketAddress</code> (<code>hostname:port</code> or <code>IP:port</code>).<br /><br /> The <code>bookieId</code> is a non-empty string that can contain ASCII digits and letters ([a-zA-Z9-0]), colons, dashes, and dots. <br /><br />For more information [...]
 <tr><td>maxTopicsPerNamespace</td><td>The maximum number of persistent topics that can be created in the namespace. When the number of topics reaches this threshold, the broker rejects the request of creating a new topic, including the auto-created topics by the producer or consumer, until the number of connected consumers decreases. The default value 0 disables the check.</td><td>0</td></tr>
 <tr><td>metadataStoreConfigPath</td><td>The configuration file path of the local metadata store. Standalone Pulsar uses <a href="http://rocksdb.org/">RocksDB</a> as the local metadata store. The format is <code>/xxx/xx/rocksdb.ini</code>.</td><td>N/A</td></tr>
 </tbody>
diff --git a/content/docs/fr/next/client-libraries-java.html b/content/docs/fr/next/client-libraries-java.html
index 16c9e9f..849d02b 100644
--- a/content/docs/fr/next/client-libraries-java.html
+++ b/content/docs/fr/next/client-libraries-java.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and \[TableView]\](#tableview) of messages and to perform [adm [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and [TableView](#tableview) of messages and to perform [admini [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,8 +74,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
-<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and [TableView]](#tableview) of a Java client are thread-safe.</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
+<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and <a href="#tableview">TableView</a> of a Java client are thread-safe.</p>
 <p>Javadoc for the Pulsar client is divided into two domains by package as follows.</p>
 <table>
 <thead>
@@ -249,7 +249,7 @@ Available options are as follows:</li>
 <ul>
 <li><p><strong>FAIL</strong>: if encryption fails, unencrypted messages fail to send.</p></li>
 <li><p><strong>SEND</strong>: if encryption fails, unencrypted messages are sent. |
-<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>compressionType</code>|CompressionType|Message data compression type used by a producer.<br>
+<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>chunkingEnabled</code> | boolean | Enable chunking of messages. |false <code>compressionType</code>|CompressionType|Message data compression type  [...]
 Available options:</p></li>
 <li><p><a href="https://github.com/lz4/lz4"><code>LZ4</code></a></p></li>
 <li><p><a href="https://zlib.net/"><code>ZLIB</code></a></p>
@@ -288,6 +288,18 @@ You can configure parameters if you do not want to use the default configuration
     .send();
 </code></pre>
 <p>You can terminate the builder chain with <code>sendAsync()</code> and get a future return.</p>
+<h3><a class="anchor" aria-hidden="true" id="enable-chunking"></a><a href="#enable-chunking" 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>Message <a href="/docs/fr/next/concepts-messaging#chunking">chunking</a> enables Pulsar to process large payload messages by splitting the message into chunks at the producer side and aggregating chunked messages at the consumer side.</p>
+<p>The message chunking feature is OFF by default. The following is an example about how to enable message chunking when creating a producer.</p>
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+        .topic(topic)
+        .enableChunking(<span class="hljs-keyword">true</span>)
+        .enableBatching(<span class="hljs-keyword">false</span>)
+        .create();
+</code></pre>
+<blockquote>
+<p><strong>Note:</strong> To enable chunking, you need to disable batching (<code>enableBatching</code>=<code>false</code>) concurrently.</p>
+</blockquote>
 <h2><a class="anchor" aria-hidden="true" id="consumer"></a><a href="#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 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Dans Pulsar, les consommateurs s'abonnent à des topics et traitent les messages que les producteurs publient sur ces topics. Vous pouvez instancier un nouveau <a href="/docs/fr/next/reference-terminology#consumer">consommateur</a> en instanciant d'abord un objet <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient">PulsarClient</a>
  et en lui passant l'URL d'un broker Pulsar (comme <a href="#client-configuration">ci-dessus</a>).</p>
@@ -415,7 +427,7 @@ To set a custom dead letter topic name:
   
 When specifying the dead letter policy while not specifying `ackTimeoutMillis`, you can set the ack timeout to 30000 millisecond.|None `autoUpdatePartitions`|boolean|If `autoUpdatePartitions` is enabled, a consumer subscribes to partition increasement automatically.  
   
-**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
+**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
 
 You can configure parameters if you do not want to use the default configuration. For a full list, see the Javadoc for the {@inject: javadoc:ConsumerBuilder:/client/org/apache/pulsar/client/api/ConsumerBuilder} class.
 
@@ -484,6 +496,22 @@ consumer.acknowledge(messages)
 &gt;     .build();
 &gt; ```
 
+### Configure chunking
+
+You can limit the maximum number of chunked messages a consumer maintains concurrently by configuring the `maxPendingChunkedMessage` and `autoAckOldestChunkedMessageOnQueueFull` parameters. When the threshold is reached, the consumer drops pending messages by silently acknowledging them or asking the broker to redeliver them later. The `expireTimeOfIncompleteChunkedMessage` parameter decides the time interval to expire incomplete chunks if the consumer fails to receive all chunks of a me [...]
+
+The following is an example of how to configure message chunking.
+
+```java
+Consumer&lt;byte[]&gt; consumer = client.newConsumer()
+        .topic(topic)
+        .subscriptionName(&quot;test&quot;)
+        .autoAckOldestChunkedMessageOnQueueFull(true)
+        .maxPendingChunkedMessage(100)
+        .expireTimeOfIncompleteChunkedMessage(10, TimeUnit.MINUTES)
+        .subscribe();
+```
+
 ### Negative acknowledgment redelivery backoff
 
 The `RedeliveryBackoff` introduces a redelivery backoff mechanism. You can achieve redelivery with different delays by setting `redeliveryCount` of messages.
@@ -1101,7 +1129,7 @@ PulsarClient client = PulsarClient.builder()
     .authentication(auth)
     .build();
 ```</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/client-libraries"><span class="arrow-prev">← </span><span>Overview</span></a><a class="docs-next button" href="/docs/fr/next/client-libraries-go"><span>Go</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href="#gradl [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/client-libraries"><span class="arrow-prev">← </span><span>Overview</span></a><a class="docs-next button" href="/docs/fr/next/client-libraries-go"><span>Go</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href="#gradl [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/next/client-libraries-java/index.html b/content/docs/fr/next/client-libraries-java/index.html
index 16c9e9f..849d02b 100644
--- a/content/docs/fr/next/client-libraries-java/index.html
+++ b/content/docs/fr/next/client-libraries-java/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and \[TableView]\](#tableview) of messages and to perform [adm [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and [TableView](#tableview) of messages and to perform [admini [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,8 +74,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
-<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and [TableView]](#tableview) of a Java client are thread-safe.</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
+<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and <a href="#tableview">TableView</a> of a Java client are thread-safe.</p>
 <p>Javadoc for the Pulsar client is divided into two domains by package as follows.</p>
 <table>
 <thead>
@@ -249,7 +249,7 @@ Available options are as follows:</li>
 <ul>
 <li><p><strong>FAIL</strong>: if encryption fails, unencrypted messages fail to send.</p></li>
 <li><p><strong>SEND</strong>: if encryption fails, unencrypted messages are sent. |
-<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>compressionType</code>|CompressionType|Message data compression type used by a producer.<br>
+<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>chunkingEnabled</code> | boolean | Enable chunking of messages. |false <code>compressionType</code>|CompressionType|Message data compression type  [...]
 Available options:</p></li>
 <li><p><a href="https://github.com/lz4/lz4"><code>LZ4</code></a></p></li>
 <li><p><a href="https://zlib.net/"><code>ZLIB</code></a></p>
@@ -288,6 +288,18 @@ You can configure parameters if you do not want to use the default configuration
     .send();
 </code></pre>
 <p>You can terminate the builder chain with <code>sendAsync()</code> and get a future return.</p>
+<h3><a class="anchor" aria-hidden="true" id="enable-chunking"></a><a href="#enable-chunking" 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>Message <a href="/docs/fr/next/concepts-messaging#chunking">chunking</a> enables Pulsar to process large payload messages by splitting the message into chunks at the producer side and aggregating chunked messages at the consumer side.</p>
+<p>The message chunking feature is OFF by default. The following is an example about how to enable message chunking when creating a producer.</p>
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+        .topic(topic)
+        .enableChunking(<span class="hljs-keyword">true</span>)
+        .enableBatching(<span class="hljs-keyword">false</span>)
+        .create();
+</code></pre>
+<blockquote>
+<p><strong>Note:</strong> To enable chunking, you need to disable batching (<code>enableBatching</code>=<code>false</code>) concurrently.</p>
+</blockquote>
 <h2><a class="anchor" aria-hidden="true" id="consumer"></a><a href="#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 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Dans Pulsar, les consommateurs s'abonnent à des topics et traitent les messages que les producteurs publient sur ces topics. Vous pouvez instancier un nouveau <a href="/docs/fr/next/reference-terminology#consumer">consommateur</a> en instanciant d'abord un objet <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient">PulsarClient</a>
  et en lui passant l'URL d'un broker Pulsar (comme <a href="#client-configuration">ci-dessus</a>).</p>
@@ -415,7 +427,7 @@ To set a custom dead letter topic name:
   
 When specifying the dead letter policy while not specifying `ackTimeoutMillis`, you can set the ack timeout to 30000 millisecond.|None `autoUpdatePartitions`|boolean|If `autoUpdatePartitions` is enabled, a consumer subscribes to partition increasement automatically.  
   
-**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
+**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
 
 You can configure parameters if you do not want to use the default configuration. For a full list, see the Javadoc for the {@inject: javadoc:ConsumerBuilder:/client/org/apache/pulsar/client/api/ConsumerBuilder} class.
 
@@ -484,6 +496,22 @@ consumer.acknowledge(messages)
 &gt;     .build();
 &gt; ```
 
+### Configure chunking
+
+You can limit the maximum number of chunked messages a consumer maintains concurrently by configuring the `maxPendingChunkedMessage` and `autoAckOldestChunkedMessageOnQueueFull` parameters. When the threshold is reached, the consumer drops pending messages by silently acknowledging them or asking the broker to redeliver them later. The `expireTimeOfIncompleteChunkedMessage` parameter decides the time interval to expire incomplete chunks if the consumer fails to receive all chunks of a me [...]
+
+The following is an example of how to configure message chunking.
+
+```java
+Consumer&lt;byte[]&gt; consumer = client.newConsumer()
+        .topic(topic)
+        .subscriptionName(&quot;test&quot;)
+        .autoAckOldestChunkedMessageOnQueueFull(true)
+        .maxPendingChunkedMessage(100)
+        .expireTimeOfIncompleteChunkedMessage(10, TimeUnit.MINUTES)
+        .subscribe();
+```
+
 ### Negative acknowledgment redelivery backoff
 
 The `RedeliveryBackoff` introduces a redelivery backoff mechanism. You can achieve redelivery with different delays by setting `redeliveryCount` of messages.
@@ -1101,7 +1129,7 @@ PulsarClient client = PulsarClient.builder()
     .authentication(auth)
     .build();
 ```</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/client-libraries"><span class="arrow-prev">← </span><span>Overview</span></a><a class="docs-next button" href="/docs/fr/next/client-libraries-go"><span>Go</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href="#gradl [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/client-libraries"><span class="arrow-prev">← </span><span>Overview</span></a><a class="docs-next button" href="/docs/fr/next/client-libraries-go"><span>Go</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href="#gradl [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/next/concepts-architecture-overview.html b/content/docs/fr/next/concepts-architecture-overview.html
index 806664387..8dd9d90 100644
--- a/content/docs/fr/next/concepts-architecture-overview.html
+++ b/content/docs/fr/next/concepts-architecture-overview.html
@@ -109,6 +109,9 @@
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="metadata-store"></a><a href="#metadata-store" 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>The Pulsar metadata store maintains all the metadata of a Pulsar cluster, such as topic metadata, schema, broker load data, and so on. Pulsar uses <a href="https://zookeeper.apache.org/">Apache ZooKeeper</a> for metadata storage, cluster configuration, and coordination. The Pulsar metadata store can be deployed on a separate ZooKeeper cluster or deployed on an existing ZooKeeper cluster. You can use one ZooKeeper cluster for both Pulsar metadata store and <a href="https://bookkeeper.a [...]
+<blockquote>
+<p>Pulsar also supports more metadata backend services, including <a href="https://etcd.io/">ETCD</a> and <a href="http://rocksdb.org/">RocksDB</a> (for standalone Pulsar only).</p>
+</blockquote>
 <p>In a Pulsar instance:</p>
 <ul>
 <li>A configuration store quorum stores configuration for tenants, namespaces, and other entities that need to be globally consistent.</li>
diff --git a/content/docs/fr/next/concepts-architecture-overview/index.html b/content/docs/fr/next/concepts-architecture-overview/index.html
index 806664387..8dd9d90 100644
--- a/content/docs/fr/next/concepts-architecture-overview/index.html
+++ b/content/docs/fr/next/concepts-architecture-overview/index.html
@@ -109,6 +109,9 @@
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="metadata-store"></a><a href="#metadata-store" 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>The Pulsar metadata store maintains all the metadata of a Pulsar cluster, such as topic metadata, schema, broker load data, and so on. Pulsar uses <a href="https://zookeeper.apache.org/">Apache ZooKeeper</a> for metadata storage, cluster configuration, and coordination. The Pulsar metadata store can be deployed on a separate ZooKeeper cluster or deployed on an existing ZooKeeper cluster. You can use one ZooKeeper cluster for both Pulsar metadata store and <a href="https://bookkeeper.a [...]
+<blockquote>
+<p>Pulsar also supports more metadata backend services, including <a href="https://etcd.io/">ETCD</a> and <a href="http://rocksdb.org/">RocksDB</a> (for standalone Pulsar only).</p>
+</blockquote>
 <p>In a Pulsar instance:</p>
 <ul>
 <li>A configuration store quorum stores configuration for tenants, namespaces, and other entities that need to be globally consistent.</li>
diff --git a/content/docs/fr/next/schema-evolution-compatibility.html b/content/docs/fr/next/schema-evolution-compatibility.html
index 43be45a..f6f8191 100644
--- a/content/docs/fr/next/schema-evolution-compatibility.html
+++ b/content/docs/fr/next/schema-evolution-compatibility.html
@@ -428,7 +428,7 @@
 <p>In some data formats, for example, Avro, you can define fields with default values. Consequently, adding or removing a field with a default value is a fully compatible change.</p>
 <blockquote>
 <p><strong>Tip</strong></p>
-<p>You can set schema compatibility check strategy at namespace or broker level. For how to set the strategy, see <a href="/docs/fr/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
+<p>You can set schema compatibility check strategy at the topic, namespace or broker level. For how to set the strategy, see <a href="/docs/fr/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="schema-verification"></a><a href="#schema-verification" 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 [...]
 <p>When a producer or a consumer tries to connect to a topic, a broker performs some checks to verify a schema.</p>
diff --git a/content/docs/fr/next/schema-evolution-compatibility/index.html b/content/docs/fr/next/schema-evolution-compatibility/index.html
index 43be45a..f6f8191 100644
--- a/content/docs/fr/next/schema-evolution-compatibility/index.html
+++ b/content/docs/fr/next/schema-evolution-compatibility/index.html
@@ -428,7 +428,7 @@
 <p>In some data formats, for example, Avro, you can define fields with default values. Consequently, adding or removing a field with a default value is a fully compatible change.</p>
 <blockquote>
 <p><strong>Tip</strong></p>
-<p>You can set schema compatibility check strategy at namespace or broker level. For how to set the strategy, see <a href="/docs/fr/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
+<p>You can set schema compatibility check strategy at the topic, namespace or broker level. For how to set the strategy, see <a href="/docs/fr/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="schema-verification"></a><a href="#schema-verification" 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 [...]
 <p>When a producer or a consumer tries to connect to a topic, a broker performs some checks to verify a schema.</p>
diff --git a/content/docs/fr/next/standalone.html b/content/docs/fr/next/standalone.html
index 80c696b..ea66900 100644
--- a/content/docs/fr/next/standalone.html
+++ b/content/docs/fr/next/standalone.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Set up a standalone Pulsar locally · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="For local development and testing, you can run Pulsar in standalone mode on your machine. The standalone mode includes a Pulsar broker, the necessary ZooKeeper and [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Set up a standalone Pulsar locally · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="For local development and testing, you can run Pulsar in standalone mode on your machine. The standalone mode includes a Pulsar broker, the necessary [RocksDB](htt [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Set up a standalone Pulsar locally</h1></header><article><div><span><p>For local development and testing, you can run Pulsar in standalone mode on your machine. [...]
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Set up a standalone Pulsar locally</h1></header><article><div><span><p>For local development and testing, you can run Pulsar in standalone mode on your machine. [...]
 <blockquote>
 <p><strong>Pulsar in production?</strong>  <br>
 If you're looking to run a full production Pulsar installation, see the <a href="/docs/fr/next/deploy-bare-metal">Deploying a Pulsar instance</a> guide.</p>
@@ -111,7 +111,8 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 </thead>
 <tbody>
 <tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left">Pulsar's command-line tools, such as <a href="/docs/fr/next/reference-cli-tools#pulsar"><code>pulsar</code></a> and <a href="https://pulsar.apache.org/tools/pulsar-admin/"><code>pulsar-admin</code></a>.</td></tr>
-<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including <a href="/docs/fr/next/reference-configuration#broker">broker configuration</a>, <a href="/docs/fr/next/reference-configuration#zookeeper">ZooKeeper configuration</a>, and more.</td></tr>
+<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including <a href="/docs/fr/next/reference-configuration#broker">broker configuration</a> and more.</td></tr>
+<tr><td style="text-align:left"><strong>Note:</strong> Pulsar standalone uses RocksDB as the local metadata store and its configuration file path <a href="/docs/fr/next/reference-configuration"><code>metadataStoreConfigPath</code></a> is configurable in the <code>standalone.conf</code> file. For more information about the configurations of RocksDB, see <a href="https://github.com/facebook/rocksdb/blob/main/examples/rocksdb_option_file_example.ini">here</a> and related <a href="https://gi [...]
 <tr><td style="text-align:left"><code>examples</code></td><td style="text-align:left">A Java JAR file containing <a href="/docs/fr/next/functions-overview">Pulsar Functions</a> example.</td></tr>
 <tr><td style="text-align:left"><code>instances</code></td><td style="text-align:left">Artifacts created for <a href="/docs/fr/next/functions-overview">Pulsar Functions</a>.</td></tr>
 <tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files used by Pulsar.</td></tr>
@@ -124,7 +125,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 <tr><th style="text-align:left">Directory</th><th style="text-align:left">Contains</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by ZooKeeper and BookKeeper.</td></tr>
+<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by RocksDB and BookKeeper.</td></tr>
 <tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">Logs created by the installation.</td></tr>
 </tbody>
 </table>
diff --git a/content/docs/fr/next/standalone/index.html b/content/docs/fr/next/standalone/index.html
index 80c696b..ea66900 100644
--- a/content/docs/fr/next/standalone/index.html
+++ b/content/docs/fr/next/standalone/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Set up a standalone Pulsar locally · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="For local development and testing, you can run Pulsar in standalone mode on your machine. The standalone mode includes a Pulsar broker, the necessary ZooKeeper and [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Set up a standalone Pulsar locally · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="For local development and testing, you can run Pulsar in standalone mode on your machine. The standalone mode includes a Pulsar broker, the necessary [RocksDB](htt [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Set up a standalone Pulsar locally</h1></header><article><div><span><p>For local development and testing, you can run Pulsar in standalone mode on your machine. [...]
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Set up a standalone Pulsar locally</h1></header><article><div><span><p>For local development and testing, you can run Pulsar in standalone mode on your machine. [...]
 <blockquote>
 <p><strong>Pulsar in production?</strong>  <br>
 If you're looking to run a full production Pulsar installation, see the <a href="/docs/fr/next/deploy-bare-metal">Deploying a Pulsar instance</a> guide.</p>
@@ -111,7 +111,8 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 </thead>
 <tbody>
 <tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left">Pulsar's command-line tools, such as <a href="/docs/fr/next/reference-cli-tools#pulsar"><code>pulsar</code></a> and <a href="https://pulsar.apache.org/tools/pulsar-admin/"><code>pulsar-admin</code></a>.</td></tr>
-<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including <a href="/docs/fr/next/reference-configuration#broker">broker configuration</a>, <a href="/docs/fr/next/reference-configuration#zookeeper">ZooKeeper configuration</a>, and more.</td></tr>
+<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including <a href="/docs/fr/next/reference-configuration#broker">broker configuration</a> and more.</td></tr>
+<tr><td style="text-align:left"><strong>Note:</strong> Pulsar standalone uses RocksDB as the local metadata store and its configuration file path <a href="/docs/fr/next/reference-configuration"><code>metadataStoreConfigPath</code></a> is configurable in the <code>standalone.conf</code> file. For more information about the configurations of RocksDB, see <a href="https://github.com/facebook/rocksdb/blob/main/examples/rocksdb_option_file_example.ini">here</a> and related <a href="https://gi [...]
 <tr><td style="text-align:left"><code>examples</code></td><td style="text-align:left">A Java JAR file containing <a href="/docs/fr/next/functions-overview">Pulsar Functions</a> example.</td></tr>
 <tr><td style="text-align:left"><code>instances</code></td><td style="text-align:left">Artifacts created for <a href="/docs/fr/next/functions-overview">Pulsar Functions</a>.</td></tr>
 <tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files used by Pulsar.</td></tr>
@@ -124,7 +125,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 <tr><th style="text-align:left">Directory</th><th style="text-align:left">Contains</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by ZooKeeper and BookKeeper.</td></tr>
+<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by RocksDB and BookKeeper.</td></tr>
 <tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">Logs created by the installation.</td></tr>
 </tbody>
 </table>
diff --git a/content/docs/ja/next/client-libraries-java.html b/content/docs/ja/next/client-libraries-java.html
index ec66908..9c25275 100644
--- a/content/docs/ja/next/client-libraries-java.html
+++ b/content/docs/ja/next/client-libraries-java.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and \[TableView]\](#tableview) of messages and to perform [adm [...]
+<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and [TableView](#tableview) of messages and to perform [admini [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,8 +74,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ja" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
-<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and [TableView]](#tableview) of a Java client are thread-safe.</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ja" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
+<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and <a href="#tableview">TableView</a> of a Java client are thread-safe.</p>
 <p>Javadoc for the Pulsar client is divided into two domains by package as follows.</p>
 <table>
 <thead>
@@ -250,7 +250,7 @@ Available options are as follows:</li>
 <ul>
 <li><p><strong>FAIL</strong>: if encryption fails, unencrypted messages fail to send.</p></li>
 <li><p><strong>SEND</strong>: if encryption fails, unencrypted messages are sent. |
-<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>compressionType</code>|CompressionType|Message data compression type used by a producer.<br>
+<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>chunkingEnabled</code> | boolean | Enable chunking of messages. |false <code>compressionType</code>|CompressionType|Message data compression type  [...]
 Available options:</p></li>
 <li><p><a href="https://github.com/lz4/lz4"><code>LZ4</code></a></p></li>
 <li><p><a href="https://zlib.net/"><code>ZLIB</code></a></p>
@@ -289,6 +289,18 @@ You can configure parameters if you do not want to use the default configuration
     .send();
 </code></pre>
 <p>You can terminate the builder chain with <code>sendAsync()</code> and get a future return.</p>
+<h3><a class="anchor" aria-hidden="true" id="enable-chunking"></a><a href="#enable-chunking" 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>Message <a href="/docs/ja/next/concepts-messaging#chunking">chunking</a> enables Pulsar to process large payload messages by splitting the message into chunks at the producer side and aggregating chunked messages at the consumer side.</p>
+<p>The message chunking feature is OFF by default. The following is an example about how to enable message chunking when creating a producer.</p>
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+        .topic(topic)
+        .enableChunking(<span class="hljs-keyword">true</span>)
+        .enableBatching(<span class="hljs-keyword">false</span>)
+        .create();
+</code></pre>
+<blockquote>
+<p><strong>Note:</strong> To enable chunking, you need to disable batching (<code>enableBatching</code>=<code>false</code>) concurrently.</p>
+</blockquote>
 <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- [...]
 <p>In Pulsar, consumers subscribe to topics and handle messages that producers publish to those topics. You can instantiate a new <a href="/docs/ja/next/reference-terminology#consumer">consumer</a> by first instantiating a <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient">PulsarClient</a>
  object and passing it a URL for a Pulsar broker (as <a href="#client-configuration">above</a>).</p>
@@ -416,7 +428,7 @@ To set a custom dead letter topic name:
   
 When specifying the dead letter policy while not specifying `ackTimeoutMillis`, you can set the ack timeout to 30000 millisecond.|None `autoUpdatePartitions`|boolean|If `autoUpdatePartitions` is enabled, a consumer subscribes to partition increasement automatically.  
   
-**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
+**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
 
 You can configure parameters if you do not want to use the default configuration. For a full list, see the Javadoc for the {@inject: javadoc:ConsumerBuilder:/client/org/apache/pulsar/client/api/ConsumerBuilder} class.
 
@@ -485,6 +497,22 @@ consumer.acknowledge(messages)
 &gt;     .build();
 &gt; ```
 
+### Configure chunking
+
+You can limit the maximum number of chunked messages a consumer maintains concurrently by configuring the `maxPendingChunkedMessage` and `autoAckOldestChunkedMessageOnQueueFull` parameters. When the threshold is reached, the consumer drops pending messages by silently acknowledging them or asking the broker to redeliver them later. The `expireTimeOfIncompleteChunkedMessage` parameter decides the time interval to expire incomplete chunks if the consumer fails to receive all chunks of a me [...]
+
+The following is an example of how to configure message chunking.
+
+```java
+Consumer&lt;byte[]&gt; consumer = client.newConsumer()
+        .topic(topic)
+        .subscriptionName(&quot;test&quot;)
+        .autoAckOldestChunkedMessageOnQueueFull(true)
+        .maxPendingChunkedMessage(100)
+        .expireTimeOfIncompleteChunkedMessage(10, TimeUnit.MINUTES)
+        .subscribe();
+```
+
 ### Negative acknowledgment redelivery backoff
 
 The `RedeliveryBackoff` introduces a redelivery backoff mechanism. You can achieve redelivery with different delays by setting `redeliveryCount` of messages.
@@ -1102,7 +1130,7 @@ PulsarClient client = PulsarClient.builder()
     .authentication(auth)
     .build();
 ```</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/next/client-libraries"><span class="arrow-prev">← </span><span>概要</span></a><a class="docs-next button" href="/docs/ja/next/client-libraries-go"><span>Go</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="#maven">Maven</a></li><li><a href="#gradle">Gradle</a></li> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/next/client-libraries"><span class="arrow-prev">← </span><span>概要</span></a><a class="docs-next button" href="/docs/ja/next/client-libraries-go"><span>Go</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="#maven">Maven</a></li><li><a href="#gradle">Gradle</a></li> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/ja/next/client-libraries-java/index.html b/content/docs/ja/next/client-libraries-java/index.html
index ec66908..9c25275 100644
--- a/content/docs/ja/next/client-libraries-java/index.html
+++ b/content/docs/ja/next/client-libraries-java/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and \[TableView]\](#tableview) of messages and to perform [adm [...]
+<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and [TableView](#tableview) of messages and to perform [admini [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,8 +74,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ja" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
-<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and [TableView]](#tableview) of a Java client are thread-safe.</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ja" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
+<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and <a href="#tableview">TableView</a> of a Java client are thread-safe.</p>
 <p>Javadoc for the Pulsar client is divided into two domains by package as follows.</p>
 <table>
 <thead>
@@ -250,7 +250,7 @@ Available options are as follows:</li>
 <ul>
 <li><p><strong>FAIL</strong>: if encryption fails, unencrypted messages fail to send.</p></li>
 <li><p><strong>SEND</strong>: if encryption fails, unencrypted messages are sent. |
-<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>compressionType</code>|CompressionType|Message data compression type used by a producer.<br>
+<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>chunkingEnabled</code> | boolean | Enable chunking of messages. |false <code>compressionType</code>|CompressionType|Message data compression type  [...]
 Available options:</p></li>
 <li><p><a href="https://github.com/lz4/lz4"><code>LZ4</code></a></p></li>
 <li><p><a href="https://zlib.net/"><code>ZLIB</code></a></p>
@@ -289,6 +289,18 @@ You can configure parameters if you do not want to use the default configuration
     .send();
 </code></pre>
 <p>You can terminate the builder chain with <code>sendAsync()</code> and get a future return.</p>
+<h3><a class="anchor" aria-hidden="true" id="enable-chunking"></a><a href="#enable-chunking" 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>Message <a href="/docs/ja/next/concepts-messaging#chunking">chunking</a> enables Pulsar to process large payload messages by splitting the message into chunks at the producer side and aggregating chunked messages at the consumer side.</p>
+<p>The message chunking feature is OFF by default. The following is an example about how to enable message chunking when creating a producer.</p>
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+        .topic(topic)
+        .enableChunking(<span class="hljs-keyword">true</span>)
+        .enableBatching(<span class="hljs-keyword">false</span>)
+        .create();
+</code></pre>
+<blockquote>
+<p><strong>Note:</strong> To enable chunking, you need to disable batching (<code>enableBatching</code>=<code>false</code>) concurrently.</p>
+</blockquote>
 <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- [...]
 <p>In Pulsar, consumers subscribe to topics and handle messages that producers publish to those topics. You can instantiate a new <a href="/docs/ja/next/reference-terminology#consumer">consumer</a> by first instantiating a <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient">PulsarClient</a>
  object and passing it a URL for a Pulsar broker (as <a href="#client-configuration">above</a>).</p>
@@ -416,7 +428,7 @@ To set a custom dead letter topic name:
   
 When specifying the dead letter policy while not specifying `ackTimeoutMillis`, you can set the ack timeout to 30000 millisecond.|None `autoUpdatePartitions`|boolean|If `autoUpdatePartitions` is enabled, a consumer subscribes to partition increasement automatically.  
   
-**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
+**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
 
 You can configure parameters if you do not want to use the default configuration. For a full list, see the Javadoc for the {@inject: javadoc:ConsumerBuilder:/client/org/apache/pulsar/client/api/ConsumerBuilder} class.
 
@@ -485,6 +497,22 @@ consumer.acknowledge(messages)
 &gt;     .build();
 &gt; ```
 
+### Configure chunking
+
+You can limit the maximum number of chunked messages a consumer maintains concurrently by configuring the `maxPendingChunkedMessage` and `autoAckOldestChunkedMessageOnQueueFull` parameters. When the threshold is reached, the consumer drops pending messages by silently acknowledging them or asking the broker to redeliver them later. The `expireTimeOfIncompleteChunkedMessage` parameter decides the time interval to expire incomplete chunks if the consumer fails to receive all chunks of a me [...]
+
+The following is an example of how to configure message chunking.
+
+```java
+Consumer&lt;byte[]&gt; consumer = client.newConsumer()
+        .topic(topic)
+        .subscriptionName(&quot;test&quot;)
+        .autoAckOldestChunkedMessageOnQueueFull(true)
+        .maxPendingChunkedMessage(100)
+        .expireTimeOfIncompleteChunkedMessage(10, TimeUnit.MINUTES)
+        .subscribe();
+```
+
 ### Negative acknowledgment redelivery backoff
 
 The `RedeliveryBackoff` introduces a redelivery backoff mechanism. You can achieve redelivery with different delays by setting `redeliveryCount` of messages.
@@ -1102,7 +1130,7 @@ PulsarClient client = PulsarClient.builder()
     .authentication(auth)
     .build();
 ```</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/next/client-libraries"><span class="arrow-prev">← </span><span>概要</span></a><a class="docs-next button" href="/docs/ja/next/client-libraries-go"><span>Go</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="#maven">Maven</a></li><li><a href="#gradle">Gradle</a></li> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/next/client-libraries"><span class="arrow-prev">← </span><span>概要</span></a><a class="docs-next button" href="/docs/ja/next/client-libraries-go"><span>Go</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="#maven">Maven</a></li><li><a href="#gradle">Gradle</a></li> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/ja/next/concepts-architecture-overview.html b/content/docs/ja/next/concepts-architecture-overview.html
index fc15ca7..6a24361 100644
--- a/content/docs/ja/next/concepts-architecture-overview.html
+++ b/content/docs/ja/next/concepts-architecture-overview.html
@@ -109,6 +109,9 @@
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="metadata-store"></a><a href="#metadata-store" 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>The Pulsar metadata store maintains all the metadata of a Pulsar cluster, such as topic metadata, schema, broker load data, and so on. Pulsar uses <a href="https://zookeeper.apache.org/">Apache ZooKeeper</a> for metadata storage, cluster configuration, and coordination. The Pulsar metadata store can be deployed on a separate ZooKeeper cluster or deployed on an existing ZooKeeper cluster. You can use one ZooKeeper cluster for both Pulsar metadata store and <a href="https://bookkeeper.a [...]
+<blockquote>
+<p>Pulsar also supports more metadata backend services, including <a href="https://etcd.io/">ETCD</a> and <a href="http://rocksdb.org/">RocksDB</a> (for standalone Pulsar only).</p>
+</blockquote>
 <p>In a Pulsar instance:</p>
 <ul>
 <li>A configuration store quorum stores configuration for tenants, namespaces, and other entities that need to be globally consistent.</li>
diff --git a/content/docs/ja/next/concepts-architecture-overview/index.html b/content/docs/ja/next/concepts-architecture-overview/index.html
index fc15ca7..6a24361 100644
--- a/content/docs/ja/next/concepts-architecture-overview/index.html
+++ b/content/docs/ja/next/concepts-architecture-overview/index.html
@@ -109,6 +109,9 @@
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="metadata-store"></a><a href="#metadata-store" 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>The Pulsar metadata store maintains all the metadata of a Pulsar cluster, such as topic metadata, schema, broker load data, and so on. Pulsar uses <a href="https://zookeeper.apache.org/">Apache ZooKeeper</a> for metadata storage, cluster configuration, and coordination. The Pulsar metadata store can be deployed on a separate ZooKeeper cluster or deployed on an existing ZooKeeper cluster. You can use one ZooKeeper cluster for both Pulsar metadata store and <a href="https://bookkeeper.a [...]
+<blockquote>
+<p>Pulsar also supports more metadata backend services, including <a href="https://etcd.io/">ETCD</a> and <a href="http://rocksdb.org/">RocksDB</a> (for standalone Pulsar only).</p>
+</blockquote>
 <p>In a Pulsar instance:</p>
 <ul>
 <li>A configuration store quorum stores configuration for tenants, namespaces, and other entities that need to be globally consistent.</li>
diff --git a/content/docs/ja/next/schema-evolution-compatibility.html b/content/docs/ja/next/schema-evolution-compatibility.html
index ab9f1fb..83c52c8 100644
--- a/content/docs/ja/next/schema-evolution-compatibility.html
+++ b/content/docs/ja/next/schema-evolution-compatibility.html
@@ -428,7 +428,7 @@
 <p>In some data formats, for example, Avro, you can define fields with default values. Consequently, adding or removing a field with a default value is a fully compatible change.</p>
 <blockquote>
 <p><strong>Tip</strong></p>
-<p>You can set schema compatibility check strategy at namespace or broker level. For how to set the strategy, see <a href="/docs/ja/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
+<p>You can set schema compatibility check strategy at the topic, namespace or broker level. For how to set the strategy, see <a href="/docs/ja/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="schema-verification"></a><a href="#schema-verification" 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 [...]
 <p>When a producer or a consumer tries to connect to a topic, a broker performs some checks to verify a schema.</p>
diff --git a/content/docs/ja/next/schema-evolution-compatibility/index.html b/content/docs/ja/next/schema-evolution-compatibility/index.html
index ab9f1fb..83c52c8 100644
--- a/content/docs/ja/next/schema-evolution-compatibility/index.html
+++ b/content/docs/ja/next/schema-evolution-compatibility/index.html
@@ -428,7 +428,7 @@
 <p>In some data formats, for example, Avro, you can define fields with default values. Consequently, adding or removing a field with a default value is a fully compatible change.</p>
 <blockquote>
 <p><strong>Tip</strong></p>
-<p>You can set schema compatibility check strategy at namespace or broker level. For how to set the strategy, see <a href="/docs/ja/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
+<p>You can set schema compatibility check strategy at the topic, namespace or broker level. For how to set the strategy, see <a href="/docs/ja/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="schema-verification"></a><a href="#schema-verification" 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 [...]
 <p>When a producer or a consumer tries to connect to a topic, a broker performs some checks to verify a schema.</p>
diff --git a/content/docs/ja/next/standalone.html b/content/docs/ja/next/standalone.html
index 283e40a..8522f31 100644
--- a/content/docs/ja/next/standalone.html
+++ b/content/docs/ja/next/standalone.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>ローカルでスタンドアロンのPulsarを設定する · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="ローカル開発とテストのために、マシン上でPulsar をスタンドアロンモードで 実行できます。 スタンドアロンモードには Pulsar brokerに加え、必要となる ZooKeeper と BookKeeper といったコンポーネントが含まれており、これらは単一の Java Virtual Machine (JVM) プロセス内で動作します。 [...]
+<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>ローカルでスタンドアロンのPulsarを設定する · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="ローカル開発とテストのために、マシン上でPulsar をスタンドアロンモードで 実行できます。 The standalone mode includes a Pulsar broker, the necessary [RocksDB](http://rocksdb.org/) and BookKeeper components running  [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ja" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">ローカルでスタンドアロンのPulsarを設定する</h1></header><article><div><span><p>ローカル開発とテストのために、マシン上でPulsar をスタンドアロンモードで 実行できます。 スタンドアロンモードには Pulsar brokerに加え、必要となる ZooKeeper と Boo [...]
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ja" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">ローカルでスタンドアロンのPulsarを設定する</h1></header><article><div><span><p>ローカル開発とテストのために、マシン上でPulsar をスタンドアロンモードで 実行できます。 The standalone mode includes a Pulsar broker, the n [...]
 <blockquote>
 <p><strong>本番でのPulsarはどうする?</strong>  <br>
 もしプロダクション環境向けの完全なインストールガイドをお探しの場合は、<a href="/docs/ja/next/deploy-bare-metal">Pulsar インスタンスのデプロイ</a>を参照してください。</p>
@@ -111,7 +111,8 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 </thead>
 <tbody>
 <tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left">Pulsar のコマンドラインツール <a href="/docs/ja/next/reference-cli-tools#pulsar"><code>pulsar</code></a> や <a href="https://pulsar.apache.org/tools/pulsar-admin/"><code>pulsar-admin</code></a> など。</td></tr>
-<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left"><a href="/docs/ja/next/reference-configuration#broker">Broker設定</a>、 <a href="/docs/ja/next/reference-configuration#zookeeper">ZooKeeper 設定</a>、その他を含む Pulsar の設定ファイル。</td></tr>
+<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including <a href="/docs/ja/next/reference-configuration#broker">broker configuration</a> and more.</td></tr>
+<tr><td style="text-align:left"><strong>Note:</strong> Pulsar standalone uses RocksDB as the local metadata store and its configuration file path <a href="/docs/ja/next/reference-configuration"><code>metadataStoreConfigPath</code></a> is configurable in the <code>standalone.conf</code> file. For more information about the configurations of RocksDB, see <a href="https://github.com/facebook/rocksdb/blob/main/examples/rocksdb_option_file_example.ini">here</a> and related <a href="https://gi [...]
 <tr><td style="text-align:left"><code>examples</code></td><td style="text-align:left"><a href="/docs/ja/next/functions-overview">Pulsar 関数</a> の例を含むJava JARファイル。</td></tr>
 <tr><td style="text-align:left"><code>instances</code></td><td style="text-align:left">Artifacts created for <a href="/docs/ja/next/functions-overview">Pulsar Functions</a>.</td></tr>
 <tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files used by Pulsar.</td></tr>
@@ -124,7 +125,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 <tr><th style="text-align:left">ディレクトリ</th><th style="text-align:left">内容</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by ZooKeeper and BookKeeper.</td></tr>
+<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by RocksDB and BookKeeper.</td></tr>
 <tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">Logs created by the installation.</td></tr>
 </tbody>
 </table>
diff --git a/content/docs/ja/next/standalone/index.html b/content/docs/ja/next/standalone/index.html
index 283e40a..8522f31 100644
--- a/content/docs/ja/next/standalone/index.html
+++ b/content/docs/ja/next/standalone/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>ローカルでスタンドアロンのPulsarを設定する · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="ローカル開発とテストのために、マシン上でPulsar をスタンドアロンモードで 実行できます。 スタンドアロンモードには Pulsar brokerに加え、必要となる ZooKeeper と BookKeeper といったコンポーネントが含まれており、これらは単一の Java Virtual Machine (JVM) プロセス内で動作します。 [...]
+<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>ローカルでスタンドアロンのPulsarを設定する · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="ローカル開発とテストのために、マシン上でPulsar をスタンドアロンモードで 実行できます。 The standalone mode includes a Pulsar broker, the necessary [RocksDB](http://rocksdb.org/) and BookKeeper components running  [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ja" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">ローカルでスタンドアロンのPulsarを設定する</h1></header><article><div><span><p>ローカル開発とテストのために、マシン上でPulsar をスタンドアロンモードで 実行できます。 スタンドアロンモードには Pulsar brokerに加え、必要となる ZooKeeper と Boo [...]
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ja" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">ローカルでスタンドアロンのPulsarを設定する</h1></header><article><div><span><p>ローカル開発とテストのために、マシン上でPulsar をスタンドアロンモードで 実行できます。 The standalone mode includes a Pulsar broker, the n [...]
 <blockquote>
 <p><strong>本番でのPulsarはどうする?</strong>  <br>
 もしプロダクション環境向けの完全なインストールガイドをお探しの場合は、<a href="/docs/ja/next/deploy-bare-metal">Pulsar インスタンスのデプロイ</a>を参照してください。</p>
@@ -111,7 +111,8 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 </thead>
 <tbody>
 <tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left">Pulsar のコマンドラインツール <a href="/docs/ja/next/reference-cli-tools#pulsar"><code>pulsar</code></a> や <a href="https://pulsar.apache.org/tools/pulsar-admin/"><code>pulsar-admin</code></a> など。</td></tr>
-<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left"><a href="/docs/ja/next/reference-configuration#broker">Broker設定</a>、 <a href="/docs/ja/next/reference-configuration#zookeeper">ZooKeeper 設定</a>、その他を含む Pulsar の設定ファイル。</td></tr>
+<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including <a href="/docs/ja/next/reference-configuration#broker">broker configuration</a> and more.</td></tr>
+<tr><td style="text-align:left"><strong>Note:</strong> Pulsar standalone uses RocksDB as the local metadata store and its configuration file path <a href="/docs/ja/next/reference-configuration"><code>metadataStoreConfigPath</code></a> is configurable in the <code>standalone.conf</code> file. For more information about the configurations of RocksDB, see <a href="https://github.com/facebook/rocksdb/blob/main/examples/rocksdb_option_file_example.ini">here</a> and related <a href="https://gi [...]
 <tr><td style="text-align:left"><code>examples</code></td><td style="text-align:left"><a href="/docs/ja/next/functions-overview">Pulsar 関数</a> の例を含むJava JARファイル。</td></tr>
 <tr><td style="text-align:left"><code>instances</code></td><td style="text-align:left">Artifacts created for <a href="/docs/ja/next/functions-overview">Pulsar Functions</a>.</td></tr>
 <tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files used by Pulsar.</td></tr>
@@ -124,7 +125,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 <tr><th style="text-align:left">ディレクトリ</th><th style="text-align:left">内容</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by ZooKeeper and BookKeeper.</td></tr>
+<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by RocksDB and BookKeeper.</td></tr>
 <tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">Logs created by the installation.</td></tr>
 </tbody>
 </table>
diff --git a/content/docs/ko/next/client-libraries-java.html b/content/docs/ko/next/client-libraries-java.html
index 893a0e5..9acd90f 100644
--- a/content/docs/ko/next/client-libraries-java.html
+++ b/content/docs/ko/next/client-libraries-java.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="ko"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and \[TableView]\](#tableview) of messages and to perform [adm [...]
+<!DOCTYPE html><html lang="ko"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and [TableView](#tableview) of messages and to perform [admini [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,8 +74,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ko" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
-<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and [TableView]](#tableview) of a Java client are thread-safe.</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ko" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
+<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and <a href="#tableview">TableView</a> of a Java client are thread-safe.</p>
 <p>Javadoc for the Pulsar client is divided into two domains by package as follows.</p>
 <table>
 <thead>
@@ -250,7 +250,7 @@ Available options are as follows:</li>
 <ul>
 <li><p><strong>FAIL</strong>: if encryption fails, unencrypted messages fail to send.</p></li>
 <li><p><strong>SEND</strong>: if encryption fails, unencrypted messages are sent. |
-<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>compressionType</code>|CompressionType|Message data compression type used by a producer.<br>
+<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>chunkingEnabled</code> | boolean | Enable chunking of messages. |false <code>compressionType</code>|CompressionType|Message data compression type  [...]
 Available options:</p></li>
 <li><p><a href="https://github.com/lz4/lz4"><code>LZ4</code></a></p></li>
 <li><p><a href="https://zlib.net/"><code>ZLIB</code></a></p>
@@ -289,6 +289,18 @@ You can configure parameters if you do not want to use the default configuration
     .send();
 </code></pre>
 <p>You can terminate the builder chain with <code>sendAsync()</code> and get a future return.</p>
+<h3><a class="anchor" aria-hidden="true" id="enable-chunking"></a><a href="#enable-chunking" 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>Message <a href="/docs/ko/next/concepts-messaging#chunking">chunking</a> enables Pulsar to process large payload messages by splitting the message into chunks at the producer side and aggregating chunked messages at the consumer side.</p>
+<p>The message chunking feature is OFF by default. The following is an example about how to enable message chunking when creating a producer.</p>
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+        .topic(topic)
+        .enableChunking(<span class="hljs-keyword">true</span>)
+        .enableBatching(<span class="hljs-keyword">false</span>)
+        .create();
+</code></pre>
+<blockquote>
+<p><strong>Note:</strong> To enable chunking, you need to disable batching (<code>enableBatching</code>=<code>false</code>) concurrently.</p>
+</blockquote>
 <h2><a class="anchor" aria-hidden="true" id="consumer"></a><a href="#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 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>In Pulsar, consumers subscribe to topics and handle messages that producers publish to those topics. You can instantiate a new <a href="/docs/ko/next/reference-terminology#consumer">consumer</a> by first instantiating a <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient">PulsarClient</a>
  object and passing it a URL for a Pulsar broker (as <a href="#client-configuration">above</a>).</p>
@@ -416,7 +428,7 @@ To set a custom dead letter topic name:
   
 When specifying the dead letter policy while not specifying `ackTimeoutMillis`, you can set the ack timeout to 30000 millisecond.|None `autoUpdatePartitions`|boolean|If `autoUpdatePartitions` is enabled, a consumer subscribes to partition increasement automatically.  
   
-**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
+**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
 
 You can configure parameters if you do not want to use the default configuration. For a full list, see the Javadoc for the {@inject: javadoc:ConsumerBuilder:/client/org/apache/pulsar/client/api/ConsumerBuilder} class.
 
@@ -485,6 +497,22 @@ consumer.acknowledge(messages)
 &gt;     .build();
 &gt; ```
 
+### Configure chunking
+
+You can limit the maximum number of chunked messages a consumer maintains concurrently by configuring the `maxPendingChunkedMessage` and `autoAckOldestChunkedMessageOnQueueFull` parameters. When the threshold is reached, the consumer drops pending messages by silently acknowledging them or asking the broker to redeliver them later. The `expireTimeOfIncompleteChunkedMessage` parameter decides the time interval to expire incomplete chunks if the consumer fails to receive all chunks of a me [...]
+
+The following is an example of how to configure message chunking.
+
+```java
+Consumer&lt;byte[]&gt; consumer = client.newConsumer()
+        .topic(topic)
+        .subscriptionName(&quot;test&quot;)
+        .autoAckOldestChunkedMessageOnQueueFull(true)
+        .maxPendingChunkedMessage(100)
+        .expireTimeOfIncompleteChunkedMessage(10, TimeUnit.MINUTES)
+        .subscribe();
+```
+
 ### Negative acknowledgment redelivery backoff
 
 The `RedeliveryBackoff` introduces a redelivery backoff mechanism. You can achieve redelivery with different delays by setting `redeliveryCount` of messages.
@@ -1102,7 +1130,7 @@ PulsarClient client = PulsarClient.builder()
     .authentication(auth)
     .build();
 ```</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/next/client-libraries"><span class="arrow-prev">← </span><span>Overview</span></a><a class="docs-next button" href="/docs/ko/next/client-libraries-go"><span>Go</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href="#gradl [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/next/client-libraries"><span class="arrow-prev">← </span><span>Overview</span></a><a class="docs-next button" href="/docs/ko/next/client-libraries-go"><span>Go</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href="#gradl [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/ko/next/client-libraries-java/index.html b/content/docs/ko/next/client-libraries-java/index.html
index 893a0e5..9acd90f 100644
--- a/content/docs/ko/next/client-libraries-java/index.html
+++ b/content/docs/ko/next/client-libraries-java/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="ko"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and \[TableView]\](#tableview) of messages and to perform [adm [...]
+<!DOCTYPE html><html lang="ko"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and [TableView](#tableview) of messages and to perform [admini [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,8 +74,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ko" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
-<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and [TableView]](#tableview) of a Java client are thread-safe.</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ko" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
+<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and <a href="#tableview">TableView</a> of a Java client are thread-safe.</p>
 <p>Javadoc for the Pulsar client is divided into two domains by package as follows.</p>
 <table>
 <thead>
@@ -250,7 +250,7 @@ Available options are as follows:</li>
 <ul>
 <li><p><strong>FAIL</strong>: if encryption fails, unencrypted messages fail to send.</p></li>
 <li><p><strong>SEND</strong>: if encryption fails, unencrypted messages are sent. |
-<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>compressionType</code>|CompressionType|Message data compression type used by a producer.<br>
+<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>chunkingEnabled</code> | boolean | Enable chunking of messages. |false <code>compressionType</code>|CompressionType|Message data compression type  [...]
 Available options:</p></li>
 <li><p><a href="https://github.com/lz4/lz4"><code>LZ4</code></a></p></li>
 <li><p><a href="https://zlib.net/"><code>ZLIB</code></a></p>
@@ -289,6 +289,18 @@ You can configure parameters if you do not want to use the default configuration
     .send();
 </code></pre>
 <p>You can terminate the builder chain with <code>sendAsync()</code> and get a future return.</p>
+<h3><a class="anchor" aria-hidden="true" id="enable-chunking"></a><a href="#enable-chunking" 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>Message <a href="/docs/ko/next/concepts-messaging#chunking">chunking</a> enables Pulsar to process large payload messages by splitting the message into chunks at the producer side and aggregating chunked messages at the consumer side.</p>
+<p>The message chunking feature is OFF by default. The following is an example about how to enable message chunking when creating a producer.</p>
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+        .topic(topic)
+        .enableChunking(<span class="hljs-keyword">true</span>)
+        .enableBatching(<span class="hljs-keyword">false</span>)
+        .create();
+</code></pre>
+<blockquote>
+<p><strong>Note:</strong> To enable chunking, you need to disable batching (<code>enableBatching</code>=<code>false</code>) concurrently.</p>
+</blockquote>
 <h2><a class="anchor" aria-hidden="true" id="consumer"></a><a href="#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 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>In Pulsar, consumers subscribe to topics and handle messages that producers publish to those topics. You can instantiate a new <a href="/docs/ko/next/reference-terminology#consumer">consumer</a> by first instantiating a <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient">PulsarClient</a>
  object and passing it a URL for a Pulsar broker (as <a href="#client-configuration">above</a>).</p>
@@ -416,7 +428,7 @@ To set a custom dead letter topic name:
   
 When specifying the dead letter policy while not specifying `ackTimeoutMillis`, you can set the ack timeout to 30000 millisecond.|None `autoUpdatePartitions`|boolean|If `autoUpdatePartitions` is enabled, a consumer subscribes to partition increasement automatically.  
   
-**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
+**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
 
 You can configure parameters if you do not want to use the default configuration. For a full list, see the Javadoc for the {@inject: javadoc:ConsumerBuilder:/client/org/apache/pulsar/client/api/ConsumerBuilder} class.
 
@@ -485,6 +497,22 @@ consumer.acknowledge(messages)
 &gt;     .build();
 &gt; ```
 
+### Configure chunking
+
+You can limit the maximum number of chunked messages a consumer maintains concurrently by configuring the `maxPendingChunkedMessage` and `autoAckOldestChunkedMessageOnQueueFull` parameters. When the threshold is reached, the consumer drops pending messages by silently acknowledging them or asking the broker to redeliver them later. The `expireTimeOfIncompleteChunkedMessage` parameter decides the time interval to expire incomplete chunks if the consumer fails to receive all chunks of a me [...]
+
+The following is an example of how to configure message chunking.
+
+```java
+Consumer&lt;byte[]&gt; consumer = client.newConsumer()
+        .topic(topic)
+        .subscriptionName(&quot;test&quot;)
+        .autoAckOldestChunkedMessageOnQueueFull(true)
+        .maxPendingChunkedMessage(100)
+        .expireTimeOfIncompleteChunkedMessage(10, TimeUnit.MINUTES)
+        .subscribe();
+```
+
 ### Negative acknowledgment redelivery backoff
 
 The `RedeliveryBackoff` introduces a redelivery backoff mechanism. You can achieve redelivery with different delays by setting `redeliveryCount` of messages.
@@ -1102,7 +1130,7 @@ PulsarClient client = PulsarClient.builder()
     .authentication(auth)
     .build();
 ```</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/next/client-libraries"><span class="arrow-prev">← </span><span>Overview</span></a><a class="docs-next button" href="/docs/ko/next/client-libraries-go"><span>Go</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href="#gradl [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/next/client-libraries"><span class="arrow-prev">← </span><span>Overview</span></a><a class="docs-next button" href="/docs/ko/next/client-libraries-go"><span>Go</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href="#gradl [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/ko/next/concepts-architecture-overview.html b/content/docs/ko/next/concepts-architecture-overview.html
index e72a926..f1749f61 100644
--- a/content/docs/ko/next/concepts-architecture-overview.html
+++ b/content/docs/ko/next/concepts-architecture-overview.html
@@ -109,6 +109,9 @@
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="metadata-store"></a><a href="#metadata-store" 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>The Pulsar metadata store maintains all the metadata of a Pulsar cluster, such as topic metadata, schema, broker load data, and so on. Pulsar uses <a href="https://zookeeper.apache.org/">Apache ZooKeeper</a> for metadata storage, cluster configuration, and coordination. The Pulsar metadata store can be deployed on a separate ZooKeeper cluster or deployed on an existing ZooKeeper cluster. You can use one ZooKeeper cluster for both Pulsar metadata store and <a href="https://bookkeeper.a [...]
+<blockquote>
+<p>Pulsar also supports more metadata backend services, including <a href="https://etcd.io/">ETCD</a> and <a href="http://rocksdb.org/">RocksDB</a> (for standalone Pulsar only).</p>
+</blockquote>
 <p>In a Pulsar instance:</p>
 <ul>
 <li>구성(configuration) 저장소인 쿼럼(Zookeeper) 은 테넌트, 네임 스페이스 및 전체적으로 일관성이 필요한 다른 엔터티에 대한 구성을 저장합니다.</li>
diff --git a/content/docs/ko/next/concepts-architecture-overview/index.html b/content/docs/ko/next/concepts-architecture-overview/index.html
index e72a926..f1749f61 100644
--- a/content/docs/ko/next/concepts-architecture-overview/index.html
+++ b/content/docs/ko/next/concepts-architecture-overview/index.html
@@ -109,6 +109,9 @@
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="metadata-store"></a><a href="#metadata-store" 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>The Pulsar metadata store maintains all the metadata of a Pulsar cluster, such as topic metadata, schema, broker load data, and so on. Pulsar uses <a href="https://zookeeper.apache.org/">Apache ZooKeeper</a> for metadata storage, cluster configuration, and coordination. The Pulsar metadata store can be deployed on a separate ZooKeeper cluster or deployed on an existing ZooKeeper cluster. You can use one ZooKeeper cluster for both Pulsar metadata store and <a href="https://bookkeeper.a [...]
+<blockquote>
+<p>Pulsar also supports more metadata backend services, including <a href="https://etcd.io/">ETCD</a> and <a href="http://rocksdb.org/">RocksDB</a> (for standalone Pulsar only).</p>
+</blockquote>
 <p>In a Pulsar instance:</p>
 <ul>
 <li>구성(configuration) 저장소인 쿼럼(Zookeeper) 은 테넌트, 네임 스페이스 및 전체적으로 일관성이 필요한 다른 엔터티에 대한 구성을 저장합니다.</li>
diff --git a/content/docs/ko/next/schema-evolution-compatibility.html b/content/docs/ko/next/schema-evolution-compatibility.html
index b01dd84..537af76 100644
--- a/content/docs/ko/next/schema-evolution-compatibility.html
+++ b/content/docs/ko/next/schema-evolution-compatibility.html
@@ -428,7 +428,7 @@
 <p>In some data formats, for example, Avro, you can define fields with default values. Consequently, adding or removing a field with a default value is a fully compatible change.</p>
 <blockquote>
 <p><strong>Tip</strong></p>
-<p>You can set schema compatibility check strategy at namespace or broker level. For how to set the strategy, see <a href="/docs/ko/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
+<p>You can set schema compatibility check strategy at the topic, namespace or broker level. For how to set the strategy, see <a href="/docs/ko/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="schema-verification"></a><a href="#schema-verification" 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 [...]
 <p>When a producer or a consumer tries to connect to a topic, a broker performs some checks to verify a schema.</p>
diff --git a/content/docs/ko/next/schema-evolution-compatibility/index.html b/content/docs/ko/next/schema-evolution-compatibility/index.html
index b01dd84..537af76 100644
--- a/content/docs/ko/next/schema-evolution-compatibility/index.html
+++ b/content/docs/ko/next/schema-evolution-compatibility/index.html
@@ -428,7 +428,7 @@
 <p>In some data formats, for example, Avro, you can define fields with default values. Consequently, adding or removing a field with a default value is a fully compatible change.</p>
 <blockquote>
 <p><strong>Tip</strong></p>
-<p>You can set schema compatibility check strategy at namespace or broker level. For how to set the strategy, see <a href="/docs/ko/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
+<p>You can set schema compatibility check strategy at the topic, namespace or broker level. For how to set the strategy, see <a href="/docs/ko/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="schema-verification"></a><a href="#schema-verification" 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 [...]
 <p>When a producer or a consumer tries to connect to a topic, a broker performs some checks to verify a schema.</p>
diff --git a/content/docs/ko/next/standalone.html b/content/docs/ko/next/standalone.html
index e3bc520..429fb93 100644
--- a/content/docs/ko/next/standalone.html
+++ b/content/docs/ko/next/standalone.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="ko"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>로컬 독립형 Pulsar 구성 · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="로컬 개발 및 테스트를 위해 여러분의 컴퓨터에서 Pulsar를 독립형 모드로 실행할 수 있습니다. 독립형 모드에는 Pulsar 브로커와 별도의 JVM (Java Virtual Machine) 프로세스에서 실행되는 필수 구성 요소인 Zookeeper 및 BookKeeper 가 있습니다."/><meta name="docsear [...]
+<!DOCTYPE html><html lang="ko"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>로컬 독립형 Pulsar 구성 · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="로컬 개발 및 테스트를 위해 여러분의 컴퓨터에서 Pulsar를 독립형 모드로 실행할 수 있습니다. The standalone mode includes a Pulsar broker, the necessary [RocksDB](http://rocksdb.org/) and BookKeeper components running i [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ko" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">로컬 독립형 Pulsar 구성</h1></header><article><div><span><p>로컬 개발 및 테스트를 위해 여러분의 컴퓨터에서 Pulsar를 독립형 모드로 실행할 수 있습니다. 독립형 모드에는 Pulsar 브로커와 별도의 JVM (Java Virtual Machine)  [...]
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ko" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">로컬 독립형 Pulsar 구성</h1></header><article><div><span><p>로컬 개발 및 테스트를 위해 여러분의 컴퓨터에서 Pulsar를 독립형 모드로 실행할 수 있습니다. The standalone mode includes a Pulsar broker, the ne [...]
 <blockquote>
 <p><strong>Pulsar in production?</strong>  <br>
 If you're looking to run a full production Pulsar installation, see the <a href="/docs/ko/next/deploy-bare-metal">Deploying a Pulsar instance</a> guide.</p>
@@ -111,7 +111,8 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 </thead>
 <tbody>
 <tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left">Pulsar's command-line tools, such as <a href="/docs/ko/next/reference-cli-tools#pulsar"><code>pulsar</code></a> and <a href="https://pulsar.apache.org/tools/pulsar-admin/"><code>pulsar-admin</code></a>.</td></tr>
-<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">구성 파일들이 있습니다. <a href="/docs/ko/next/reference-configuration#broker">broker configuration</a>, <a href="/docs/ko/next/reference-configuration#zookeeper">ZooKeeper configuration</a> 등.</td></tr>
+<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including <a href="/docs/ko/next/reference-configuration#broker">broker configuration</a> and more.</td></tr>
+<tr><td style="text-align:left"><strong>Note:</strong> Pulsar standalone uses RocksDB as the local metadata store and its configuration file path <a href="/docs/ko/next/reference-configuration"><code>metadataStoreConfigPath</code></a> is configurable in the <code>standalone.conf</code> file. For more information about the configurations of RocksDB, see <a href="https://github.com/facebook/rocksdb/blob/main/examples/rocksdb_option_file_example.ini">here</a> and related <a href="https://gi [...]
 <tr><td style="text-align:left"><code>examples</code></td><td style="text-align:left"><a href="/docs/ko/next/functions-overview">Pulsar Functions</a> 예제가 포함된 Java Jar 파일들이 있습니다.</td></tr>
 <tr><td style="text-align:left"><code>인스턴스</code></td><td style="text-align:left"><a href="/docs/ko/next/functions-overview">Pulsar Functions</a>을 위하여 생성된 아티펙트.</td></tr>
 <tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files used by Pulsar.</td></tr>
@@ -124,7 +125,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 <tr><th style="text-align:left">디렉토리</th><th style="text-align:left">포함</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left"><code>데이터</code></td><td style="text-align:left">The data storage directory used by ZooKeeper and BookKeeper.</td></tr>
+<tr><td style="text-align:left"><code>데이터</code></td><td style="text-align:left">The data storage directory used by RocksDB and BookKeeper.</td></tr>
 <tr><td style="text-align:left"><code>로그</code></td><td style="text-align:left">Logs created by the installation.</td></tr>
 </tbody>
 </table>
diff --git a/content/docs/ko/next/standalone/index.html b/content/docs/ko/next/standalone/index.html
index e3bc520..429fb93 100644
--- a/content/docs/ko/next/standalone/index.html
+++ b/content/docs/ko/next/standalone/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="ko"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>로컬 독립형 Pulsar 구성 · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="로컬 개발 및 테스트를 위해 여러분의 컴퓨터에서 Pulsar를 독립형 모드로 실행할 수 있습니다. 독립형 모드에는 Pulsar 브로커와 별도의 JVM (Java Virtual Machine) 프로세스에서 실행되는 필수 구성 요소인 Zookeeper 및 BookKeeper 가 있습니다."/><meta name="docsear [...]
+<!DOCTYPE html><html lang="ko"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>로컬 독립형 Pulsar 구성 · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="로컬 개발 및 테스트를 위해 여러분의 컴퓨터에서 Pulsar를 독립형 모드로 실행할 수 있습니다. The standalone mode includes a Pulsar broker, the necessary [RocksDB](http://rocksdb.org/) and BookKeeper components running i [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ko" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">로컬 독립형 Pulsar 구성</h1></header><article><div><span><p>로컬 개발 및 테스트를 위해 여러분의 컴퓨터에서 Pulsar를 독립형 모드로 실행할 수 있습니다. 독립형 모드에는 Pulsar 브로커와 별도의 JVM (Java Virtual Machine)  [...]
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ko" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">로컬 독립형 Pulsar 구성</h1></header><article><div><span><p>로컬 개발 및 테스트를 위해 여러분의 컴퓨터에서 Pulsar를 독립형 모드로 실행할 수 있습니다. The standalone mode includes a Pulsar broker, the ne [...]
 <blockquote>
 <p><strong>Pulsar in production?</strong>  <br>
 If you're looking to run a full production Pulsar installation, see the <a href="/docs/ko/next/deploy-bare-metal">Deploying a Pulsar instance</a> guide.</p>
@@ -111,7 +111,8 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 </thead>
 <tbody>
 <tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left">Pulsar's command-line tools, such as <a href="/docs/ko/next/reference-cli-tools#pulsar"><code>pulsar</code></a> and <a href="https://pulsar.apache.org/tools/pulsar-admin/"><code>pulsar-admin</code></a>.</td></tr>
-<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">구성 파일들이 있습니다. <a href="/docs/ko/next/reference-configuration#broker">broker configuration</a>, <a href="/docs/ko/next/reference-configuration#zookeeper">ZooKeeper configuration</a> 등.</td></tr>
+<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including <a href="/docs/ko/next/reference-configuration#broker">broker configuration</a> and more.</td></tr>
+<tr><td style="text-align:left"><strong>Note:</strong> Pulsar standalone uses RocksDB as the local metadata store and its configuration file path <a href="/docs/ko/next/reference-configuration"><code>metadataStoreConfigPath</code></a> is configurable in the <code>standalone.conf</code> file. For more information about the configurations of RocksDB, see <a href="https://github.com/facebook/rocksdb/blob/main/examples/rocksdb_option_file_example.ini">here</a> and related <a href="https://gi [...]
 <tr><td style="text-align:left"><code>examples</code></td><td style="text-align:left"><a href="/docs/ko/next/functions-overview">Pulsar Functions</a> 예제가 포함된 Java Jar 파일들이 있습니다.</td></tr>
 <tr><td style="text-align:left"><code>인스턴스</code></td><td style="text-align:left"><a href="/docs/ko/next/functions-overview">Pulsar Functions</a>을 위하여 생성된 아티펙트.</td></tr>
 <tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files used by Pulsar.</td></tr>
@@ -124,7 +125,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 <tr><th style="text-align:left">디렉토리</th><th style="text-align:left">포함</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left"><code>데이터</code></td><td style="text-align:left">The data storage directory used by ZooKeeper and BookKeeper.</td></tr>
+<tr><td style="text-align:left"><code>데이터</code></td><td style="text-align:left">The data storage directory used by RocksDB and BookKeeper.</td></tr>
 <tr><td style="text-align:left"><code>로그</code></td><td style="text-align:left">Logs created by the installation.</td></tr>
 </tbody>
 </table>
diff --git a/content/docs/zh-CN/next/client-libraries-java.html b/content/docs/zh-CN/next/client-libraries-java.html
index 96148f6..b10a000 100644
--- a/content/docs/zh-CN/next/client-libraries-java.html
+++ b/content/docs/zh-CN/next/client-libraries-java.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java 客户端 · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and \[TableView]\](#tableview) of messages and to perform [adm [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java 客户端 · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and [TableView](#tableview) of messages and to perform [admini [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -75,8 +75,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java 客户端</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
-<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and [TableView]](#tableview) of a Java client are thread-safe.</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java 客户端</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
+<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and <a href="#tableview">TableView</a> of a Java client are thread-safe.</p>
 <p>Pulsar 客户端的Javadoc 分为如下两个包:</p>
 <table>
 <thead>
@@ -251,13 +251,13 @@ If it is set to <code>false</code>,当传出消息队列已满时, <code>Sen
 <ul>
 <li><p><strong>FAIL</strong>:如果加密失败,则未加密的消息将会发送失败。</p></li>
 <li><p><strong>SEND</strong>:如果加密失败,则未加密的消息将会发送成功。 |
-<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long | 发送消息时的批处理时间。| TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> | int | 一批消息中允许的最大消息个数。| 1000 <code>batchingEnabled</code>| boolean | 启用消息批处理。| true <code>compressionType</code>| CompressionType | 生产者使用的消息数据压缩类型。<br>
-可用选项:</p></li>
+<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long | 发送消息时的批处理时间。| TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> | int | 一批消息中允许的最大消息个数。| 1000 <code>batchingEnabled</code>| boolean | 启用消息批处理。| true <code>chunkingEnabled</code> | boolean | Enable chunking of messages. |false <code>compressionType</code>|CompressionType|Message data compression type used by a producer.<br>
+Available options:</p></li>
 <li><p><a href="https://github.com/lz4/lz4"><code>LZ4</code></a></p></li>
 <li><p><a href="https://zlib.net/"><code>ZLIB</code></a></p>
 <ul>
 <li><a href="https://facebook.github.io/zstd/"><code>ZSTD</code></a></li>
-<li><a href="https://google.github.io/snappy/"><code>SNAPPY</code></a>| 无压缩</p>
+<li><a href="https://google.github.io/snappy/"><code>SNAPPY</code></a>| No compression</p>
 You can configure parameters if you do not want to use the default configuration.</li>
 </ul>
 <p>如需查看所有参数,可参考 <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/ProducerBuilder">ProducerBuilder</a>
@@ -290,12 +290,24 @@ You can configure parameters if you do not want to use the default configuration
     .send();
 </code></pre>
 <p>You can terminate the builder chain with <code>sendAsync()</code> and get a future return.</p>
+<h3><a class="anchor" aria-hidden="true" id="enable-chunking"></a><a href="#enable-chunking" 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>Message <a href="/docs/zh-CN/next/concepts-messaging#chunking">chunking</a> enables Pulsar to process large payload messages by splitting the message into chunks at the producer side and aggregating chunked messages at the consumer side.</p>
+<p>The message chunking feature is OFF by default. The following is an example about how to enable message chunking when creating a producer.</p>
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+        .topic(topic)
+        .enableChunking(<span class="hljs-keyword">true</span>)
+        .enableBatching(<span class="hljs-keyword">false</span>)
+        .create();
+</code></pre>
+<blockquote>
+<p><strong>Note:</strong> To enable chunking, you need to disable batching (<code>enableBatching</code>=<code>false</code>) concurrently.</p>
+</blockquote>
 <h2><a class="anchor" aria-hidden="true" id="消费者consumer"></a><a href="#消费者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 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
 <p>在Pulsar中,消费者订阅topic主题并处理生产者发布到这些主题的消息。 你可以首先实例化一个<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient">PulsarClient</a>
 对象并传递给他一个borker(<a href="#client-configuration">如上所示</a>) URL来实例化一个<a href="/docs/zh-CN/next/reference-terminology#consumer">消费者</a>。</p>
-<p>当 <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient">PulsarClient</a>
- 对象实例化完成后,您可以创建一个 <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/Consumer">Consumer</a>
- 对象,并指定一个 <a href="/docs/zh-CN/next/reference-terminology#topic">主题</a> 和 <a href="/docs/zh-CN/next/concepts-messaging#subscription-types">订阅</a>.</p>
+<p>Once you've instantiated a <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient">PulsarClient</a>
+ object, you can create a <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/Consumer">Consumer</a>
+ by specifying a <a href="/docs/zh-CN/next/reference-terminology#topic">topic</a> and a <a href="/docs/zh-CN/next/concepts-messaging#subscription-types">subscription</a>.</p>
 <pre><code class="hljs css language-java">Consumer consumer = client.newConsumer()
         .topic(<span class="hljs-string">"my-topic"</span>)
         .subscriptionName(<span class="hljs-string">"my-subscription"</span>)
@@ -336,88 +348,88 @@ Consumer consumer = client.newConsumer()
 </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.09 [...]
 <p>If you instantiate a <code>Consumer</code> object by specifying only a topic and subscription name as in the example above, the consumer uses the default configuration.</p>
-<p>当您创建消费者时,可以采用 <code>loadConf</code> 方式进行配置。<code>loadConf</code> 可用的参数如下。</p>
+<p>When you create a consumer, you can use the <code>loadConf</code> configuration. The following parameters are available in <code>loadConf</code>.</p>
 <p>名称 | 类型 |</p>
 <p><div style="width:300px">
 说明
 </div>
-| 默认值 |---|---|---|--- <code>topicNames</code>| Set<String>| 主题名称 | Sets.newTreeSet() <code>topicsPattern</code>| Pattern | 主题模式 | 无 <code>subscriptionName</code>| String | 订阅名称 | 无 <code>subscriptionType</code>| SubscriptionType | 订阅模式<br>
-共有四种订阅模式:</p>
+| 默认值 |---|---|---|--- <code>topicNames</code>| Set<String>| Topic name| Sets.newTreeSet() <code>topicsPattern</code>|Pattern| Topic pattern |None <code>subscriptionName</code>|String| Subscription name| None <code>subscriptionType</code>|SubscriptionType| Subscription type<br>
+Four subscription types are available:</p>
 <ul>
 <li>Exclusive</li>
 <li>Failover(灾备)</li>
 <li>Shared(共享)</li>
-<li>Key_Shared| SubscriptionType.Exclusive
-<code>receiverQueueSize</code> | int | 消费者接收队列的大小。</li>
+<li>Key_Shared|SubscriptionType.Exclusive
+<code>receiverQueueSize</code> |int | Size of a consumer's receiver queue.</li>
 </ul>
-<p>例如,在应用程序调用 Receive 方法之前消费者累积的消息数量。 <code></code>.</p>
-<p>设置为高于默认值会提高消费者吞吐量,但会增加内存开销。| 1000 <code>acknowledgementsGroupTimeMicros</code>| long | 将消费者确认按指定时间分组。</p>
-<p>默认情况下,消费者使用 100ms 分组时间向 broker 发送确认。</p>
-<p>如果分组时间设置为 0,则会立即发送确认。</p>
-<p>分组时间越长则越有效率,而代价是消息失败后的重传次数会略有增加。| TimeUnit.MILLISECONDS.toMicros(100) <code>negativeAckRedeliveryDelayMicros</code>| long | 在重新发送处理失败的消息之前的延迟等待时间。</p>
-<p>当应用程序使用 {@link Consumer#negativeAcknowledge(Message)},失败的消息会在一个固定的超时时间之后重传。| TimeUnit.MINUTES.toMicros(1) <code>maxTotalReceiverQueueSizeAcrossPartitions</code>| int | 跨分区的接收队列最大总长度。</p>
-<p>如果接收队列总长度超过此值,则此设置会降低单个分区的接收队列长度。| 50000 <code>consumerName</code>| String | 消费者名称 | null <code>ackTimeoutMillis</code>| long | 未确认消息的超时时间 | 0 <code>tickDurationMillis</code>| ack-timeout 重传粒度。</p>
-<p>使用更高的 <code>tickDurationMillis</code> 在将确认超时设置为较大值时 (例如1小时),增大 tickDurationMillis 会降低追踪消息是的内存开销。|1000 <code>priorityLevel</code>| int | 在共享订阅模式下,broker 分发消息时给予消费者的优先级别。</p>
-<p>Broker 按照优先级降序排序。例如 0 表示最大优先级,其次是 1,2……</p>
-<p>在共享订阅模式下,broker <strong>优先将消息分发给优先级最高的消费者,只要他们有许可。</strong>否则,broker 会分发给下一个优先级别的消费者。</p>
+<p>For example, the number of messages accumulated by a consumer before an application calls <code>Receive</code>.</p>
+<p>A value higher than the default value increases consumer throughput, though at the expense of more memory utilization.| 1000 <code>acknowledgementsGroupTimeMicros</code>|long|Group a consumer acknowledgment for a specified time.</p>
+<p>By default, a consumer uses 100ms grouping time to send out acknowledgments to a broker.</p>
+<p>Setting a group time of 0 sends out acknowledgments immediately.</p>
+<p>A longer ack group time is more efficient at the expense of a slight increase in message re-deliveries after a failure.|TimeUnit.MILLISECONDS.toMicros(100) <code>negativeAckRedeliveryDelayMicros</code>|long|Delay to wait before redelivering messages that failed to be processed.</p>
+<p>When an application uses {@link Consumer#negativeAcknowledge(Message)}, failed messages are redelivered after a fixed timeout. |TimeUnit.MINUTES.toMicros(1) <code>maxTotalReceiverQueueSizeAcrossPartitions</code>|int |The max total receiver queue size across partitions.</p>
+<p>This setting reduces the receiver queue size for individual partitions if the total receiver queue size exceeds this value.|50000 <code>consumerName</code>|String|Consumer name|null <code>ackTimeoutMillis</code>|long|Timeout of unacked messages|0 <code>tickDurationMillis</code>|long|Granularity of the ack-timeout redelivery.</p>
+<p>Using an higher <code>tickDurationMillis</code> reduces the memory overhead to track messages when setting ack-timeout to a bigger value (for example, 1 hour).|1000 <code>priorityLevel</code>|int|Priority level for a consumer to which a broker gives more priority while dispatching messages in Shared subscription type.</p>
+<p>The broker follows descending priorities. For example, 0=max-priority, 1, 2,...</p>
+<p>In Shared subscription type, the broker <strong>first dispatches messages to the max priority level consumers if they have permits</strong>. Otherwise, the broker considers next priority level consumers.</p>
 <p><strong>示例 1</strong>  <br>
-如果一个订阅有消费者 consumerA <code>priorityLevel</code> 为0,另一个消费者 consumerB <code>priorityLevel</code> 为 1,则 broker <strong>只会向 consumerA 分发消息,直到其用完许可,</strong> 然后才会开始向 consumerB 分发消息。</p>
+If a subscription has consumerA with <code>priorityLevel</code> 0 and consumerB with <code>priorityLevel</code> 1, then the broker <strong>only dispatches messages to consumerA until it runs out permits</strong> and then starts dispatching messages to consumerB.</p>
 <p><strong>示例 2</strong>  <br>
-消费者,优先级别,许可<br>
+Consumer Priority, Level, Permits<br>
 C1, 0, 2<br>
 C2, 0, 1<br>
 C3, 0, 1<br>
 C4, 1, 2<br>
 C5, 1, 1</p>
-<p>Broker 分发消息给消费者的顺序是:C1, C2, C3, C1, C4, C5, C4。| 0 <code>cryptoFailureAction</code>| ConsumerCryptoFailureAction | 当接收到无法解密的消息时,消费者应该采取的行动。</p></li>
+<p>Order in which a broker dispatches messages to consumers is: C1, C2, C3, C1, C4, C5, C4.|0 <code>cryptoFailureAction</code>|ConsumerCryptoFailureAction|Consumer should take action when it receives a message that can not be decrypted.</p></li>
 </ul>
-<pre><code class="hljs">* **FAIL**:这是在加密成功之前对于失败消息采取的默认选项。
-* **DISCARD**:静默地确认消息,而不将消息分发给应用程序。
-* **CONSUME**:向应用程序分发加密的消息。而由应用程序负责解密消息。
+<pre><code class="hljs">* **FAIL**: this is the default option to fail messages until crypto succeeds.
+* **DISCARD**:silently acknowledge and not deliver message to an application.
+* **CONSUME**: deliver encrypted messages to applications. It is the application's responsibility to decrypt the message.
   
 消息解压失败。   
   
-如果消息包含批处理消息,则客户端无法在 batch 中检索单条消息。  
+If messages contain batch messages, a client is not be able to retrieve individual messages in batch.  
   
-分发的加密消息包含 {@link EncryptionContext},其中包含加密和压缩信息,应用程序可以利用这些信息解密消息载荷。| ConsumerCryptoFailureAction.FAIL&lt;/li&gt; `properties`| SortedMap&lt;String, String&gt; | 此消费者的名称或值属性。  
+Delivered encrypted message contains {@link EncryptionContext} which contains encryption and compression information in it using which application can decrypt consumed message payload.|ConsumerCryptoFailureAction.FAIL&lt;/li&gt; `properties`|SortedMap&lt;String, String&gt;|A name or value property of this consumer.  
   
-`properties` 是附加到消费者上的应用程序定义的元数据。   
+`properties` is application defined metadata attached to a consumer.   
   
-获取主题统计信息时,可以将此元数据与消费者统计信息相关联,以便于识别。| new TreeMap&lt;&gt;() `readCompacted`| boolean | 如果启用 `readCompacted`,则消费者从压缩主题中读取消息,而不是读取主题的完整消息 backlog。  
+When getting a topic stats, associate this metadata with the consumer stats for easier identification.|new TreeMap&lt;&gt;() `readCompacted`|boolean|If enabling `readCompacted`, a consumer reads messages from a compacted topic rather than reading a full message backlog of a topic.  
   
-消费者只能看到压缩主题中每个 key 的最新值,直到压缩 backlog 时主题消息中对应的位点。 超过这一位点,消息照常发送。  
+A consumer only sees the latest value for each key in the compacted topic, up until reaching the point in the topic message when compacting backlog. Beyond that point, send messages as normal.  
   
-仅启用 `readCompacted` 在持久化主题的订阅上,持久化主题仅有单个活跃消费者 (类似故障或独占订阅模式)。   
+Only enabling `readCompacted` on subscriptions to persistent topics, which have a single active consumer (like failure or exclusive subscriptions).   
   
-如果试图在非持久化主题或者共享订阅上开启该功能,则会导致订阅调用抛出 `PulsarClientException`。|false `subscriptionInitialPosition`| SubscriptionInitialPosition | 首次订阅主题时游标的初始位置。| SubscriptionInitialPosition.Latest `patternAutoDiscoveryPeriod`| int | 当主题消费者使用模式匹配时,自动发现主题的时间周期。  
+Attempting to enable it on subscriptions to non-persistent topics or on shared subscriptions leads to a subscription call throwing a `PulsarClientException`.|false `subscriptionInitialPosition`|SubscriptionInitialPosition|Initial position at which to set cursor when subscribing to a topic at first time.|SubscriptionInitialPosition.Latest `patternAutoDiscoveryPeriod`|int|Topic auto discovery period when using a pattern for topic's consumer.  
   
-默认值和最小值都为 1 分钟。| 1 `regexSubscriptionMode`| RegexSubscriptionMode | 当使用正则表达式订阅主题时,可以选择特定类型的主题。  
+The default and minimum value is 1 minute.|1 `regexSubscriptionMode`|RegexSubscriptionMode|When subscribing to a topic using a regular expression, you can pick a certain type of topics.  
   
 
 
-* **PersistentOnly**:只订阅持久化主题。
-* **NonPersistentOnly**:只订阅非持久化主题。
-* **AllTopics**:同时订阅持久化和非持久化主题。|RegexSubscriptionMode.PersistentOnly 
-`deadLetterPolicy`| DeadLetterPolicy | 消费者的死信策略。  
+* **PersistentOnly**: only subscribe to persistent topics.
+* **NonPersistentOnly**: only subscribe to non-persistent topics.
+* **AllTopics**: subscribe to both persistent and non-persistent topics.|RegexSubscriptionMode.PersistentOnly 
+`deadLetterPolicy`|DeadLetterPolicy|Dead letter policy for consumers.  
   
-默认情况下,一些消息可能会被多次重传,甚至可能一直重传。  
+By default, some messages are probably redelivered many times, even to the extent that it never stops.  
   
-利用死信机制,可以限制消息的最大重传次数。 **当超过最大重传次数时,消息会被发送到死信主题并自动确认。**.  
+By using the dead letter mechanism, messages have the max redelivery count. **When exceeding the maximum number of redeliveries, messages are sent to the Dead Letter Topic and acknowledged automatically**.  
   
-如果要启动死信机制,可以配置 `deadLetterPolicy`.  
+You can enable the dead letter mechanism by setting `deadLetterPolicy`.  
   
 **示例**  
   
 `client.newConsumer()&lt;br /&gt;.deadLetterPolicy(DeadLetterPolicy.builder().maxRedeliverCount(10).build())&lt;br /&gt;.subscribe();`  
   
-默认的死信主题名称是 `{TopicName}-{Subscription}-DLQ`.  
+Default dead letter topic name is `{TopicName}-{Subscription}-DLQ`.  
   
-设置自定义的死信主题名称:  
+To set a custom dead letter topic name:  
 `client.newConsumer()&lt;br /&gt;.deadLetterPolicy(DeadLetterPolicy.builder().maxRedeliverCount(10)&lt;br /&gt;.deadLetterTopic(&quot;your-topic-name&quot;).build())&lt;br /&gt;.subscribe();`  
   
-如果设置了死信策略,但没有指定 `ackTimeoutMillis`,则可以将确认超时时间设置为 30000 毫秒。| 无 `autoUpdatePartitions`| boolean | 如果 `autoUpdatePartitions` 被启动,则消费者会自动订阅新增分区。  
+When specifying the dead letter policy while not specifying `ackTimeoutMillis`, you can set the ack timeout to 30000 millisecond.|None `autoUpdatePartitions`|boolean|If `autoUpdatePartitions` is enabled, a consumer subscribes to partition increasement automatically.  
   
-**Note**:仅适用于分区消费者。| true `replicateSubscriptionState`| boolean | 如果 `replicateSubscriptionState`  被启动,则订阅状态会被复制到跨地域复制的集群中。| false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` 为一个消费者。| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. You can specify `RedeliveryBackoff` 为一个消费者。| `MultiplierRedeliveryBackoff`
+**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
 
 You can configure parameters if you do not want to use the default configuration. For a full list, see the Javadoc for the {@inject: javadoc:ConsumerBuilder:/client/org/apache/pulsar/client/api/ConsumerBuilder} class.
 
@@ -460,7 +472,7 @@ consumer.acknowledge(messages)
 
 &gt; 注意:
 &gt; 
-&gt; 批量接收策略会限制每个批次中消息的数量和字节大小。可以指定一个超时时间以等待足够的消息。
+&gt; Batch receive policy limits the number and bytes of messages in a single batch. You can specify a timeout to wait for enough messages.
 &gt; 
 &gt; 如果满足以下任一条件,则批量接收完成:足够的消息数量、足够的消息字节数、等待超时。
 &gt; 
@@ -486,7 +498,23 @@ consumer.acknowledge(messages)
 &gt;     .build();
 &gt; ```
 
-### 否定确认重传退避
+### Configure chunking
+
+You can limit the maximum number of chunked messages a consumer maintains concurrently by configuring the `maxPendingChunkedMessage` and `autoAckOldestChunkedMessageOnQueueFull` parameters. When the threshold is reached, the consumer drops pending messages by silently acknowledging them or asking the broker to redeliver them later. The `expireTimeOfIncompleteChunkedMessage` parameter decides the time interval to expire incomplete chunks if the consumer fails to receive all chunks of a me [...]
+
+The following is an example of how to configure message chunking.
+
+```java
+Consumer&lt;byte[]&gt; consumer = client.newConsumer()
+        .topic(topic)
+        .subscriptionName(&quot;test&quot;)
+        .autoAckOldestChunkedMessageOnQueueFull(true)
+        .maxPendingChunkedMessage(100)
+        .expireTimeOfIncompleteChunkedMessage(10, TimeUnit.MINUTES)
+        .subscribe();
+```
+
+### Negative acknowledgment redelivery backoff
 
 The `RedeliveryBackoff` introduces a redelivery backoff mechanism. You can achieve redelivery with different delays by setting `redeliveryCount` of messages.
 
@@ -531,7 +559,7 @@ The message redelivery behavior should be as follows.
 | 7                | 10 + 60 seconds  |
 | 8                | 10 + 60 seconds  |
 
-&gt; **注意** - `negativeAckRedeliveryBackoff` 不适用于 `consumer.negativeAcknowledge(MessageId messageId)`,因为无法通过消息 ID 获取重传次数。 - 如果消费者崩溃,则会触发重传未确认的消息。 In this case, `RedeliveryBackoff` does not take effect and the messages might get redelivered earlier than the delay time from the backoff.
+&gt; **Note** - The `negativeAckRedeliveryBackoff` does not work with `consumer.negativeAcknowledge(MessageId messageId)` because you are not able to get the redelivery count from the message ID. - If a consumer crashes, it triggers the redelivery of unacked messages. In this case, `RedeliveryBackoff` does not take effect and the messages might get redelivered earlier than the delay time from the backoff.
 
 ### 多主题订阅
 
@@ -574,8 +602,8 @@ pulsarClient.newConsumer()
         .subscribe();
 ```
 
-&gt; **注意**  
-&gt; 默认情况下,消费者的 `subscriptionTopicsMode` 是 `PersistentOnly`。 `subscriptionTopicsMode` 的可用选项为: `PersistentOnly`,`NonPersistentOnly`,以及 `AllTopics`。
+&gt; **Note**  
+&gt; By default, the `subscriptionTopicsMode` of the consumer is `PersistentOnly`. `subscriptionTopicsMode` 的可用选项为: `PersistentOnly`,`NonPersistentOnly`,以及 `AllTopics`。
 
 你还可以订阅明确的主题列表 (如果愿意, 可跨命名空间):
 
@@ -845,29 +873,29 @@ When you create a reader, you can use the `loadConf` configuration. The followin
 &lt;/div&gt;
 | Default |\---|\---|\---|\--- `topicName`|String|Topic name. |None `receiverQueueSize`|int|Size of a consumer's receiver queue.  
   
-For example, the number of messages that can be accumulated by a consumer before an application calls ` `.  
+For example, the number of messages that can be accumulated by a consumer before an application calls `Receive`.  
   
 A value higher than the default value increases consumer throughput, though at the expense of more memory utilization.|1000 `readerListener`|ReaderListener&lt;T&gt;|A listener that is called for message received.|None `readerName`|String|Reader name.|null `subscriptionName`|String| Subscription name|When there is a single topic, the default subscription name is `&quot;reader-&quot; + 10-digit UUID`.  
-When there are multiple topics, the default subscription name is `&quot;multiTopicsReader-&quot; + 10-digit UUID`. `subscriptionRolePrefix`|String|Prefix of subscription role. |null `cryptoKeyReader`|CryptoKeyReader|Interface that abstracts the access to a key store.|null `cryptoFailureAction`| ConsumerCryptoFailureAction | 当接收到无法解密的消息时,消费者应该采取的行动。  
+When there are multiple topics, the default subscription name is `&quot;multiTopicsReader-&quot; + 10-digit UUID`. `subscriptionRolePrefix`|String|Prefix of subscription role. |null `cryptoKeyReader`|CryptoKeyReader|Interface that abstracts the access to a key store.|null `cryptoFailureAction`|ConsumerCryptoFailureAction|Consumer should take action when it receives a message that can not be decrypted.  
 
 
-* **FAIL**:这是在加密成功之前对于失败消息采取的默认选项。
+* **FAIL**: this is the default option to fail messages until crypto succeeds.
 * **DISCARD**: silently acknowledge and not deliver message to an application.
-* **CONSUME**:向应用程序分发加密的消息。而由应用程序负责解密消息。
+* **CONSUME**: deliver encrypted messages to applications. It is the application's responsibility to decrypt the message.
   
 消息解压失败。   
   
-如果消息包含批处理消息,则客户端无法在 batch 中检索单条消息。  
+If messages contain batch messages, a client is not be able to retrieve individual messages in batch.  
   
-分发的加密消息包含 {@link EncryptionContext},其中包含加密和压缩信息,应用程序可以利用这些信息解密消息载荷。| ConsumerCryptoFailureAction.FAIL&lt;/li&gt; `readCompacted`| boolean | 如果启用 `readCompacted`, a consumer reads messages from a compacted topic rather than a full message backlog of a topic.  
+Delivered encrypted message contains {@link EncryptionContext} which contains encryption and compression information in it using which application can decrypt consumed message payload.|ConsumerCryptoFailureAction.FAIL&lt;/li&gt; `readCompacted`|boolean|If enabling `readCompacted`, a consumer reads messages from a compacted topic rather than a full message backlog of a topic.  
   
-消费者只能看到压缩主题中每个 key 的最新值,直到压缩 backlog 时主题消息中对应的位点。 超过这一位点,消息照常发送。  
+A consumer only sees the latest value for each key in the compacted topic, up until reaching the point in the topic message when compacting backlog. Beyond that point, send messages as normal.  
   
 `readCompacted` can only be enabled on subscriptions to persistent topics, which have a single active consumer (for example, failure or exclusive subscriptions).   
   
-如果试图在非持久化主题或者共享订阅上开启该功能,则会导致订阅调用抛出 `PulsarClientException`。|false `resetIncludeHead`|boolean|If set to true, the first message to be returned is the one specified by `messageId`.  
+Attempting to enable it on subscriptions to non-persistent topics or on shared subscriptions leads to a subscription call throwing a `PulsarClientException`.|false `resetIncludeHead`|boolean|If set to true, the first message to be returned is the one specified by `messageId`.  
   
-If set to false, the first message to be returned is the one next to the message specified by `messageId`。|false
+If set to false, the first message to be returned is the one next to the message specified by `messageId`.|false
 
 ### Sticky key range reader
 
@@ -1103,7 +1131,7 @@ PulsarClient client = PulsarClient.builder()
     .authentication(auth)
     .build();
 ```</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/client-libraries"><span class="arrow-prev">← </span><span>概述</span></a><a class="docs-next button" href="/docs/zh-CN/next/client-libraries-go"><span>Go</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="#maven">Maven</a></li><li><a href="#gradle">Gradle</a></li></ [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/client-libraries"><span class="arrow-prev">← </span><span>概述</span></a><a class="docs-next button" href="/docs/zh-CN/next/client-libraries-go"><span>Go</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="#maven">Maven</a></li><li><a href="#gradle">Gradle</a></li></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/client-libraries-java/index.html b/content/docs/zh-CN/next/client-libraries-java/index.html
index 96148f6..b10a000 100644
--- a/content/docs/zh-CN/next/client-libraries-java/index.html
+++ b/content/docs/zh-CN/next/client-libraries-java/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java 客户端 · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and \[TableView]\](#tableview) of messages and to perform [adm [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java 客户端 · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and [TableView](#tableview) of messages and to perform [admini [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -75,8 +75,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java 客户端</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
-<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and [TableView]](#tableview) of a Java client are thread-safe.</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java 客户端</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consumer" [...]
+<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and <a href="#tableview">TableView</a> of a Java client are thread-safe.</p>
 <p>Pulsar 客户端的Javadoc 分为如下两个包:</p>
 <table>
 <thead>
@@ -251,13 +251,13 @@ If it is set to <code>false</code>,当传出消息队列已满时, <code>Sen
 <ul>
 <li><p><strong>FAIL</strong>:如果加密失败,则未加密的消息将会发送失败。</p></li>
 <li><p><strong>SEND</strong>:如果加密失败,则未加密的消息将会发送成功。 |
-<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long | 发送消息时的批处理时间。| TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> | int | 一批消息中允许的最大消息个数。| 1000 <code>batchingEnabled</code>| boolean | 启用消息批处理。| true <code>compressionType</code>| CompressionType | 生产者使用的消息数据压缩类型。<br>
-可用选项:</p></li>
+<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long | 发送消息时的批处理时间。| TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> | int | 一批消息中允许的最大消息个数。| 1000 <code>batchingEnabled</code>| boolean | 启用消息批处理。| true <code>chunkingEnabled</code> | boolean | Enable chunking of messages. |false <code>compressionType</code>|CompressionType|Message data compression type used by a producer.<br>
+Available options:</p></li>
 <li><p><a href="https://github.com/lz4/lz4"><code>LZ4</code></a></p></li>
 <li><p><a href="https://zlib.net/"><code>ZLIB</code></a></p>
 <ul>
 <li><a href="https://facebook.github.io/zstd/"><code>ZSTD</code></a></li>
-<li><a href="https://google.github.io/snappy/"><code>SNAPPY</code></a>| 无压缩</p>
+<li><a href="https://google.github.io/snappy/"><code>SNAPPY</code></a>| No compression</p>
 You can configure parameters if you do not want to use the default configuration.</li>
 </ul>
 <p>如需查看所有参数,可参考 <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/ProducerBuilder">ProducerBuilder</a>
@@ -290,12 +290,24 @@ You can configure parameters if you do not want to use the default configuration
     .send();
 </code></pre>
 <p>You can terminate the builder chain with <code>sendAsync()</code> and get a future return.</p>
+<h3><a class="anchor" aria-hidden="true" id="enable-chunking"></a><a href="#enable-chunking" 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>Message <a href="/docs/zh-CN/next/concepts-messaging#chunking">chunking</a> enables Pulsar to process large payload messages by splitting the message into chunks at the producer side and aggregating chunked messages at the consumer side.</p>
+<p>The message chunking feature is OFF by default. The following is an example about how to enable message chunking when creating a producer.</p>
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+        .topic(topic)
+        .enableChunking(<span class="hljs-keyword">true</span>)
+        .enableBatching(<span class="hljs-keyword">false</span>)
+        .create();
+</code></pre>
+<blockquote>
+<p><strong>Note:</strong> To enable chunking, you need to disable batching (<code>enableBatching</code>=<code>false</code>) concurrently.</p>
+</blockquote>
 <h2><a class="anchor" aria-hidden="true" id="消费者consumer"></a><a href="#消费者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 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
 <p>在Pulsar中,消费者订阅topic主题并处理生产者发布到这些主题的消息。 你可以首先实例化一个<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient">PulsarClient</a>
 对象并传递给他一个borker(<a href="#client-configuration">如上所示</a>) URL来实例化一个<a href="/docs/zh-CN/next/reference-terminology#consumer">消费者</a>。</p>
-<p>当 <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient">PulsarClient</a>
- 对象实例化完成后,您可以创建一个 <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/Consumer">Consumer</a>
- 对象,并指定一个 <a href="/docs/zh-CN/next/reference-terminology#topic">主题</a> 和 <a href="/docs/zh-CN/next/concepts-messaging#subscription-types">订阅</a>.</p>
+<p>Once you've instantiated a <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient">PulsarClient</a>
+ object, you can create a <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/Consumer">Consumer</a>
+ by specifying a <a href="/docs/zh-CN/next/reference-terminology#topic">topic</a> and a <a href="/docs/zh-CN/next/concepts-messaging#subscription-types">subscription</a>.</p>
 <pre><code class="hljs css language-java">Consumer consumer = client.newConsumer()
         .topic(<span class="hljs-string">"my-topic"</span>)
         .subscriptionName(<span class="hljs-string">"my-subscription"</span>)
@@ -336,88 +348,88 @@ Consumer consumer = client.newConsumer()
 </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.09 [...]
 <p>If you instantiate a <code>Consumer</code> object by specifying only a topic and subscription name as in the example above, the consumer uses the default configuration.</p>
-<p>当您创建消费者时,可以采用 <code>loadConf</code> 方式进行配置。<code>loadConf</code> 可用的参数如下。</p>
+<p>When you create a consumer, you can use the <code>loadConf</code> configuration. The following parameters are available in <code>loadConf</code>.</p>
 <p>名称 | 类型 |</p>
 <p><div style="width:300px">
 说明
 </div>
-| 默认值 |---|---|---|--- <code>topicNames</code>| Set<String>| 主题名称 | Sets.newTreeSet() <code>topicsPattern</code>| Pattern | 主题模式 | 无 <code>subscriptionName</code>| String | 订阅名称 | 无 <code>subscriptionType</code>| SubscriptionType | 订阅模式<br>
-共有四种订阅模式:</p>
+| 默认值 |---|---|---|--- <code>topicNames</code>| Set<String>| Topic name| Sets.newTreeSet() <code>topicsPattern</code>|Pattern| Topic pattern |None <code>subscriptionName</code>|String| Subscription name| None <code>subscriptionType</code>|SubscriptionType| Subscription type<br>
+Four subscription types are available:</p>
 <ul>
 <li>Exclusive</li>
 <li>Failover(灾备)</li>
 <li>Shared(共享)</li>
-<li>Key_Shared| SubscriptionType.Exclusive
-<code>receiverQueueSize</code> | int | 消费者接收队列的大小。</li>
+<li>Key_Shared|SubscriptionType.Exclusive
+<code>receiverQueueSize</code> |int | Size of a consumer's receiver queue.</li>
 </ul>
-<p>例如,在应用程序调用 Receive 方法之前消费者累积的消息数量。 <code></code>.</p>
-<p>设置为高于默认值会提高消费者吞吐量,但会增加内存开销。| 1000 <code>acknowledgementsGroupTimeMicros</code>| long | 将消费者确认按指定时间分组。</p>
-<p>默认情况下,消费者使用 100ms 分组时间向 broker 发送确认。</p>
-<p>如果分组时间设置为 0,则会立即发送确认。</p>
-<p>分组时间越长则越有效率,而代价是消息失败后的重传次数会略有增加。| TimeUnit.MILLISECONDS.toMicros(100) <code>negativeAckRedeliveryDelayMicros</code>| long | 在重新发送处理失败的消息之前的延迟等待时间。</p>
-<p>当应用程序使用 {@link Consumer#negativeAcknowledge(Message)},失败的消息会在一个固定的超时时间之后重传。| TimeUnit.MINUTES.toMicros(1) <code>maxTotalReceiverQueueSizeAcrossPartitions</code>| int | 跨分区的接收队列最大总长度。</p>
-<p>如果接收队列总长度超过此值,则此设置会降低单个分区的接收队列长度。| 50000 <code>consumerName</code>| String | 消费者名称 | null <code>ackTimeoutMillis</code>| long | 未确认消息的超时时间 | 0 <code>tickDurationMillis</code>| ack-timeout 重传粒度。</p>
-<p>使用更高的 <code>tickDurationMillis</code> 在将确认超时设置为较大值时 (例如1小时),增大 tickDurationMillis 会降低追踪消息是的内存开销。|1000 <code>priorityLevel</code>| int | 在共享订阅模式下,broker 分发消息时给予消费者的优先级别。</p>
-<p>Broker 按照优先级降序排序。例如 0 表示最大优先级,其次是 1,2……</p>
-<p>在共享订阅模式下,broker <strong>优先将消息分发给优先级最高的消费者,只要他们有许可。</strong>否则,broker 会分发给下一个优先级别的消费者。</p>
+<p>For example, the number of messages accumulated by a consumer before an application calls <code>Receive</code>.</p>
+<p>A value higher than the default value increases consumer throughput, though at the expense of more memory utilization.| 1000 <code>acknowledgementsGroupTimeMicros</code>|long|Group a consumer acknowledgment for a specified time.</p>
+<p>By default, a consumer uses 100ms grouping time to send out acknowledgments to a broker.</p>
+<p>Setting a group time of 0 sends out acknowledgments immediately.</p>
+<p>A longer ack group time is more efficient at the expense of a slight increase in message re-deliveries after a failure.|TimeUnit.MILLISECONDS.toMicros(100) <code>negativeAckRedeliveryDelayMicros</code>|long|Delay to wait before redelivering messages that failed to be processed.</p>
+<p>When an application uses {@link Consumer#negativeAcknowledge(Message)}, failed messages are redelivered after a fixed timeout. |TimeUnit.MINUTES.toMicros(1) <code>maxTotalReceiverQueueSizeAcrossPartitions</code>|int |The max total receiver queue size across partitions.</p>
+<p>This setting reduces the receiver queue size for individual partitions if the total receiver queue size exceeds this value.|50000 <code>consumerName</code>|String|Consumer name|null <code>ackTimeoutMillis</code>|long|Timeout of unacked messages|0 <code>tickDurationMillis</code>|long|Granularity of the ack-timeout redelivery.</p>
+<p>Using an higher <code>tickDurationMillis</code> reduces the memory overhead to track messages when setting ack-timeout to a bigger value (for example, 1 hour).|1000 <code>priorityLevel</code>|int|Priority level for a consumer to which a broker gives more priority while dispatching messages in Shared subscription type.</p>
+<p>The broker follows descending priorities. For example, 0=max-priority, 1, 2,...</p>
+<p>In Shared subscription type, the broker <strong>first dispatches messages to the max priority level consumers if they have permits</strong>. Otherwise, the broker considers next priority level consumers.</p>
 <p><strong>示例 1</strong>  <br>
-如果一个订阅有消费者 consumerA <code>priorityLevel</code> 为0,另一个消费者 consumerB <code>priorityLevel</code> 为 1,则 broker <strong>只会向 consumerA 分发消息,直到其用完许可,</strong> 然后才会开始向 consumerB 分发消息。</p>
+If a subscription has consumerA with <code>priorityLevel</code> 0 and consumerB with <code>priorityLevel</code> 1, then the broker <strong>only dispatches messages to consumerA until it runs out permits</strong> and then starts dispatching messages to consumerB.</p>
 <p><strong>示例 2</strong>  <br>
-消费者,优先级别,许可<br>
+Consumer Priority, Level, Permits<br>
 C1, 0, 2<br>
 C2, 0, 1<br>
 C3, 0, 1<br>
 C4, 1, 2<br>
 C5, 1, 1</p>
-<p>Broker 分发消息给消费者的顺序是:C1, C2, C3, C1, C4, C5, C4。| 0 <code>cryptoFailureAction</code>| ConsumerCryptoFailureAction | 当接收到无法解密的消息时,消费者应该采取的行动。</p></li>
+<p>Order in which a broker dispatches messages to consumers is: C1, C2, C3, C1, C4, C5, C4.|0 <code>cryptoFailureAction</code>|ConsumerCryptoFailureAction|Consumer should take action when it receives a message that can not be decrypted.</p></li>
 </ul>
-<pre><code class="hljs">* **FAIL**:这是在加密成功之前对于失败消息采取的默认选项。
-* **DISCARD**:静默地确认消息,而不将消息分发给应用程序。
-* **CONSUME**:向应用程序分发加密的消息。而由应用程序负责解密消息。
+<pre><code class="hljs">* **FAIL**: this is the default option to fail messages until crypto succeeds.
+* **DISCARD**:silently acknowledge and not deliver message to an application.
+* **CONSUME**: deliver encrypted messages to applications. It is the application's responsibility to decrypt the message.
   
 消息解压失败。   
   
-如果消息包含批处理消息,则客户端无法在 batch 中检索单条消息。  
+If messages contain batch messages, a client is not be able to retrieve individual messages in batch.  
   
-分发的加密消息包含 {@link EncryptionContext},其中包含加密和压缩信息,应用程序可以利用这些信息解密消息载荷。| ConsumerCryptoFailureAction.FAIL&lt;/li&gt; `properties`| SortedMap&lt;String, String&gt; | 此消费者的名称或值属性。  
+Delivered encrypted message contains {@link EncryptionContext} which contains encryption and compression information in it using which application can decrypt consumed message payload.|ConsumerCryptoFailureAction.FAIL&lt;/li&gt; `properties`|SortedMap&lt;String, String&gt;|A name or value property of this consumer.  
   
-`properties` 是附加到消费者上的应用程序定义的元数据。   
+`properties` is application defined metadata attached to a consumer.   
   
-获取主题统计信息时,可以将此元数据与消费者统计信息相关联,以便于识别。| new TreeMap&lt;&gt;() `readCompacted`| boolean | 如果启用 `readCompacted`,则消费者从压缩主题中读取消息,而不是读取主题的完整消息 backlog。  
+When getting a topic stats, associate this metadata with the consumer stats for easier identification.|new TreeMap&lt;&gt;() `readCompacted`|boolean|If enabling `readCompacted`, a consumer reads messages from a compacted topic rather than reading a full message backlog of a topic.  
   
-消费者只能看到压缩主题中每个 key 的最新值,直到压缩 backlog 时主题消息中对应的位点。 超过这一位点,消息照常发送。  
+A consumer only sees the latest value for each key in the compacted topic, up until reaching the point in the topic message when compacting backlog. Beyond that point, send messages as normal.  
   
-仅启用 `readCompacted` 在持久化主题的订阅上,持久化主题仅有单个活跃消费者 (类似故障或独占订阅模式)。   
+Only enabling `readCompacted` on subscriptions to persistent topics, which have a single active consumer (like failure or exclusive subscriptions).   
   
-如果试图在非持久化主题或者共享订阅上开启该功能,则会导致订阅调用抛出 `PulsarClientException`。|false `subscriptionInitialPosition`| SubscriptionInitialPosition | 首次订阅主题时游标的初始位置。| SubscriptionInitialPosition.Latest `patternAutoDiscoveryPeriod`| int | 当主题消费者使用模式匹配时,自动发现主题的时间周期。  
+Attempting to enable it on subscriptions to non-persistent topics or on shared subscriptions leads to a subscription call throwing a `PulsarClientException`.|false `subscriptionInitialPosition`|SubscriptionInitialPosition|Initial position at which to set cursor when subscribing to a topic at first time.|SubscriptionInitialPosition.Latest `patternAutoDiscoveryPeriod`|int|Topic auto discovery period when using a pattern for topic's consumer.  
   
-默认值和最小值都为 1 分钟。| 1 `regexSubscriptionMode`| RegexSubscriptionMode | 当使用正则表达式订阅主题时,可以选择特定类型的主题。  
+The default and minimum value is 1 minute.|1 `regexSubscriptionMode`|RegexSubscriptionMode|When subscribing to a topic using a regular expression, you can pick a certain type of topics.  
   
 
 
-* **PersistentOnly**:只订阅持久化主题。
-* **NonPersistentOnly**:只订阅非持久化主题。
-* **AllTopics**:同时订阅持久化和非持久化主题。|RegexSubscriptionMode.PersistentOnly 
-`deadLetterPolicy`| DeadLetterPolicy | 消费者的死信策略。  
+* **PersistentOnly**: only subscribe to persistent topics.
+* **NonPersistentOnly**: only subscribe to non-persistent topics.
+* **AllTopics**: subscribe to both persistent and non-persistent topics.|RegexSubscriptionMode.PersistentOnly 
+`deadLetterPolicy`|DeadLetterPolicy|Dead letter policy for consumers.  
   
-默认情况下,一些消息可能会被多次重传,甚至可能一直重传。  
+By default, some messages are probably redelivered many times, even to the extent that it never stops.  
   
-利用死信机制,可以限制消息的最大重传次数。 **当超过最大重传次数时,消息会被发送到死信主题并自动确认。**.  
+By using the dead letter mechanism, messages have the max redelivery count. **When exceeding the maximum number of redeliveries, messages are sent to the Dead Letter Topic and acknowledged automatically**.  
   
-如果要启动死信机制,可以配置 `deadLetterPolicy`.  
+You can enable the dead letter mechanism by setting `deadLetterPolicy`.  
   
 **示例**  
   
 `client.newConsumer()&lt;br /&gt;.deadLetterPolicy(DeadLetterPolicy.builder().maxRedeliverCount(10).build())&lt;br /&gt;.subscribe();`  
   
-默认的死信主题名称是 `{TopicName}-{Subscription}-DLQ`.  
+Default dead letter topic name is `{TopicName}-{Subscription}-DLQ`.  
   
-设置自定义的死信主题名称:  
+To set a custom dead letter topic name:  
 `client.newConsumer()&lt;br /&gt;.deadLetterPolicy(DeadLetterPolicy.builder().maxRedeliverCount(10)&lt;br /&gt;.deadLetterTopic(&quot;your-topic-name&quot;).build())&lt;br /&gt;.subscribe();`  
   
-如果设置了死信策略,但没有指定 `ackTimeoutMillis`,则可以将确认超时时间设置为 30000 毫秒。| 无 `autoUpdatePartitions`| boolean | 如果 `autoUpdatePartitions` 被启动,则消费者会自动订阅新增分区。  
+When specifying the dead letter policy while not specifying `ackTimeoutMillis`, you can set the ack timeout to 30000 millisecond.|None `autoUpdatePartitions`|boolean|If `autoUpdatePartitions` is enabled, a consumer subscribes to partition increasement automatically.  
   
-**Note**:仅适用于分区消费者。| true `replicateSubscriptionState`| boolean | 如果 `replicateSubscriptionState`  被启动,则订阅状态会被复制到跨地域复制的集群中。| false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` 为一个消费者。| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. You can specify `RedeliveryBackoff` 为一个消费者。| `MultiplierRedeliveryBackoff`
+**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
 
 You can configure parameters if you do not want to use the default configuration. For a full list, see the Javadoc for the {@inject: javadoc:ConsumerBuilder:/client/org/apache/pulsar/client/api/ConsumerBuilder} class.
 
@@ -460,7 +472,7 @@ consumer.acknowledge(messages)
 
 &gt; 注意:
 &gt; 
-&gt; 批量接收策略会限制每个批次中消息的数量和字节大小。可以指定一个超时时间以等待足够的消息。
+&gt; Batch receive policy limits the number and bytes of messages in a single batch. You can specify a timeout to wait for enough messages.
 &gt; 
 &gt; 如果满足以下任一条件,则批量接收完成:足够的消息数量、足够的消息字节数、等待超时。
 &gt; 
@@ -486,7 +498,23 @@ consumer.acknowledge(messages)
 &gt;     .build();
 &gt; ```
 
-### 否定确认重传退避
+### Configure chunking
+
+You can limit the maximum number of chunked messages a consumer maintains concurrently by configuring the `maxPendingChunkedMessage` and `autoAckOldestChunkedMessageOnQueueFull` parameters. When the threshold is reached, the consumer drops pending messages by silently acknowledging them or asking the broker to redeliver them later. The `expireTimeOfIncompleteChunkedMessage` parameter decides the time interval to expire incomplete chunks if the consumer fails to receive all chunks of a me [...]
+
+The following is an example of how to configure message chunking.
+
+```java
+Consumer&lt;byte[]&gt; consumer = client.newConsumer()
+        .topic(topic)
+        .subscriptionName(&quot;test&quot;)
+        .autoAckOldestChunkedMessageOnQueueFull(true)
+        .maxPendingChunkedMessage(100)
+        .expireTimeOfIncompleteChunkedMessage(10, TimeUnit.MINUTES)
+        .subscribe();
+```
+
+### Negative acknowledgment redelivery backoff
 
 The `RedeliveryBackoff` introduces a redelivery backoff mechanism. You can achieve redelivery with different delays by setting `redeliveryCount` of messages.
 
@@ -531,7 +559,7 @@ The message redelivery behavior should be as follows.
 | 7                | 10 + 60 seconds  |
 | 8                | 10 + 60 seconds  |
 
-&gt; **注意** - `negativeAckRedeliveryBackoff` 不适用于 `consumer.negativeAcknowledge(MessageId messageId)`,因为无法通过消息 ID 获取重传次数。 - 如果消费者崩溃,则会触发重传未确认的消息。 In this case, `RedeliveryBackoff` does not take effect and the messages might get redelivered earlier than the delay time from the backoff.
+&gt; **Note** - The `negativeAckRedeliveryBackoff` does not work with `consumer.negativeAcknowledge(MessageId messageId)` because you are not able to get the redelivery count from the message ID. - If a consumer crashes, it triggers the redelivery of unacked messages. In this case, `RedeliveryBackoff` does not take effect and the messages might get redelivered earlier than the delay time from the backoff.
 
 ### 多主题订阅
 
@@ -574,8 +602,8 @@ pulsarClient.newConsumer()
         .subscribe();
 ```
 
-&gt; **注意**  
-&gt; 默认情况下,消费者的 `subscriptionTopicsMode` 是 `PersistentOnly`。 `subscriptionTopicsMode` 的可用选项为: `PersistentOnly`,`NonPersistentOnly`,以及 `AllTopics`。
+&gt; **Note**  
+&gt; By default, the `subscriptionTopicsMode` of the consumer is `PersistentOnly`. `subscriptionTopicsMode` 的可用选项为: `PersistentOnly`,`NonPersistentOnly`,以及 `AllTopics`。
 
 你还可以订阅明确的主题列表 (如果愿意, 可跨命名空间):
 
@@ -845,29 +873,29 @@ When you create a reader, you can use the `loadConf` configuration. The followin
 &lt;/div&gt;
 | Default |\---|\---|\---|\--- `topicName`|String|Topic name. |None `receiverQueueSize`|int|Size of a consumer's receiver queue.  
   
-For example, the number of messages that can be accumulated by a consumer before an application calls ` `.  
+For example, the number of messages that can be accumulated by a consumer before an application calls `Receive`.  
   
 A value higher than the default value increases consumer throughput, though at the expense of more memory utilization.|1000 `readerListener`|ReaderListener&lt;T&gt;|A listener that is called for message received.|None `readerName`|String|Reader name.|null `subscriptionName`|String| Subscription name|When there is a single topic, the default subscription name is `&quot;reader-&quot; + 10-digit UUID`.  
-When there are multiple topics, the default subscription name is `&quot;multiTopicsReader-&quot; + 10-digit UUID`. `subscriptionRolePrefix`|String|Prefix of subscription role. |null `cryptoKeyReader`|CryptoKeyReader|Interface that abstracts the access to a key store.|null `cryptoFailureAction`| ConsumerCryptoFailureAction | 当接收到无法解密的消息时,消费者应该采取的行动。  
+When there are multiple topics, the default subscription name is `&quot;multiTopicsReader-&quot; + 10-digit UUID`. `subscriptionRolePrefix`|String|Prefix of subscription role. |null `cryptoKeyReader`|CryptoKeyReader|Interface that abstracts the access to a key store.|null `cryptoFailureAction`|ConsumerCryptoFailureAction|Consumer should take action when it receives a message that can not be decrypted.  
 
 
-* **FAIL**:这是在加密成功之前对于失败消息采取的默认选项。
+* **FAIL**: this is the default option to fail messages until crypto succeeds.
 * **DISCARD**: silently acknowledge and not deliver message to an application.
-* **CONSUME**:向应用程序分发加密的消息。而由应用程序负责解密消息。
+* **CONSUME**: deliver encrypted messages to applications. It is the application's responsibility to decrypt the message.
   
 消息解压失败。   
   
-如果消息包含批处理消息,则客户端无法在 batch 中检索单条消息。  
+If messages contain batch messages, a client is not be able to retrieve individual messages in batch.  
   
-分发的加密消息包含 {@link EncryptionContext},其中包含加密和压缩信息,应用程序可以利用这些信息解密消息载荷。| ConsumerCryptoFailureAction.FAIL&lt;/li&gt; `readCompacted`| boolean | 如果启用 `readCompacted`, a consumer reads messages from a compacted topic rather than a full message backlog of a topic.  
+Delivered encrypted message contains {@link EncryptionContext} which contains encryption and compression information in it using which application can decrypt consumed message payload.|ConsumerCryptoFailureAction.FAIL&lt;/li&gt; `readCompacted`|boolean|If enabling `readCompacted`, a consumer reads messages from a compacted topic rather than a full message backlog of a topic.  
   
-消费者只能看到压缩主题中每个 key 的最新值,直到压缩 backlog 时主题消息中对应的位点。 超过这一位点,消息照常发送。  
+A consumer only sees the latest value for each key in the compacted topic, up until reaching the point in the topic message when compacting backlog. Beyond that point, send messages as normal.  
   
 `readCompacted` can only be enabled on subscriptions to persistent topics, which have a single active consumer (for example, failure or exclusive subscriptions).   
   
-如果试图在非持久化主题或者共享订阅上开启该功能,则会导致订阅调用抛出 `PulsarClientException`。|false `resetIncludeHead`|boolean|If set to true, the first message to be returned is the one specified by `messageId`.  
+Attempting to enable it on subscriptions to non-persistent topics or on shared subscriptions leads to a subscription call throwing a `PulsarClientException`.|false `resetIncludeHead`|boolean|If set to true, the first message to be returned is the one specified by `messageId`.  
   
-If set to false, the first message to be returned is the one next to the message specified by `messageId`。|false
+If set to false, the first message to be returned is the one next to the message specified by `messageId`.|false
 
 ### Sticky key range reader
 
@@ -1103,7 +1131,7 @@ PulsarClient client = PulsarClient.builder()
     .authentication(auth)
     .build();
 ```</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/client-libraries"><span class="arrow-prev">← </span><span>概述</span></a><a class="docs-next button" href="/docs/zh-CN/next/client-libraries-go"><span>Go</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="#maven">Maven</a></li><li><a href="#gradle">Gradle</a></li></ [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/client-libraries"><span class="arrow-prev">← </span><span>概述</span></a><a class="docs-next button" href="/docs/zh-CN/next/client-libraries-go"><span>Go</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="#maven">Maven</a></li><li><a href="#gradle">Gradle</a></li></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/concepts-architecture-overview.html b/content/docs/zh-CN/next/concepts-architecture-overview.html
index 2ccaf49..8de99eb 100644
--- a/content/docs/zh-CN/next/concepts-architecture-overview.html
+++ b/content/docs/zh-CN/next/concepts-architecture-overview.html
@@ -110,6 +110,9 @@
 </blockquote>
 <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.09 [...]
 <p>Pulsar 元数据存储维护 Pulsar 集群的全部元数据,比如主题元数据、Schema、Broker 负载数据等等。 Pulsar 使用 <a href="https://zookeeper.apache.org/">Apache ZooKeeper</a> 进行元数据存储、集群配置和协调。 Pulsar 元数据存储可以部署在单独的 ZooKeeper 集群或者是部署在已有的 ZooKeeper 集群。 你可以将 ZooKeeper 用作 Pulsar 元数据存储和 <a href="https://bookkeeper.apache.org/docs/latest/getting-started/concepts/#metadata-storage">BookKeeper 元数据存储</a>。 如果想将部署的 Pulsar broker 连接到一个已有的 BookKeeper 集群,你需要部署单独的 ZooKeeper 集群分别用作 Pulsar 元数据存储和 BookKeeper 元数据存储。</p>
+<blockquote>
+<p>Pulsar also supports more metadata backend services, including <a href="https://etcd.io/">ETCD</a> and <a href="http://rocksdb.org/">RocksDB</a> (for standalone Pulsar only).</p>
+</blockquote>
 <p>在 Pulsar 实例中:</p>
 <ul>
 <li>配置存储 Quorum 存储了租户、命名空间和其他需要全局一致的配置项。</li>
@@ -188,7 +191,7 @@
 client = Client(<span class="hljs-string">'pulsar://pulsar-cluster.acme.com:6650'</span>)
 </code></pre>
 <blockquote>
-<p><strong>注意</strong> 在Pulsar中,每个主题只由一个 broker 处理。 客户端发出的读取,更新或删除主题的初始请求将发送给可能不是处理该主题的 broker 。 如果这个 broker 不能处理该主题的请求,broker 将会把该请求重定向到可以处理主题请求的 broker。</p>
+<p><strong>Note</strong> In Pulsar, each topic is handled by only one broker. 客户端发出的读取,更新或删除主题的初始请求将发送给可能不是处理该主题的 broker 。 如果这个 broker 不能处理该主题的请求,broker 将会把该请求重定向到可以处理主题请求的 broker。</p>
 </blockquote>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/concepts-messaging"><span class="arrow-prev">← </span><span>消息</span></a><a class="docs-next button" href="/docs/zh-CN/next/concepts-clients"><span>客户端</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#集群">集群</a></li><li><a href="#元数据存储">元数据存储</a></li><li><a href="#配置存储co [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/zh-CN/next/concepts-architecture-overview/index.html b/content/docs/zh-CN/next/concepts-architecture-overview/index.html
index 2ccaf49..8de99eb 100644
--- a/content/docs/zh-CN/next/concepts-architecture-overview/index.html
+++ b/content/docs/zh-CN/next/concepts-architecture-overview/index.html
@@ -110,6 +110,9 @@
 </blockquote>
 <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.09 [...]
 <p>Pulsar 元数据存储维护 Pulsar 集群的全部元数据,比如主题元数据、Schema、Broker 负载数据等等。 Pulsar 使用 <a href="https://zookeeper.apache.org/">Apache ZooKeeper</a> 进行元数据存储、集群配置和协调。 Pulsar 元数据存储可以部署在单独的 ZooKeeper 集群或者是部署在已有的 ZooKeeper 集群。 你可以将 ZooKeeper 用作 Pulsar 元数据存储和 <a href="https://bookkeeper.apache.org/docs/latest/getting-started/concepts/#metadata-storage">BookKeeper 元数据存储</a>。 如果想将部署的 Pulsar broker 连接到一个已有的 BookKeeper 集群,你需要部署单独的 ZooKeeper 集群分别用作 Pulsar 元数据存储和 BookKeeper 元数据存储。</p>
+<blockquote>
+<p>Pulsar also supports more metadata backend services, including <a href="https://etcd.io/">ETCD</a> and <a href="http://rocksdb.org/">RocksDB</a> (for standalone Pulsar only).</p>
+</blockquote>
 <p>在 Pulsar 实例中:</p>
 <ul>
 <li>配置存储 Quorum 存储了租户、命名空间和其他需要全局一致的配置项。</li>
@@ -188,7 +191,7 @@
 client = Client(<span class="hljs-string">'pulsar://pulsar-cluster.acme.com:6650'</span>)
 </code></pre>
 <blockquote>
-<p><strong>注意</strong> 在Pulsar中,每个主题只由一个 broker 处理。 客户端发出的读取,更新或删除主题的初始请求将发送给可能不是处理该主题的 broker 。 如果这个 broker 不能处理该主题的请求,broker 将会把该请求重定向到可以处理主题请求的 broker。</p>
+<p><strong>Note</strong> In Pulsar, each topic is handled by only one broker. 客户端发出的读取,更新或删除主题的初始请求将发送给可能不是处理该主题的 broker 。 如果这个 broker 不能处理该主题的请求,broker 将会把该请求重定向到可以处理主题请求的 broker。</p>
 </blockquote>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/concepts-messaging"><span class="arrow-prev">← </span><span>消息</span></a><a class="docs-next button" href="/docs/zh-CN/next/concepts-clients"><span>客户端</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#集群">集群</a></li><li><a href="#元数据存储">元数据存储</a></li><li><a href="#配置存储co [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/zh-CN/next/schema-evolution-compatibility.html b/content/docs/zh-CN/next/schema-evolution-compatibility.html
index a81f23ed..c1095b3 100644
--- a/content/docs/zh-CN/next/schema-evolution-compatibility.html
+++ b/content/docs/zh-CN/next/schema-evolution-compatibility.html
@@ -429,7 +429,7 @@
 <p>在某些数据格式中(例如:Avro),可以使用默认值来定义字段。 这样,添加或删除这些字段的更改是完全可兼容的。</p>
 <blockquote>
 <p><strong>提示</strong></p>
-<p>You can set schema compatibility check strategy at namespace or broker level. For how to set the strategy, see <a href="/docs/zh-CN/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
+<p>You can set schema compatibility check strategy at the topic, namespace or broker level. For how to set the strategy, see <a href="/docs/zh-CN/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="schema-验证"></a><a href="#schema-验证" 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>当 producer 或 consumer 尝试连接到某个 topic 时,broker 会进行检查以验证 schema。</p>
diff --git a/content/docs/zh-CN/next/schema-evolution-compatibility/index.html b/content/docs/zh-CN/next/schema-evolution-compatibility/index.html
index a81f23ed..c1095b3 100644
--- a/content/docs/zh-CN/next/schema-evolution-compatibility/index.html
+++ b/content/docs/zh-CN/next/schema-evolution-compatibility/index.html
@@ -429,7 +429,7 @@
 <p>在某些数据格式中(例如:Avro),可以使用默认值来定义字段。 这样,添加或删除这些字段的更改是完全可兼容的。</p>
 <blockquote>
 <p><strong>提示</strong></p>
-<p>You can set schema compatibility check strategy at namespace or broker level. For how to set the strategy, see <a href="/docs/zh-CN/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
+<p>You can set schema compatibility check strategy at the topic, namespace or broker level. For how to set the strategy, see <a href="/docs/zh-CN/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="schema-验证"></a><a href="#schema-验证" 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>当 producer 或 consumer 尝试连接到某个 topic 时,broker 会进行检查以验证 schema。</p>
diff --git a/content/docs/zh-CN/next/standalone.html b/content/docs/zh-CN/next/standalone.html
index 5a1d464..5aeb3e8 100644
--- a/content/docs/zh-CN/next/standalone.html
+++ b/content/docs/zh-CN/next/standalone.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>在本地机器中配置单机 Pulsar · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="可以通过运行单机模式 Pulsar 进行本地开发和测试。 单机模式的 Pulsar 需有 Pulsar broker、必要的 ZooKeeper 和 BookKeeper 组件,在单独的 Java 虚拟机(JVM)中运行。"/><meta name="docsearch:version" content="next"/><meta name="docs [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>在本地机器中配置单机 Pulsar · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="可以通过运行单机模式 Pulsar 进行本地开发和测试。 The standalone mode includes a Pulsar broker, the necessary [RocksDB](http://rocksdb.org/) and BookKeeper components running inside of a single Java [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -75,7 +75,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">在本地机器中配置单机 Pulsar</h1></header><article><div><span><p>可以通过运行单机模式 Pulsar 进行本地开发和测试。 单机模式的 Pulsar 需有 Pulsar broker、必要的 ZooKeeper 和 BookKeeper 组件,在单独的 Java 虚拟机( [...]
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">在本地机器中配置单机 Pulsar</h1></header><article><div><span><p>可以通过运行单机模式 Pulsar 进行本地开发和测试。 The standalone mode includes a Pulsar broker, the necessary <a href="http: [...]
 <blockquote>
 <p><strong>Pulsar in production?</strong>  <br>
 If you're looking to run a full production Pulsar installation, see the <a href="/docs/zh-CN/next/deploy-bare-metal">Deploying a Pulsar instance</a> guide.</p>
@@ -112,7 +112,8 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 </thead>
 <tbody>
 <tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left">Pulsar的命令行工具,比如 <a href="/docs/zh-CN/next/reference-cli-tools#pulsar"><code>pulsar</code></a> 和 <a href="https://pulsar.apache.org/tools/pulsar-admin/"><code>pulsar-admin</code></a>.</td></tr>
-<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Pulsar 的配置文件,包含 <a href="/docs/zh-CN/next/reference-configuration#broker">broker 配置</a>、<a href="/docs/zh-CN/next/reference-configuration#zookeeper">ZooKeeper 配置</a>等。</td></tr>
+<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including <a href="/docs/zh-CN/next/reference-configuration#broker">broker configuration</a> and more.</td></tr>
+<tr><td style="text-align:left"><strong>Note:</strong> Pulsar standalone uses RocksDB as the local metadata store and its configuration file path <a href="/docs/zh-CN/next/reference-configuration"><code>metadataStoreConfigPath</code></a> is configurable in the <code>standalone.conf</code> file. For more information about the configurations of RocksDB, see <a href="https://github.com/facebook/rocksdb/blob/main/examples/rocksdb_option_file_example.ini">here</a> and related <a href="https:/ [...]
 <tr><td style="text-align:left"><code>examples</code></td><td style="text-align:left">Java JAR 包,包含 <a href="/docs/zh-CN/next/functions-overview">Pulsar Functions</a> 的示例。</td></tr>
 <tr><td style="text-align:left"><code>instances</code></td><td style="text-align:left">为 <a href="/docs/zh-CN/next/functions-overview">Pulsar Functions</a> 创建的组件。</td></tr>
 <tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">Pulsar使用到的<a href="https://en.wikipedia.org/wiki/JAR_(file_format)"> JAR </a>文件</td></tr>
@@ -125,7 +126,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 <tr><th style="text-align:left">目录</th><th style="text-align:left">内容</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">ZooKeeper 和 BookKeeper 使用的数据存储目录。</td></tr>
+<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by RocksDB and BookKeeper.</td></tr>
 <tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">安装时生成的日志文件</td></tr>
 </tbody>
 </table>
diff --git a/content/docs/zh-CN/next/standalone/index.html b/content/docs/zh-CN/next/standalone/index.html
index 5a1d464..5aeb3e8 100644
--- a/content/docs/zh-CN/next/standalone/index.html
+++ b/content/docs/zh-CN/next/standalone/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>在本地机器中配置单机 Pulsar · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="可以通过运行单机模式 Pulsar 进行本地开发和测试。 单机模式的 Pulsar 需有 Pulsar broker、必要的 ZooKeeper 和 BookKeeper 组件,在单独的 Java 虚拟机(JVM)中运行。"/><meta name="docsearch:version" content="next"/><meta name="docs [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>在本地机器中配置单机 Pulsar · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="可以通过运行单机模式 Pulsar 进行本地开发和测试。 The standalone mode includes a Pulsar broker, the necessary [RocksDB](http://rocksdb.org/) and BookKeeper components running inside of a single Java [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -75,7 +75,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">在本地机器中配置单机 Pulsar</h1></header><article><div><span><p>可以通过运行单机模式 Pulsar 进行本地开发和测试。 单机模式的 Pulsar 需有 Pulsar broker、必要的 ZooKeeper 和 BookKeeper 组件,在单独的 Java 虚拟机( [...]
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">在本地机器中配置单机 Pulsar</h1></header><article><div><span><p>可以通过运行单机模式 Pulsar 进行本地开发和测试。 The standalone mode includes a Pulsar broker, the necessary <a href="http: [...]
 <blockquote>
 <p><strong>Pulsar in production?</strong>  <br>
 If you're looking to run a full production Pulsar installation, see the <a href="/docs/zh-CN/next/deploy-bare-metal">Deploying a Pulsar instance</a> guide.</p>
@@ -112,7 +112,8 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 </thead>
 <tbody>
 <tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left">Pulsar的命令行工具,比如 <a href="/docs/zh-CN/next/reference-cli-tools#pulsar"><code>pulsar</code></a> 和 <a href="https://pulsar.apache.org/tools/pulsar-admin/"><code>pulsar-admin</code></a>.</td></tr>
-<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Pulsar 的配置文件,包含 <a href="/docs/zh-CN/next/reference-configuration#broker">broker 配置</a>、<a href="/docs/zh-CN/next/reference-configuration#zookeeper">ZooKeeper 配置</a>等。</td></tr>
+<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including <a href="/docs/zh-CN/next/reference-configuration#broker">broker configuration</a> and more.</td></tr>
+<tr><td style="text-align:left"><strong>Note:</strong> Pulsar standalone uses RocksDB as the local metadata store and its configuration file path <a href="/docs/zh-CN/next/reference-configuration"><code>metadataStoreConfigPath</code></a> is configurable in the <code>standalone.conf</code> file. For more information about the configurations of RocksDB, see <a href="https://github.com/facebook/rocksdb/blob/main/examples/rocksdb_option_file_example.ini">here</a> and related <a href="https:/ [...]
 <tr><td style="text-align:left"><code>examples</code></td><td style="text-align:left">Java JAR 包,包含 <a href="/docs/zh-CN/next/functions-overview">Pulsar Functions</a> 的示例。</td></tr>
 <tr><td style="text-align:left"><code>instances</code></td><td style="text-align:left">为 <a href="/docs/zh-CN/next/functions-overview">Pulsar Functions</a> 创建的组件。</td></tr>
 <tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">Pulsar使用到的<a href="https://en.wikipedia.org/wiki/JAR_(file_format)"> JAR </a>文件</td></tr>
@@ -125,7 +126,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 <tr><th style="text-align:left">目录</th><th style="text-align:left">内容</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">ZooKeeper 和 BookKeeper 使用的数据存储目录。</td></tr>
+<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by RocksDB and BookKeeper.</td></tr>
 <tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">安装时生成的日志文件</td></tr>
 </tbody>
 </table>
diff --git a/content/docs/zh-TW/next/client-libraries-java.html b/content/docs/zh-TW/next/client-libraries-java.html
index f935e18..2e12751 100644
--- a/content/docs/zh-TW/next/client-libraries-java.html
+++ b/content/docs/zh-TW/next/client-libraries-java.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-TW"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and \[TableView]\](#tableview) of messages and to perform [ [...]
+<!DOCTYPE html><html lang="zh-TW"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and [TableView](#tableview) of messages and to perform [adm [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,8 +74,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-TW" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consum [...]
-<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and [TableView]](#tableview) of a Java client are thread-safe.</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-TW" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consum [...]
+<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and <a href="#tableview">TableView</a> of a Java client are thread-safe.</p>
 <p>Javadoc for the Pulsar client is divided into two domains by package as follows.</p>
 <table>
 <thead>
@@ -250,7 +250,7 @@ Available options are as follows:</li>
 <ul>
 <li><p><strong>FAIL</strong>: if encryption fails, unencrypted messages fail to send.</p></li>
 <li><p><strong>SEND</strong>: if encryption fails, unencrypted messages are sent. |
-<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>compressionType</code>|CompressionType|Message data compression type used by a producer.<br>
+<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>chunkingEnabled</code> | boolean | Enable chunking of messages. |false <code>compressionType</code>|CompressionType|Message data compression type  [...]
 Available options:</p></li>
 <li><p><a href="https://github.com/lz4/lz4"><code>LZ4</code></a></p></li>
 <li><p><a href="https://zlib.net/"><code>ZLIB</code></a></p>
@@ -289,6 +289,18 @@ You can configure parameters if you do not want to use the default configuration
     .send();
 </code></pre>
 <p>You can terminate the builder chain with <code>sendAsync()</code> and get a future return.</p>
+<h3><a class="anchor" aria-hidden="true" id="enable-chunking"></a><a href="#enable-chunking" 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>Message <a href="/docs/zh-TW/next/concepts-messaging#chunking">chunking</a> enables Pulsar to process large payload messages by splitting the message into chunks at the producer side and aggregating chunked messages at the consumer side.</p>
+<p>The message chunking feature is OFF by default. The following is an example about how to enable message chunking when creating a producer.</p>
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+        .topic(topic)
+        .enableChunking(<span class="hljs-keyword">true</span>)
+        .enableBatching(<span class="hljs-keyword">false</span>)
+        .create();
+</code></pre>
+<blockquote>
+<p><strong>Note:</strong> To enable chunking, you need to disable batching (<code>enableBatching</code>=<code>false</code>) concurrently.</p>
+</blockquote>
 <h2><a class="anchor" aria-hidden="true" id="consumer"></a><a href="#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 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>In Pulsar, consumers subscribe to topics and handle messages that producers publish to those topics. You can instantiate a new <a href="/docs/zh-TW/next/reference-terminology#consumer">consumer</a> by first instantiating a <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient">PulsarClient</a>
  object and passing it a URL for a Pulsar broker (as <a href="#client-configuration">above</a>).</p>
@@ -416,7 +428,7 @@ To set a custom dead letter topic name:
   
 When specifying the dead letter policy while not specifying `ackTimeoutMillis`, you can set the ack timeout to 30000 millisecond.|None `autoUpdatePartitions`|boolean|If `autoUpdatePartitions` is enabled, a consumer subscribes to partition increasement automatically.  
   
-**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
+**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
 
 You can configure parameters if you do not want to use the default configuration. For a full list, see the Javadoc for the {@inject: javadoc:ConsumerBuilder:/client/org/apache/pulsar/client/api/ConsumerBuilder} class.
 
@@ -485,6 +497,22 @@ consumer.acknowledge(messages)
 &gt;     .build();
 &gt; ```
 
+### Configure chunking
+
+You can limit the maximum number of chunked messages a consumer maintains concurrently by configuring the `maxPendingChunkedMessage` and `autoAckOldestChunkedMessageOnQueueFull` parameters. When the threshold is reached, the consumer drops pending messages by silently acknowledging them or asking the broker to redeliver them later. The `expireTimeOfIncompleteChunkedMessage` parameter decides the time interval to expire incomplete chunks if the consumer fails to receive all chunks of a me [...]
+
+The following is an example of how to configure message chunking.
+
+```java
+Consumer&lt;byte[]&gt; consumer = client.newConsumer()
+        .topic(topic)
+        .subscriptionName(&quot;test&quot;)
+        .autoAckOldestChunkedMessageOnQueueFull(true)
+        .maxPendingChunkedMessage(100)
+        .expireTimeOfIncompleteChunkedMessage(10, TimeUnit.MINUTES)
+        .subscribe();
+```
+
 ### Negative acknowledgment redelivery backoff
 
 The `RedeliveryBackoff` introduces a redelivery backoff mechanism. You can achieve redelivery with different delays by setting `redeliveryCount` of messages.
@@ -1102,7 +1130,7 @@ PulsarClient client = PulsarClient.builder()
     .authentication(auth)
     .build();
 ```</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-TW/next/client-libraries"><span class="arrow-prev">← </span><span>Overview</span></a><a class="docs-next button" href="/docs/zh-TW/next/client-libraries-go"><span>Go</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href=" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-TW/next/client-libraries"><span class="arrow-prev">← </span><span>Overview</span></a><a class="docs-next button" href="/docs/zh-TW/next/client-libraries-go"><span>Go</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-TW/next/client-libraries-java/index.html b/content/docs/zh-TW/next/client-libraries-java/index.html
index f935e18..2e12751 100644
--- a/content/docs/zh-TW/next/client-libraries-java/index.html
+++ b/content/docs/zh-TW/next/client-libraries-java/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-TW"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and \[TableView]\](#tableview) of messages and to perform [ [...]
+<!DOCTYPE html><html lang="zh-TW"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Java client · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use a Pulsar Java client to create the Java [producer](#producer), [consumer](#consumer), [readers](#reader) and [TableView](#tableview) of messages and to perform [adm [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,8 +74,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-TW" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consum [...]
-<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and [TableView]](#tableview) of a Java client are thread-safe.</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-TW" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Java client</h1></header><article><div><span><p>You can use a Pulsar Java client to create the Java <a href="#producer">producer</a>, <a href="#consum [...]
+<p>All the methods in <a href="#producer">producer</a>, <a href="#consumer">consumer</a>, <a href="#reader">readers</a> and <a href="#tableview">TableView</a> of a Java client are thread-safe.</p>
 <p>Javadoc for the Pulsar client is divided into two domains by package as follows.</p>
 <table>
 <thead>
@@ -250,7 +250,7 @@ Available options are as follows:</li>
 <ul>
 <li><p><strong>FAIL</strong>: if encryption fails, unencrypted messages fail to send.</p></li>
 <li><p><strong>SEND</strong>: if encryption fails, unencrypted messages are sent. |
-<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>compressionType</code>|CompressionType|Message data compression type used by a producer.<br>
+<code>ProducerCryptoFailureAction.FAIL</code> <code>batchingMaxPublishDelayMicros</code>| long|Batching time period of sending messages.|TimeUnit.MILLISECONDS.toMicros(1) <code>batchingMaxMessages</code> |int|The maximum number of messages permitted in a batch.|1000 <code>batchingEnabled</code>| boolean|Enable batching of messages. |true <code>chunkingEnabled</code> | boolean | Enable chunking of messages. |false <code>compressionType</code>|CompressionType|Message data compression type  [...]
 Available options:</p></li>
 <li><p><a href="https://github.com/lz4/lz4"><code>LZ4</code></a></p></li>
 <li><p><a href="https://zlib.net/"><code>ZLIB</code></a></p>
@@ -289,6 +289,18 @@ You can configure parameters if you do not want to use the default configuration
     .send();
 </code></pre>
 <p>You can terminate the builder chain with <code>sendAsync()</code> and get a future return.</p>
+<h3><a class="anchor" aria-hidden="true" id="enable-chunking"></a><a href="#enable-chunking" 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>Message <a href="/docs/zh-TW/next/concepts-messaging#chunking">chunking</a> enables Pulsar to process large payload messages by splitting the message into chunks at the producer side and aggregating chunked messages at the consumer side.</p>
+<p>The message chunking feature is OFF by default. The following is an example about how to enable message chunking when creating a producer.</p>
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+        .topic(topic)
+        .enableChunking(<span class="hljs-keyword">true</span>)
+        .enableBatching(<span class="hljs-keyword">false</span>)
+        .create();
+</code></pre>
+<blockquote>
+<p><strong>Note:</strong> To enable chunking, you need to disable batching (<code>enableBatching</code>=<code>false</code>) concurrently.</p>
+</blockquote>
 <h2><a class="anchor" aria-hidden="true" id="consumer"></a><a href="#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 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>In Pulsar, consumers subscribe to topics and handle messages that producers publish to those topics. You can instantiate a new <a href="/docs/zh-TW/next/reference-terminology#consumer">consumer</a> by first instantiating a <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient">PulsarClient</a>
  object and passing it a URL for a Pulsar broker (as <a href="#client-configuration">above</a>).</p>
@@ -416,7 +428,7 @@ To set a custom dead letter topic name:
   
 When specifying the dead letter policy while not specifying `ackTimeoutMillis`, you can set the ack timeout to 30000 millisecond.|None `autoUpdatePartitions`|boolean|If `autoUpdatePartitions` is enabled, a consumer subscribes to partition increasement automatically.  
   
-**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
+**Note**: this is only for partitioned consumers.|true `replicateSubscriptionState`|boolean|If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.|false `negativeAckRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.| `MultiplierRedeliveryBackoff` `ackTimeoutRedeliveryBackoff`|RedeliveryBackoff|Interface for custom message is ackTimeout policy. Yo [...]
 
 You can configure parameters if you do not want to use the default configuration. For a full list, see the Javadoc for the {@inject: javadoc:ConsumerBuilder:/client/org/apache/pulsar/client/api/ConsumerBuilder} class.
 
@@ -485,6 +497,22 @@ consumer.acknowledge(messages)
 &gt;     .build();
 &gt; ```
 
+### Configure chunking
+
+You can limit the maximum number of chunked messages a consumer maintains concurrently by configuring the `maxPendingChunkedMessage` and `autoAckOldestChunkedMessageOnQueueFull` parameters. When the threshold is reached, the consumer drops pending messages by silently acknowledging them or asking the broker to redeliver them later. The `expireTimeOfIncompleteChunkedMessage` parameter decides the time interval to expire incomplete chunks if the consumer fails to receive all chunks of a me [...]
+
+The following is an example of how to configure message chunking.
+
+```java
+Consumer&lt;byte[]&gt; consumer = client.newConsumer()
+        .topic(topic)
+        .subscriptionName(&quot;test&quot;)
+        .autoAckOldestChunkedMessageOnQueueFull(true)
+        .maxPendingChunkedMessage(100)
+        .expireTimeOfIncompleteChunkedMessage(10, TimeUnit.MINUTES)
+        .subscribe();
+```
+
 ### Negative acknowledgment redelivery backoff
 
 The `RedeliveryBackoff` introduces a redelivery backoff mechanism. You can achieve redelivery with different delays by setting `redeliveryCount` of messages.
@@ -1102,7 +1130,7 @@ PulsarClient client = PulsarClient.builder()
     .authentication(auth)
     .build();
 ```</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-TW/next/client-libraries"><span class="arrow-prev">← </span><span>Overview</span></a><a class="docs-next button" href="/docs/zh-TW/next/client-libraries-go"><span>Go</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href=" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-TW/next/client-libraries"><span class="arrow-prev">← </span><span>Overview</span></a><a class="docs-next button" href="/docs/zh-TW/next/client-libraries-go"><span>Go</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-TW/next/concepts-architecture-overview.html b/content/docs/zh-TW/next/concepts-architecture-overview.html
index 7f627ad..14e4cb7 100644
--- a/content/docs/zh-TW/next/concepts-architecture-overview.html
+++ b/content/docs/zh-TW/next/concepts-architecture-overview.html
@@ -109,6 +109,9 @@
 </blockquote>
 <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.09 [...]
 <p>The Pulsar metadata store maintains all the metadata of a Pulsar cluster, such as topic metadata, schema, broker load data, and so on. Pulsar uses <a href="https://zookeeper.apache.org/">Apache ZooKeeper</a> for metadata storage, cluster configuration, and coordination. The Pulsar metadata store can be deployed on a separate ZooKeeper cluster or deployed on an existing ZooKeeper cluster. You can use one ZooKeeper cluster for both Pulsar metadata store and <a href="https://bookkeeper.a [...]
+<blockquote>
+<p>Pulsar also supports more metadata backend services, including <a href="https://etcd.io/">ETCD</a> and <a href="http://rocksdb.org/">RocksDB</a> (for standalone Pulsar only).</p>
+</blockquote>
 <p>In a Pulsar instance:</p>
 <ul>
 <li><strong>配置與仲裁存儲</strong>: 存儲租戶,命名空間和其他需要全局一致的配置項。</li>
diff --git a/content/docs/zh-TW/next/concepts-architecture-overview/index.html b/content/docs/zh-TW/next/concepts-architecture-overview/index.html
index 7f627ad..14e4cb7 100644
--- a/content/docs/zh-TW/next/concepts-architecture-overview/index.html
+++ b/content/docs/zh-TW/next/concepts-architecture-overview/index.html
@@ -109,6 +109,9 @@
 </blockquote>
 <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.09 [...]
 <p>The Pulsar metadata store maintains all the metadata of a Pulsar cluster, such as topic metadata, schema, broker load data, and so on. Pulsar uses <a href="https://zookeeper.apache.org/">Apache ZooKeeper</a> for metadata storage, cluster configuration, and coordination. The Pulsar metadata store can be deployed on a separate ZooKeeper cluster or deployed on an existing ZooKeeper cluster. You can use one ZooKeeper cluster for both Pulsar metadata store and <a href="https://bookkeeper.a [...]
+<blockquote>
+<p>Pulsar also supports more metadata backend services, including <a href="https://etcd.io/">ETCD</a> and <a href="http://rocksdb.org/">RocksDB</a> (for standalone Pulsar only).</p>
+</blockquote>
 <p>In a Pulsar instance:</p>
 <ul>
 <li><strong>配置與仲裁存儲</strong>: 存儲租戶,命名空間和其他需要全局一致的配置項。</li>
diff --git a/content/docs/zh-TW/next/schema-evolution-compatibility.html b/content/docs/zh-TW/next/schema-evolution-compatibility.html
index f683337..ba18a17 100644
--- a/content/docs/zh-TW/next/schema-evolution-compatibility.html
+++ b/content/docs/zh-TW/next/schema-evolution-compatibility.html
@@ -426,7 +426,7 @@
 <p>在某些數據格式中,例如 Avro,你可以定義欄位並給予預設值。 因此,添加或刪除有預設值的欄位是完全相容的更改。</p>
 <blockquote>
 <p><strong>提示</strong></p>
-<p>You can set schema compatibility check strategy at namespace or broker level. For how to set the strategy, see <a href="/docs/zh-TW/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
+<p>You can set schema compatibility check strategy at the topic, namespace or broker level. For how to set the strategy, see <a href="/docs/zh-TW/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="schema-驗證"></a><a href="#schema-驗證" 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>當 producer 或 consumer 試圖連接到某個 topic 時,broker 會進行一些檢查來驗證一個 schema。</p>
diff --git a/content/docs/zh-TW/next/schema-evolution-compatibility/index.html b/content/docs/zh-TW/next/schema-evolution-compatibility/index.html
index f683337..ba18a17 100644
--- a/content/docs/zh-TW/next/schema-evolution-compatibility/index.html
+++ b/content/docs/zh-TW/next/schema-evolution-compatibility/index.html
@@ -426,7 +426,7 @@
 <p>在某些數據格式中,例如 Avro,你可以定義欄位並給予預設值。 因此,添加或刪除有預設值的欄位是完全相容的更改。</p>
 <blockquote>
 <p><strong>提示</strong></p>
-<p>You can set schema compatibility check strategy at namespace or broker level. For how to set the strategy, see <a href="/docs/zh-TW/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
+<p>You can set schema compatibility check strategy at the topic, namespace or broker level. For how to set the strategy, see <a href="/docs/zh-TW/next/schema-manage/#set-schema-compatibility-check-strategy">here</a>.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="schema-驗證"></a><a href="#schema-驗證" 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>當 producer 或 consumer 試圖連接到某個 topic 時,broker 會進行一些檢查來驗證一個 schema。</p>
diff --git a/content/docs/zh-TW/next/standalone.html b/content/docs/zh-TW/next/standalone.html
index f7456f0..2a44086 100644
--- a/content/docs/zh-TW/next/standalone.html
+++ b/content/docs/zh-TW/next/standalone.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-TW"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>安裝 Pulsar 單機模式 · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="對於本地開發和測試,你可以在自己的電腦上以單機模式來運行 Pulsar。 單機模式包含一個 Pulsar broker、必須的 Zookeeper 和 BookKeeper 組件,它們運行在一個單獨的 Java 虛擬機(JVM)進程之中。"/><meta name="docsearch:version" content="next"/><meta name= [...]
+<!DOCTYPE html><html lang="zh-TW"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>安裝 Pulsar 單機模式 · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="對於本地開發和測試,你可以在自己的電腦上以單機模式來運行 Pulsar。 The standalone mode includes a Pulsar broker, the necessary [RocksDB](http://rocksdb.org/) and BookKeeper components running inside of a single [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-TW" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">安裝 Pulsar 單機模式</h1></header><article><div><span><p>對於本地開發和測試,你可以在自己的電腦上以單機模式來運行 Pulsar。 單機模式包含一個 Pulsar broker、必須的 Zookeeper 和 BookKeeper 組件,它們運行在一個單獨的 Java  [...]
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-TW" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">安裝 Pulsar 單機模式</h1></header><article><div><span><p>對於本地開發和測試,你可以在自己的電腦上以單機模式來運行 Pulsar。 The standalone mode includes a Pulsar broker, the necessary <a href=" [...]
 <blockquote>
 <p><strong>Pulsar in production?</strong>  <br>
 If you're looking to run a full production Pulsar installation, see the <a href="/docs/zh-TW/next/deploy-bare-metal">Deploying a Pulsar instance</a> guide.</p>
@@ -111,7 +111,8 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 </thead>
 <tbody>
 <tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left">Pulsar's command-line tools, such as <a href="/docs/zh-TW/next/reference-cli-tools#pulsar"><code>pulsar</code></a> and <a href="https://pulsar.apache.org/tools/pulsar-admin/"><code>pulsar-admin</code></a>.</td></tr>
-<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Pulsar 的配置文件,包含 <a href="/docs/zh-TW/next/reference-configuration#broker">broker 配置</a>,<a href="/docs/zh-TW/next/reference-configuration#zookeeper">ZooKeeper 配置</a> 等等。</td></tr>
+<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including <a href="/docs/zh-TW/next/reference-configuration#broker">broker configuration</a> and more.</td></tr>
+<tr><td style="text-align:left"><strong>Note:</strong> Pulsar standalone uses RocksDB as the local metadata store and its configuration file path <a href="/docs/zh-TW/next/reference-configuration"><code>metadataStoreConfigPath</code></a> is configurable in the <code>standalone.conf</code> file. For more information about the configurations of RocksDB, see <a href="https://github.com/facebook/rocksdb/blob/main/examples/rocksdb_option_file_example.ini">here</a> and related <a href="https:/ [...]
 <tr><td style="text-align:left"><code>examples</code></td><td style="text-align:left">一個 Java JAR 包,包含 <a href="/docs/zh-TW/next/functions-overview">Pulsar Functions</a> 的範例。</td></tr>
 <tr><td style="text-align:left"><code>instances</code></td><td style="text-align:left">為 <a href="/docs/zh-TW/next/functions-overview">Pulsar Functions</a> 創建的組件。</td></tr>
 <tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files used by Pulsar.</td></tr>
@@ -124,7 +125,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 <tr><th style="text-align:left">目錄</th><th style="text-align:left">包含</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">ZooKeeper 和 BookKeeper 使用的數據存儲目錄</td></tr>
+<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by RocksDB and BookKeeper.</td></tr>
 <tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">Logs created by the installation.</td></tr>
 </tbody>
 </table>
diff --git a/content/docs/zh-TW/next/standalone/index.html b/content/docs/zh-TW/next/standalone/index.html
index f7456f0..2a44086 100644
--- a/content/docs/zh-TW/next/standalone/index.html
+++ b/content/docs/zh-TW/next/standalone/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-TW"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>安裝 Pulsar 單機模式 · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="對於本地開發和測試,你可以在自己的電腦上以單機模式來運行 Pulsar。 單機模式包含一個 Pulsar broker、必須的 Zookeeper 和 BookKeeper 組件,它們運行在一個單獨的 Java 虛擬機(JVM)進程之中。"/><meta name="docsearch:version" content="next"/><meta name= [...]
+<!DOCTYPE html><html lang="zh-TW"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>安裝 Pulsar 單機模式 · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="對於本地開發和測試,你可以在自己的電腦上以單機模式來運行 Pulsar。 The standalone mode includes a Pulsar broker, the necessary [RocksDB](http://rocksdb.org/) and BookKeeper components running inside of a single [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-TW" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">安裝 Pulsar 單機模式</h1></header><article><div><span><p>對於本地開發和測試,你可以在自己的電腦上以單機模式來運行 Pulsar。 單機模式包含一個 Pulsar broker、必須的 Zookeeper 和 BookKeeper 組件,它們運行在一個單獨的 Java  [...]
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-TW" target="_blank" rel="noreferrer noopener">Translate</a><h1 id="__docusaurus" class="postHeaderTitle">安裝 Pulsar 單機模式</h1></header><article><div><span><p>對於本地開發和測試,你可以在自己的電腦上以單機模式來運行 Pulsar。 The standalone mode includes a Pulsar broker, the necessary <a href=" [...]
 <blockquote>
 <p><strong>Pulsar in production?</strong>  <br>
 If you're looking to run a full production Pulsar installation, see the <a href="/docs/zh-TW/next/deploy-bare-metal">Deploying a Pulsar instance</a> guide.</p>
@@ -111,7 +111,8 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 </thead>
 <tbody>
 <tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left">Pulsar's command-line tools, such as <a href="/docs/zh-TW/next/reference-cli-tools#pulsar"><code>pulsar</code></a> and <a href="https://pulsar.apache.org/tools/pulsar-admin/"><code>pulsar-admin</code></a>.</td></tr>
-<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Pulsar 的配置文件,包含 <a href="/docs/zh-TW/next/reference-configuration#broker">broker 配置</a>,<a href="/docs/zh-TW/next/reference-configuration#zookeeper">ZooKeeper 配置</a> 等等。</td></tr>
+<tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including <a href="/docs/zh-TW/next/reference-configuration#broker">broker configuration</a> and more.</td></tr>
+<tr><td style="text-align:left"><strong>Note:</strong> Pulsar standalone uses RocksDB as the local metadata store and its configuration file path <a href="/docs/zh-TW/next/reference-configuration"><code>metadataStoreConfigPath</code></a> is configurable in the <code>standalone.conf</code> file. For more information about the configurations of RocksDB, see <a href="https://github.com/facebook/rocksdb/blob/main/examples/rocksdb_option_file_example.ini">here</a> and related <a href="https:/ [...]
 <tr><td style="text-align:left"><code>examples</code></td><td style="text-align:left">一個 Java JAR 包,包含 <a href="/docs/zh-TW/next/functions-overview">Pulsar Functions</a> 的範例。</td></tr>
 <tr><td style="text-align:left"><code>instances</code></td><td style="text-align:left">為 <a href="/docs/zh-TW/next/functions-overview">Pulsar Functions</a> 創建的組件。</td></tr>
 <tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files used by Pulsar.</td></tr>
@@ -124,7 +125,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.9.1
 <tr><th style="text-align:left">目錄</th><th style="text-align:left">包含</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">ZooKeeper 和 BookKeeper 使用的數據存儲目錄</td></tr>
+<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by RocksDB and BookKeeper.</td></tr>
 <tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">Logs created by the installation.</td></tr>
 </tbody>
 </table>
diff --git a/content/swagger/2.10.0-SNAPSHOT/swagger.json b/content/swagger/2.10.0-SNAPSHOT/swagger.json
index e1659f4..49904f8 100644
--- a/content/swagger/2.10.0-SNAPSHOT/swagger.json
+++ b/content/swagger/2.10.0-SNAPSHOT/swagger.json
@@ -21134,12 +21134,12 @@
             "$ref" : "#/definitions/X509Certificate"
           }
         },
-        "httpAuthType" : {
-          "type" : "string"
-        },
         "peerAddress" : {
           "$ref" : "#/definitions/SocketAddress"
         },
+        "httpAuthType" : {
+          "type" : "string"
+        },
         "commandData" : {
           "type" : "string"
         }
@@ -21190,6 +21190,10 @@
           "type" : "string",
           "enum" : [ "producer_request_hold", "producer_exception", "consumer_backlog_eviction" ]
         },
+        "limit" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
         "limitSize" : {
           "type" : "integer",
           "format" : "int64"
@@ -21197,16 +21201,16 @@
         "limitTime" : {
           "type" : "integer",
           "format" : "int32"
-        },
-        "limit" : {
-          "type" : "integer",
-          "format" : "int64"
         }
       }
     },
     "Base64Variant" : {
       "type" : "object",
       "properties" : {
+        "maxLineLength" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "paddingChar" : {
           "type" : "string"
         },
@@ -21214,10 +21218,6 @@
           "type" : "string",
           "format" : "byte"
         },
-        "maxLineLength" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "name" : {
           "type" : "string"
         }
@@ -21226,10 +21226,10 @@
     "BookieAffinityGroupData" : {
       "type" : "object",
       "properties" : {
-        "bookkeeperAffinityGroupPrimary" : {
+        "bookkeeperAffinityGroupSecondary" : {
           "type" : "string"
         },
-        "bookkeeperAffinityGroupSecondary" : {
+        "bookkeeperAffinityGroupPrimary" : {
           "type" : "string"
         }
       }
@@ -21561,9 +21561,29 @@
             "type" : "string"
           }
         },
-        "availablePermits" : {
+        "msgRateOut" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "msgThroughputOut" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "bytesOutCounter" : {
           "type" : "integer",
-          "format" : "int32"
+          "format" : "int64"
+        },
+        "msgOutCounter" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "msgRateRedeliver" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "chunkedMessageRate" : {
+          "type" : "number",
+          "format" : "double"
         },
         "unackedMessages" : {
           "type" : "integer",
@@ -21596,35 +21616,15 @@
             "type" : "string"
           }
         },
-        "msgRateRedeliver" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "chunkedMessageRate" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "connectedSince" : {
-          "type" : "string"
-        },
         "consumerName" : {
           "type" : "string"
         },
-        "msgRateOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "bytesOutCounter" : {
-          "type" : "integer",
-          "format" : "int64"
+        "connectedSince" : {
+          "type" : "string"
         },
-        "msgOutCounter" : {
+        "availablePermits" : {
           "type" : "integer",
-          "format" : "int64"
+          "format" : "int32"
         },
         "address" : {
           "type" : "string"
@@ -21648,13 +21648,13 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "numericCodeAsString" : {
+        "displayName" : {
           "type" : "string"
         },
-        "symbol" : {
+        "numericCodeAsString" : {
           "type" : "string"
         },
-        "displayName" : {
+        "symbol" : {
           "type" : "string"
         }
       }
@@ -21774,15 +21774,12 @@
     "DeserializationConfig" : {
       "type" : "object",
       "properties" : {
-        "defaultPropertyInclusion" : {
-          "$ref" : "#/definitions/Value"
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
         },
         "problemHandlers" : {
           "$ref" : "#/definitions/LinkedNodeDeserializationProblemHandler"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -21790,11 +21787,8 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "rootName" : {
-          "type" : "string"
-        },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
+        "defaultPropertyInclusion" : {
+          "$ref" : "#/definitions/Value"
         },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
@@ -21802,6 +21796,12 @@
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
+        },
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
@@ -21811,24 +21811,24 @@
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
-        "handlerInstantiator" : {
-          "$ref" : "#/definitions/HandlerInstantiator"
-        },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
+        "handlerInstantiator" : {
+          "$ref" : "#/definitions/HandlerInstantiator"
+        },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -21849,15 +21849,12 @@
         "parser" : {
           "$ref" : "#/definitions/JsonParser"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
-        "arrayBuilders" : {
-          "$ref" : "#/definitions/ArrayBuilders"
-        },
         "nodeFactory" : {
           "$ref" : "#/definitions/JsonNodeFactory"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -21871,6 +21868,9 @@
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
+        "arrayBuilders" : {
+          "$ref" : "#/definitions/ArrayBuilders"
+        },
         "factory" : {
           "$ref" : "#/definitions/DeserializerFactory"
         }
@@ -22250,17 +22250,17 @@
         "formatName" : {
           "type" : "string"
         },
+        "characterEscapes" : {
+          "$ref" : "#/definitions/CharacterEscapes"
+        },
+        "rootValueSeparator" : {
+          "type" : "string"
+        },
         "inputDecorator" : {
           "$ref" : "#/definitions/InputDecorator"
         },
         "outputDecorator" : {
           "$ref" : "#/definitions/OutputDecorator"
-        },
-        "rootValueSeparator" : {
-          "type" : "string"
-        },
-        "characterEscapes" : {
-          "$ref" : "#/definitions/CharacterEscapes"
         }
       }
     },
@@ -22270,14 +22270,14 @@
         "closed" : {
           "type" : "boolean"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
+        "prettyPrinter" : {
+          "$ref" : "#/definitions/PrettyPrinter"
         },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
-        "prettyPrinter" : {
-          "$ref" : "#/definitions/PrettyPrinter"
+        "outputContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
         "featureMask" : {
           "type" : "integer",
@@ -22287,8 +22287,8 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentValue" : {
-          "type" : "object"
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
         },
         "highestEscapedChar" : {
           "type" : "integer",
@@ -22304,8 +22304,8 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "outputContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
+        "currentValue" : {
+          "type" : "object"
         }
       }
     },
@@ -22343,6 +22343,9 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "closed" : {
+          "type" : "boolean"
+        },
         "text" : {
           "type" : "string"
         },
@@ -22352,10 +22355,6 @@
             "type" : "string"
           }
         },
-        "intValue" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "booleanValue" : {
           "type" : "boolean"
         },
@@ -22379,63 +22378,27 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "closed" : {
-          "type" : "boolean"
+        "objectId" : {
+          "type" : "object"
         },
         "typeId" : {
           "type" : "object"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
-        "tokenLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "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"
-        },
-        "featureMask" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "formatFeatures" : {
-          "type" : "integer",
-          "format" : "int32"
+        "codec" : {
+          "$ref" : "#/definitions/ObjectCodec"
         },
-        "currentTokenId" : {
+        "intValue" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "parsingContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
-        },
-        "currentLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "expectedStartArrayToken" : {
-          "type" : "boolean"
-        },
-        "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" ]
-        },
         "textOffset" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "numberValue" : {
-          "$ref" : "#/definitions/Number"
-        },
         "numberType" : {
           "type" : "string",
           "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
@@ -22449,6 +22412,30 @@
         "embeddedObject" : {
           "type" : "object"
         },
+        "featureMask" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "tokenLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
+        },
+        "currentTokenId" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "currentName" : {
+          "type" : "string"
+        },
+        "formatFeatures" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
+        "currentValue" : {
+          "type" : "object"
+        },
         "binaryValue" : {
           "type" : "array",
           "items" : {
@@ -22474,21 +22461,34 @@
         "valueAsString" : {
           "type" : "string"
         },
-        "objectId" : {
-          "type" : "object"
+        "parsingContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
-        "inputSource" : {
-          "type" : "object"
+        "currentLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
         },
-        "currentValue" : {
-          "type" : "object"
-        }
-      }
-    },
-    "JsonSerializer" : {
-      "type" : "object",
-      "properties" : {
-        "unwrappingSerializer" : {
+        "expectedStartArrayToken" : {
+          "type" : "boolean"
+        },
+        "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"
+        },
+        "inputSource" : {
+          "type" : "object"
+        }
+      }
+    },
+    "JsonSerializer" : {
+      "type" : "object",
+      "properties" : {
+        "unwrappingSerializer" : {
           "type" : "boolean"
         }
       }
@@ -22813,20 +22813,13 @@
           "type" : "number",
           "format" : "double"
         },
-        "underLoaded" : {
-          "type" : "boolean"
-        },
-        "overLoaded" : {
-          "type" : "boolean"
-        },
-        "loadReportType" : {
-          "type" : "string"
-        },
-        "cpu" : {
-          "$ref" : "#/definitions/ResourceUsage"
+        "msgThroughputIn" : {
+          "type" : "number",
+          "format" : "double"
         },
-        "memory" : {
-          "$ref" : "#/definitions/ResourceUsage"
+        "msgThroughputOut" : {
+          "type" : "number",
+          "format" : "double"
         },
         "directMemory" : {
           "$ref" : "#/definitions/ResourceUsage"
@@ -22841,19 +22834,29 @@
           "type" : "integer",
           "format" : "int64"
         },
-        "msgThroughputIn" : {
-          "type" : "number",
-          "format" : "double"
+        "underLoaded" : {
+          "type" : "boolean"
         },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
+        "overLoaded" : {
+          "type" : "boolean"
+        },
+        "loadReportType" : {
+          "type" : "string"
+        },
+        "cpu" : {
+          "$ref" : "#/definitions/ResourceUsage"
+        },
+        "memory" : {
+          "$ref" : "#/definitions/ResourceUsage"
         }
       }
     },
     "Locale" : {
       "type" : "object",
       "properties" : {
+        "displayName" : {
+          "type" : "string"
+        },
         "script" : {
           "type" : "string"
         },
@@ -22902,9 +22905,6 @@
         "displayVariant" : {
           "type" : "string"
         },
-        "displayName" : {
-          "type" : "string"
-        },
         "language" : {
           "type" : "string"
         }
@@ -23117,24 +23117,6 @@
             "type" : "string"
           }
         },
-        "clientVersion" : {
-          "type" : "string"
-        },
-        "producerId" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
-        "chunkedMessageRate" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "connectedSince" : {
-          "type" : "string"
-        },
-        "accessMode" : {
-          "type" : "string",
-          "enum" : [ "Shared", "Exclusive", "WaitForExclusive" ]
-        },
         "producerName" : {
           "type" : "string"
         },
@@ -23150,6 +23132,24 @@
           "type" : "number",
           "format" : "double"
         },
+        "chunkedMessageRate" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "clientVersion" : {
+          "type" : "string"
+        },
+        "producerId" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "connectedSince" : {
+          "type" : "string"
+        },
+        "accessMode" : {
+          "type" : "string",
+          "enum" : [ "Shared", "Exclusive", "WaitForExclusive" ]
+        },
         "address" : {
           "type" : "string"
         }
@@ -23165,6 +23165,22 @@
         "connected" : {
           "type" : "boolean"
         },
+        "msgRateIn" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "msgThroughputIn" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "msgRateOut" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "msgThroughputOut" : {
+          "type" : "number",
+          "format" : "double"
+        },
         "msgRateExpired" : {
           "type" : "number",
           "format" : "double"
@@ -23188,22 +23204,6 @@
         "replicationDelayInSeconds" : {
           "type" : "integer",
           "format" : "int64"
-        },
-        "msgRateIn" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgThroughputIn" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgRateOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
         }
       }
     },
@@ -23214,44 +23214,51 @@
           "type" : "number",
           "format" : "double"
         },
-        "msgBacklog" : {
+        "backlogSize" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "unackedMessages" : {
-          "type" : "integer",
-          "format" : "int64"
+        "replicated" : {
+          "type" : "boolean"
         },
-        "activeConsumerName" : {
-          "type" : "string"
+        "durable" : {
+          "type" : "boolean"
         },
-        "msgRateExpired" : {
+        "consumers" : {
+          "type" : "array",
+          "items" : {
+            "$ref" : "#/definitions/ConsumerStats"
+          }
+        },
+        "msgRateOut" : {
           "type" : "number",
           "format" : "double"
         },
-        "totalMsgExpired" : {
-          "type" : "integer",
-          "format" : "int64"
+        "msgThroughputOut" : {
+          "type" : "number",
+          "format" : "double"
         },
-        "lastExpireTimestamp" : {
+        "bytesOutCounter" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "lastConsumedFlowTimestamp" : {
+        "msgOutCounter" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "lastConsumedTimestamp" : {
+        "nonContiguousDeletedMessagesRanges" : {
           "type" : "integer",
-          "format" : "int64"
+          "format" : "int32"
         },
-        "lastAckedTimestamp" : {
+        "nonContiguousDeletedMessagesRangesSerializedSize" : {
           "type" : "integer",
-          "format" : "int64"
+          "format" : "int32"
         },
-        "lastMarkDeleteAdvancedTimestamp" : {
-          "type" : "integer",
-          "format" : "int64"
+        "allowOutOfOrderDelivery" : {
+          "type" : "boolean"
+        },
+        "keySharedMode" : {
+          "type" : "string"
         },
         "consumersAfterMarkDeletePosition" : {
           "type" : "object",
@@ -23259,6 +23266,10 @@
             "type" : "string"
           }
         },
+        "msgBacklog" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
         "msgRateRedeliver" : {
           "type" : "number",
           "format" : "double"
@@ -23282,56 +23293,45 @@
           "type" : "integer",
           "format" : "int64"
         },
-        "allowOutOfOrderDelivery" : {
-          "type" : "boolean"
+        "unackedMessages" : {
+          "type" : "integer",
+          "format" : "int64"
         },
-        "keySharedMode" : {
+        "activeConsumerName" : {
           "type" : "string"
         },
-        "subscriptionProperties" : {
-          "type" : "object",
-          "additionalProperties" : {
-            "type" : "string"
-          }
-        },
-        "replicated" : {
-          "type" : "boolean"
-        },
-        "durable" : {
-          "type" : "boolean"
-        },
-        "msgRateOut" : {
+        "msgRateExpired" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
+        "totalMsgExpired" : {
+          "type" : "integer",
+          "format" : "int64"
         },
-        "bytesOutCounter" : {
+        "lastExpireTimestamp" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "msgOutCounter" : {
+        "lastConsumedFlowTimestamp" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "backlogSize" : {
+        "lastConsumedTimestamp" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "nonContiguousDeletedMessagesRanges" : {
+        "lastAckedTimestamp" : {
           "type" : "integer",
-          "format" : "int32"
+          "format" : "int64"
         },
-        "nonContiguousDeletedMessagesRangesSerializedSize" : {
+        "lastMarkDeleteAdvancedTimestamp" : {
           "type" : "integer",
-          "format" : "int32"
+          "format" : "int64"
         },
-        "consumers" : {
-          "type" : "array",
-          "items" : {
-            "$ref" : "#/definitions/ConsumerStats"
+        "subscriptionProperties" : {
+          "type" : "object",
+          "additionalProperties" : {
+            "type" : "string"
           }
         },
         "type" : {
@@ -23342,10 +23342,6 @@
     "NonPersistentTopicStats" : {
       "type" : "object",
       "properties" : {
-        "msgDropRate" : {
-          "type" : "number",
-          "format" : "double"
-        },
         "subscriptions" : {
           "type" : "object",
           "additionalProperties" : {
@@ -23364,6 +23360,14 @@
             "$ref" : "#/definitions/NonPersistentReplicatorStats"
           }
         },
+        "msgDropRate" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "backlogSize" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
         "msgRateIn" : {
           "type" : "number",
           "format" : "double"
@@ -23407,10 +23411,6 @@
           "type" : "integer",
           "format" : "int64"
         },
-        "backlogSize" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
         "earliestMsgPublishTimeInBacklogs" : {
           "type" : "integer",
           "format" : "int64"
@@ -23494,9 +23494,6 @@
     "ObjectMapper" : {
       "type" : "object",
       "properties" : {
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
         "serializationConfig" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -23524,6 +23521,9 @@
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "nodeFactory" : {
           "$ref" : "#/definitions/JsonNodeFactory"
         },
@@ -23552,15 +23552,12 @@
           "type" : "integer",
           "format" : "int64"
         },
-        "fileSystemURI" : {
+        "managedLedgerOffloadDriver" : {
           "type" : "string"
         },
         "offloadersDirectory" : {
           "type" : "string"
         },
-        "managedLedgerOffloadDriver" : {
-          "type" : "string"
-        },
         "managedLedgerOffloadMaxThreads" : {
           "type" : "integer",
           "format" : "int32"
@@ -23622,6 +23619,9 @@
         "fileSystemProfilePath" : {
           "type" : "string"
         },
+        "fileSystemURI" : {
+          "type" : "string"
+        },
         "managedLedgerOffloadBucket" : {
           "type" : "string"
         },
@@ -24376,10 +24376,10 @@
     "PublicKey" : {
       "type" : "object",
       "properties" : {
-        "algorithm" : {
+        "format" : {
           "type" : "string"
         },
-        "format" : {
+        "algorithm" : {
           "type" : "string"
         },
         "encoded" : {
@@ -24413,24 +24413,6 @@
             "type" : "string"
           }
         },
-        "clientVersion" : {
-          "type" : "string"
-        },
-        "producerId" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
-        "chunkedMessageRate" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "connectedSince" : {
-          "type" : "string"
-        },
-        "accessMode" : {
-          "type" : "string",
-          "enum" : [ "Shared", "Exclusive", "WaitForExclusive" ]
-        },
         "producerName" : {
           "type" : "string"
         },
@@ -24446,6 +24428,24 @@
           "type" : "number",
           "format" : "double"
         },
+        "chunkedMessageRate" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "clientVersion" : {
+          "type" : "string"
+        },
+        "producerId" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "connectedSince" : {
+          "type" : "string"
+        },
+        "accessMode" : {
+          "type" : "string",
+          "enum" : [ "Shared", "Exclusive", "WaitForExclusive" ]
+        },
         "address" : {
           "type" : "string"
         }
@@ -24465,6 +24465,22 @@
         "connected" : {
           "type" : "boolean"
         },
+        "msgRateIn" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "msgThroughputIn" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "msgRateOut" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "msgThroughputOut" : {
+          "type" : "number",
+          "format" : "double"
+        },
         "msgRateExpired" : {
           "type" : "number",
           "format" : "double"
@@ -24488,22 +24504,6 @@
         "replicationDelayInSeconds" : {
           "type" : "integer",
           "format" : "int64"
-        },
-        "msgRateIn" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgThroughputIn" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgRateOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
         }
       }
     },
@@ -24598,11 +24598,11 @@
     "ResourceUnit" : {
       "type" : "object",
       "properties" : {
-        "availableResource" : {
-          "$ref" : "#/definitions/ResourceDescription"
-        },
         "resourceId" : {
           "type" : "string"
+        },
+        "availableResource" : {
+          "$ref" : "#/definitions/ResourceDescription"
         }
       }
     },
@@ -24655,18 +24655,18 @@
     "SerializationConfig" : {
       "type" : "object",
       "properties" : {
-        "defaultPropertyInclusion" : {
-          "$ref" : "#/definitions/Value"
-        },
-        "filterProvider" : {
-          "$ref" : "#/definitions/FilterProvider"
-        },
         "defaultPrettyPrinter" : {
           "$ref" : "#/definitions/PrettyPrinter"
         },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
+        "defaultPropertyInclusion" : {
+          "$ref" : "#/definitions/Value"
+        },
+        "filterProvider" : {
+          "$ref" : "#/definitions/FilterProvider"
+        },
         "serializationInclusion" : {
           "type" : "string",
           "enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
@@ -24675,18 +24675,18 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "rootName" : {
-          "type" : "string"
-        },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
-        },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
         },
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
+        },
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
@@ -24696,24 +24696,24 @@
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
-        "handlerInstantiator" : {
-          "$ref" : "#/definitions/HandlerInstantiator"
-        },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
+        "handlerInstantiator" : {
+          "$ref" : "#/definitions/HandlerInstantiator"
+        },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -24728,6 +24728,9 @@
         "timeZone" : {
           "$ref" : "#/definitions/TimeZone"
         },
+        "generator" : {
+          "$ref" : "#/definitions/JsonGenerator"
+        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
@@ -24737,6 +24740,9 @@
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "annotationIntrospector" : {
+          "$ref" : "#/definitions/AnnotationIntrospector"
+        },
         "filterProvider" : {
           "$ref" : "#/definitions/FilterProvider"
         },
@@ -24745,12 +24751,6 @@
         },
         "defaultNullValueSerializer" : {
           "$ref" : "#/definitions/JsonSerializerObject"
-        },
-        "generator" : {
-          "$ref" : "#/definitions/JsonGenerator"
-        },
-        "annotationIntrospector" : {
-          "$ref" : "#/definitions/AnnotationIntrospector"
         }
       }
     },
@@ -24844,44 +24844,51 @@
     "SubscriptionStats" : {
       "type" : "object",
       "properties" : {
-        "msgBacklog" : {
+        "backlogSize" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "unackedMessages" : {
-          "type" : "integer",
-          "format" : "int64"
+        "replicated" : {
+          "type" : "boolean"
         },
-        "activeConsumerName" : {
-          "type" : "string"
+        "durable" : {
+          "type" : "boolean"
         },
-        "msgRateExpired" : {
+        "consumers" : {
+          "type" : "array",
+          "items" : {
+            "$ref" : "#/definitions/ConsumerStats"
+          }
+        },
+        "msgRateOut" : {
           "type" : "number",
           "format" : "double"
         },
-        "totalMsgExpired" : {
-          "type" : "integer",
-          "format" : "int64"
+        "msgThroughputOut" : {
+          "type" : "number",
+          "format" : "double"
         },
-        "lastExpireTimestamp" : {
+        "bytesOutCounter" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "lastConsumedFlowTimestamp" : {
+        "msgOutCounter" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "lastConsumedTimestamp" : {
+        "nonContiguousDeletedMessagesRanges" : {
           "type" : "integer",
-          "format" : "int64"
+          "format" : "int32"
         },
-        "lastAckedTimestamp" : {
+        "nonContiguousDeletedMessagesRangesSerializedSize" : {
           "type" : "integer",
-          "format" : "int64"
+          "format" : "int32"
         },
-        "lastMarkDeleteAdvancedTimestamp" : {
-          "type" : "integer",
-          "format" : "int64"
+        "allowOutOfOrderDelivery" : {
+          "type" : "boolean"
+        },
+        "keySharedMode" : {
+          "type" : "string"
         },
         "consumersAfterMarkDeletePosition" : {
           "type" : "object",
@@ -24889,6 +24896,10 @@
             "type" : "string"
           }
         },
+        "msgBacklog" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
         "msgRateRedeliver" : {
           "type" : "number",
           "format" : "double"
@@ -24912,56 +24923,45 @@
           "type" : "integer",
           "format" : "int64"
         },
-        "allowOutOfOrderDelivery" : {
-          "type" : "boolean"
+        "unackedMessages" : {
+          "type" : "integer",
+          "format" : "int64"
         },
-        "keySharedMode" : {
+        "activeConsumerName" : {
           "type" : "string"
         },
-        "subscriptionProperties" : {
-          "type" : "object",
-          "additionalProperties" : {
-            "type" : "string"
-          }
-        },
-        "replicated" : {
-          "type" : "boolean"
-        },
-        "durable" : {
-          "type" : "boolean"
-        },
-        "msgRateOut" : {
+        "msgRateExpired" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
+        "totalMsgExpired" : {
+          "type" : "integer",
+          "format" : "int64"
         },
-        "bytesOutCounter" : {
+        "lastExpireTimestamp" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "msgOutCounter" : {
+        "lastConsumedFlowTimestamp" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "backlogSize" : {
+        "lastConsumedTimestamp" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "nonContiguousDeletedMessagesRanges" : {
+        "lastAckedTimestamp" : {
           "type" : "integer",
-          "format" : "int32"
+          "format" : "int64"
         },
-        "nonContiguousDeletedMessagesRangesSerializedSize" : {
+        "lastMarkDeleteAdvancedTimestamp" : {
           "type" : "integer",
-          "format" : "int32"
+          "format" : "int64"
         },
-        "consumers" : {
-          "type" : "array",
-          "items" : {
-            "$ref" : "#/definitions/ConsumerStats"
+        "subscriptionProperties" : {
+          "type" : "object",
+          "additionalProperties" : {
+            "type" : "string"
           }
         },
         "type" : {
@@ -25047,6 +25047,10 @@
     "TopicStats" : {
       "type" : "object",
       "properties" : {
+        "backlogSize" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
         "subscriptions" : {
           "type" : "object",
           "additionalProperties" : {
@@ -25096,10 +25100,6 @@
           "type" : "integer",
           "format" : "int64"
         },
-        "backlogSize" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
         "earliestMsgPublishTimeInBacklogs" : {
           "type" : "integer",
           "format" : "int64"
@@ -25552,20 +25552,20 @@
         "initialized" : {
           "type" : "boolean"
         },
-        "functions" : {
-          "$ref" : "#/definitions/FunctionsWorkerService"
-        },
-        "sinks" : {
-          "$ref" : "#/definitions/SinksWorkerService"
-        },
         "functionsV2" : {
           "$ref" : "#/definitions/FunctionsV2WorkerService"
         },
+        "workerConfig" : {
+          "$ref" : "#/definitions/WorkerConfig"
+        },
         "workers" : {
           "$ref" : "#/definitions/WorkersWorkerService"
         },
-        "workerConfig" : {
-          "$ref" : "#/definitions/WorkerConfig"
+        "functions" : {
+          "$ref" : "#/definitions/FunctionsWorkerService"
+        },
+        "sinks" : {
+          "$ref" : "#/definitions/SinksWorkerService"
         }
       }
     },
@@ -25602,15 +25602,28 @@
         "issuerX500Principal" : {
           "$ref" : "#/definitions/X500Principal"
         },
+        "version" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "issuerDN" : {
           "$ref" : "#/definitions/Principal"
         },
         "subjectDN" : {
           "$ref" : "#/definitions/Principal"
         },
+        "keyUsage" : {
+          "type" : "array",
+          "items" : {
+            "type" : "boolean"
+          }
+        },
         "sigAlgName" : {
           "type" : "string"
         },
+        "serialNumber" : {
+          "type" : "integer"
+        },
         "notBefore" : {
           "type" : "string",
           "format" : "date-time"
@@ -25619,6 +25632,13 @@
           "type" : "string",
           "format" : "date-time"
         },
+        "tbscertificate" : {
+          "type" : "array",
+          "items" : {
+            "type" : "string",
+            "format" : "byte"
+          }
+        },
         "sigAlgOID" : {
           "type" : "string"
         },
@@ -25641,10 +25661,10 @@
             "type" : "boolean"
           }
         },
-        "keyUsage" : {
+        "extendedKeyUsage" : {
           "type" : "array",
           "items" : {
-            "type" : "boolean"
+            "type" : "string"
           }
         },
         "subjectAlternativeNames" : {
@@ -25665,26 +25685,6 @@
             }
           }
         },
-        "serialNumber" : {
-          "type" : "integer"
-        },
-        "tbscertificate" : {
-          "type" : "array",
-          "items" : {
-            "type" : "string",
-            "format" : "byte"
-          }
-        },
-        "extendedKeyUsage" : {
-          "type" : "array",
-          "items" : {
-            "type" : "string"
-          }
-        },
-        "version" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "signature" : {
           "type" : "array",
           "items" : {
@@ -25696,14 +25696,14 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "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 3cb3e94..56c63c3 100644
--- a/content/swagger/2.10.0-SNAPSHOT/swaggerfunctions.json
+++ b/content/swagger/2.10.0-SNAPSHOT/swaggerfunctions.json
@@ -971,12 +971,12 @@
             "$ref" : "#/definitions/X509Certificate"
           }
         },
-        "httpAuthType" : {
-          "type" : "string"
-        },
         "peerAddress" : {
           "$ref" : "#/definitions/SocketAddress"
         },
+        "httpAuthType" : {
+          "type" : "string"
+        },
         "commandData" : {
           "type" : "string"
         }
@@ -985,6 +985,10 @@
     "Base64Variant" : {
       "type" : "object",
       "properties" : {
+        "maxLineLength" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "paddingChar" : {
           "type" : "string"
         },
@@ -992,10 +996,6 @@
           "type" : "string",
           "format" : "byte"
         },
-        "maxLineLength" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "name" : {
           "type" : "string"
         }
@@ -1180,13 +1180,13 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "numericCodeAsString" : {
+        "displayName" : {
           "type" : "string"
         },
-        "symbol" : {
+        "numericCodeAsString" : {
           "type" : "string"
         },
-        "displayName" : {
+        "symbol" : {
           "type" : "string"
         }
       }
@@ -1212,15 +1212,12 @@
     "DeserializationConfig" : {
       "type" : "object",
       "properties" : {
-        "defaultPropertyInclusion" : {
-          "$ref" : "#/definitions/Value"
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
         },
         "problemHandlers" : {
           "$ref" : "#/definitions/LinkedNodeDeserializationProblemHandler"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -1228,11 +1225,8 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "rootName" : {
-          "type" : "string"
-        },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
+        "defaultPropertyInclusion" : {
+          "$ref" : "#/definitions/Value"
         },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
@@ -1240,6 +1234,12 @@
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
+        },
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
@@ -1249,24 +1249,24 @@
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
-        "handlerInstantiator" : {
-          "$ref" : "#/definitions/HandlerInstantiator"
-        },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
+        "handlerInstantiator" : {
+          "$ref" : "#/definitions/HandlerInstantiator"
+        },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -1287,15 +1287,12 @@
         "parser" : {
           "$ref" : "#/definitions/JsonParser"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
-        "arrayBuilders" : {
-          "$ref" : "#/definitions/ArrayBuilders"
-        },
         "nodeFactory" : {
           "$ref" : "#/definitions/JsonNodeFactory"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -1309,6 +1306,9 @@
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
+        "arrayBuilders" : {
+          "$ref" : "#/definitions/ArrayBuilders"
+        },
         "factory" : {
           "$ref" : "#/definitions/DeserializerFactory"
         }
@@ -1952,17 +1952,17 @@
         "formatName" : {
           "type" : "string"
         },
+        "characterEscapes" : {
+          "$ref" : "#/definitions/CharacterEscapes"
+        },
+        "rootValueSeparator" : {
+          "type" : "string"
+        },
         "inputDecorator" : {
           "$ref" : "#/definitions/InputDecorator"
         },
         "outputDecorator" : {
           "$ref" : "#/definitions/OutputDecorator"
-        },
-        "rootValueSeparator" : {
-          "type" : "string"
-        },
-        "characterEscapes" : {
-          "$ref" : "#/definitions/CharacterEscapes"
         }
       }
     },
@@ -1972,14 +1972,14 @@
         "closed" : {
           "type" : "boolean"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
+        "prettyPrinter" : {
+          "$ref" : "#/definitions/PrettyPrinter"
         },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
-        "prettyPrinter" : {
-          "$ref" : "#/definitions/PrettyPrinter"
+        "outputContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
         "featureMask" : {
           "type" : "integer",
@@ -1989,8 +1989,8 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentValue" : {
-          "type" : "object"
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
         },
         "highestEscapedChar" : {
           "type" : "integer",
@@ -2006,8 +2006,8 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "outputContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
+        "currentValue" : {
+          "type" : "object"
         }
       }
     },
@@ -2045,6 +2045,9 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "closed" : {
+          "type" : "boolean"
+        },
         "text" : {
           "type" : "string"
         },
@@ -2054,10 +2057,6 @@
             "type" : "string"
           }
         },
-        "intValue" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "booleanValue" : {
           "type" : "boolean"
         },
@@ -2081,63 +2080,27 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "closed" : {
-          "type" : "boolean"
+        "objectId" : {
+          "type" : "object"
         },
         "typeId" : {
           "type" : "object"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
-        "tokenLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "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"
-        },
-        "featureMask" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "formatFeatures" : {
-          "type" : "integer",
-          "format" : "int32"
+        "codec" : {
+          "$ref" : "#/definitions/ObjectCodec"
         },
-        "currentTokenId" : {
+        "intValue" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "parsingContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
-        },
-        "currentLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "expectedStartArrayToken" : {
-          "type" : "boolean"
-        },
-        "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" ]
-        },
         "textOffset" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "numberValue" : {
-          "$ref" : "#/definitions/Number"
-        },
         "numberType" : {
           "type" : "string",
           "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
@@ -2151,6 +2114,30 @@
         "embeddedObject" : {
           "type" : "object"
         },
+        "featureMask" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "tokenLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
+        },
+        "currentTokenId" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "currentName" : {
+          "type" : "string"
+        },
+        "formatFeatures" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
+        "currentValue" : {
+          "type" : "object"
+        },
         "binaryValue" : {
           "type" : "array",
           "items" : {
@@ -2176,13 +2163,26 @@
         "valueAsString" : {
           "type" : "string"
         },
-        "objectId" : {
-          "type" : "object"
+        "parsingContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
-        "inputSource" : {
-          "type" : "object"
+        "currentLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
         },
-        "currentValue" : {
+        "expectedStartArrayToken" : {
+          "type" : "boolean"
+        },
+        "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"
+        },
+        "inputSource" : {
           "type" : "object"
         }
       }
@@ -2240,6 +2240,9 @@
     "Locale" : {
       "type" : "object",
       "properties" : {
+        "displayName" : {
+          "type" : "string"
+        },
         "script" : {
           "type" : "string"
         },
@@ -2288,9 +2291,6 @@
         "displayVariant" : {
           "type" : "string"
         },
-        "displayName" : {
-          "type" : "string"
-        },
         "language" : {
           "type" : "string"
         }
@@ -2302,36 +2302,22 @@
     "Message" : {
       "type" : "object",
       "properties" : {
-        "data" : {
+        "keyBytes" : {
           "type" : "array",
           "items" : {
             "type" : "string",
             "format" : "byte"
           }
         },
-        "messageId" : {
-          "$ref" : "#/definitions/MessageId"
-        },
-        "keyBytes" : {
+        "data" : {
           "type" : "array",
           "items" : {
             "type" : "string",
             "format" : "byte"
           }
         },
-        "encryptionCtx" : {
-          "$ref" : "#/definitions/EncryptionContext"
-        },
-        "redeliveryCount" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "readerSchema" : {
-          "$ref" : "#/definitions/SchemaObject"
-        },
-        "brokerPublishTime" : {
-          "type" : "integer",
-          "format" : "int64"
+        "topicName" : {
+          "type" : "string"
         },
         "publishTime" : {
           "type" : "integer",
@@ -2368,8 +2354,22 @@
         "replicated" : {
           "type" : "boolean"
         },
-        "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"
         },
         "value" : {
           "type" : "object"
@@ -2496,9 +2496,6 @@
     "ObjectMapper" : {
       "type" : "object",
       "properties" : {
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
         "serializationConfig" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -2526,6 +2523,9 @@
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "nodeFactory" : {
           "$ref" : "#/definitions/JsonNodeFactory"
         },
@@ -2640,10 +2640,10 @@
     "PublicKey" : {
       "type" : "object",
       "properties" : {
-        "algorithm" : {
+        "format" : {
           "type" : "string"
         },
-        "format" : {
+        "algorithm" : {
           "type" : "string"
         },
         "encoded" : {
@@ -2725,18 +2725,18 @@
     "SerializationConfig" : {
       "type" : "object",
       "properties" : {
-        "defaultPropertyInclusion" : {
-          "$ref" : "#/definitions/Value"
-        },
-        "filterProvider" : {
-          "$ref" : "#/definitions/FilterProvider"
-        },
         "defaultPrettyPrinter" : {
           "$ref" : "#/definitions/PrettyPrinter"
         },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
+        "defaultPropertyInclusion" : {
+          "$ref" : "#/definitions/Value"
+        },
+        "filterProvider" : {
+          "$ref" : "#/definitions/FilterProvider"
+        },
         "serializationInclusion" : {
           "type" : "string",
           "enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
@@ -2745,18 +2745,18 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "rootName" : {
-          "type" : "string"
-        },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
-        },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
         },
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
+        },
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
@@ -2766,24 +2766,24 @@
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
-        "handlerInstantiator" : {
-          "$ref" : "#/definitions/HandlerInstantiator"
-        },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
+        "handlerInstantiator" : {
+          "$ref" : "#/definitions/HandlerInstantiator"
+        },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -2798,6 +2798,9 @@
         "timeZone" : {
           "$ref" : "#/definitions/TimeZone"
         },
+        "generator" : {
+          "$ref" : "#/definitions/JsonGenerator"
+        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
@@ -2807,6 +2810,9 @@
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "annotationIntrospector" : {
+          "$ref" : "#/definitions/AnnotationIntrospector"
+        },
         "filterProvider" : {
           "$ref" : "#/definitions/FilterProvider"
         },
@@ -2815,12 +2821,6 @@
         },
         "defaultNullValueSerializer" : {
           "$ref" : "#/definitions/JsonSerializerObject"
-        },
-        "generator" : {
-          "$ref" : "#/definitions/JsonGenerator"
-        },
-        "annotationIntrospector" : {
-          "$ref" : "#/definitions/AnnotationIntrospector"
         }
       }
     },
@@ -2968,15 +2968,28 @@
         "issuerX500Principal" : {
           "$ref" : "#/definitions/X500Principal"
         },
+        "version" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "issuerDN" : {
           "$ref" : "#/definitions/Principal"
         },
         "subjectDN" : {
           "$ref" : "#/definitions/Principal"
         },
+        "keyUsage" : {
+          "type" : "array",
+          "items" : {
+            "type" : "boolean"
+          }
+        },
         "sigAlgName" : {
           "type" : "string"
         },
+        "serialNumber" : {
+          "type" : "integer"
+        },
         "notBefore" : {
           "type" : "string",
           "format" : "date-time"
@@ -2985,6 +2998,13 @@
           "type" : "string",
           "format" : "date-time"
         },
+        "tbscertificate" : {
+          "type" : "array",
+          "items" : {
+            "type" : "string",
+            "format" : "byte"
+          }
+        },
         "sigAlgOID" : {
           "type" : "string"
         },
@@ -3007,10 +3027,10 @@
             "type" : "boolean"
           }
         },
-        "keyUsage" : {
+        "extendedKeyUsage" : {
           "type" : "array",
           "items" : {
-            "type" : "boolean"
+            "type" : "string"
           }
         },
         "subjectAlternativeNames" : {
@@ -3031,26 +3051,6 @@
             }
           }
         },
-        "serialNumber" : {
-          "type" : "integer"
-        },
-        "tbscertificate" : {
-          "type" : "array",
-          "items" : {
-            "type" : "string",
-            "format" : "byte"
-          }
-        },
-        "extendedKeyUsage" : {
-          "type" : "array",
-          "items" : {
-            "type" : "string"
-          }
-        },
-        "version" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "signature" : {
           "type" : "array",
           "items" : {
@@ -3062,14 +3062,14 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "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 de72e9f..737f15b 100644
--- a/content/swagger/2.10.0-SNAPSHOT/swaggerpackages.json
+++ b/content/swagger/2.10.0-SNAPSHOT/swaggerpackages.json
@@ -420,12 +420,12 @@
             "$ref" : "#/definitions/X509Certificate"
           }
         },
-        "httpAuthType" : {
-          "type" : "string"
-        },
         "peerAddress" : {
           "$ref" : "#/definitions/SocketAddress"
         },
+        "httpAuthType" : {
+          "type" : "string"
+        },
         "commandData" : {
           "type" : "string"
         }
@@ -434,6 +434,10 @@
     "Base64Variant" : {
       "type" : "object",
       "properties" : {
+        "maxLineLength" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "paddingChar" : {
           "type" : "string"
         },
@@ -441,10 +445,6 @@
           "type" : "string",
           "format" : "byte"
         },
-        "maxLineLength" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "name" : {
           "type" : "string"
         }
@@ -565,13 +565,13 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "numericCodeAsString" : {
+        "displayName" : {
           "type" : "string"
         },
-        "symbol" : {
+        "numericCodeAsString" : {
           "type" : "string"
         },
-        "displayName" : {
+        "symbol" : {
           "type" : "string"
         }
       }
@@ -597,15 +597,12 @@
     "DeserializationConfig" : {
       "type" : "object",
       "properties" : {
-        "defaultPropertyInclusion" : {
-          "$ref" : "#/definitions/Value"
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
         },
         "problemHandlers" : {
           "$ref" : "#/definitions/LinkedNodeDeserializationProblemHandler"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -613,11 +610,8 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "rootName" : {
-          "type" : "string"
-        },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
+        "defaultPropertyInclusion" : {
+          "$ref" : "#/definitions/Value"
         },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
@@ -625,6 +619,12 @@
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
+        },
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
@@ -634,24 +634,24 @@
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
-        "handlerInstantiator" : {
-          "$ref" : "#/definitions/HandlerInstantiator"
-        },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
+        "handlerInstantiator" : {
+          "$ref" : "#/definitions/HandlerInstantiator"
+        },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -672,15 +672,12 @@
         "parser" : {
           "$ref" : "#/definitions/JsonParser"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
-        "arrayBuilders" : {
-          "$ref" : "#/definitions/ArrayBuilders"
-        },
         "nodeFactory" : {
           "$ref" : "#/definitions/JsonNodeFactory"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -694,6 +691,9 @@
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
+        "arrayBuilders" : {
+          "$ref" : "#/definitions/ArrayBuilders"
+        },
         "factory" : {
           "$ref" : "#/definitions/DeserializerFactory"
         }
@@ -826,17 +826,17 @@
         "formatName" : {
           "type" : "string"
         },
+        "characterEscapes" : {
+          "$ref" : "#/definitions/CharacterEscapes"
+        },
+        "rootValueSeparator" : {
+          "type" : "string"
+        },
         "inputDecorator" : {
           "$ref" : "#/definitions/InputDecorator"
         },
         "outputDecorator" : {
           "$ref" : "#/definitions/OutputDecorator"
-        },
-        "rootValueSeparator" : {
-          "type" : "string"
-        },
-        "characterEscapes" : {
-          "$ref" : "#/definitions/CharacterEscapes"
         }
       }
     },
@@ -846,14 +846,14 @@
         "closed" : {
           "type" : "boolean"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
+        "prettyPrinter" : {
+          "$ref" : "#/definitions/PrettyPrinter"
         },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
-        "prettyPrinter" : {
-          "$ref" : "#/definitions/PrettyPrinter"
+        "outputContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
         "featureMask" : {
           "type" : "integer",
@@ -863,8 +863,8 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentValue" : {
-          "type" : "object"
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
         },
         "highestEscapedChar" : {
           "type" : "integer",
@@ -880,8 +880,8 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "outputContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
+        "currentValue" : {
+          "type" : "object"
         }
       }
     },
@@ -919,6 +919,9 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "closed" : {
+          "type" : "boolean"
+        },
         "text" : {
           "type" : "string"
         },
@@ -928,10 +931,6 @@
             "type" : "string"
           }
         },
-        "intValue" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "booleanValue" : {
           "type" : "boolean"
         },
@@ -955,63 +954,27 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "closed" : {
-          "type" : "boolean"
+        "objectId" : {
+          "type" : "object"
         },
         "typeId" : {
           "type" : "object"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
-        "tokenLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "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"
-        },
-        "featureMask" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "formatFeatures" : {
-          "type" : "integer",
-          "format" : "int32"
+        "codec" : {
+          "$ref" : "#/definitions/ObjectCodec"
         },
-        "currentTokenId" : {
+        "intValue" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "parsingContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
-        },
-        "currentLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "expectedStartArrayToken" : {
-          "type" : "boolean"
-        },
-        "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" ]
-        },
         "textOffset" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "numberValue" : {
-          "$ref" : "#/definitions/Number"
-        },
         "numberType" : {
           "type" : "string",
           "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
@@ -1025,6 +988,30 @@
         "embeddedObject" : {
           "type" : "object"
         },
+        "featureMask" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "tokenLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
+        },
+        "currentTokenId" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "currentName" : {
+          "type" : "string"
+        },
+        "formatFeatures" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
+        "currentValue" : {
+          "type" : "object"
+        },
         "binaryValue" : {
           "type" : "array",
           "items" : {
@@ -1050,13 +1037,26 @@
         "valueAsString" : {
           "type" : "string"
         },
-        "objectId" : {
-          "type" : "object"
+        "parsingContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
-        "inputSource" : {
-          "type" : "object"
+        "currentLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
         },
-        "currentValue" : {
+        "expectedStartArrayToken" : {
+          "type" : "boolean"
+        },
+        "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"
+        },
+        "inputSource" : {
           "type" : "object"
         }
       }
@@ -1114,6 +1114,9 @@
     "Locale" : {
       "type" : "object",
       "properties" : {
+        "displayName" : {
+          "type" : "string"
+        },
         "script" : {
           "type" : "string"
         },
@@ -1162,9 +1165,6 @@
         "displayVariant" : {
           "type" : "string"
         },
-        "displayName" : {
-          "type" : "string"
-        },
         "language" : {
           "type" : "string"
         }
@@ -1277,9 +1277,6 @@
     "ObjectMapper" : {
       "type" : "object",
       "properties" : {
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
         "serializationConfig" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -1307,6 +1304,9 @@
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "nodeFactory" : {
           "$ref" : "#/definitions/JsonNodeFactory"
         },
@@ -1424,10 +1424,10 @@
     "PublicKey" : {
       "type" : "object",
       "properties" : {
-        "algorithm" : {
+        "format" : {
           "type" : "string"
         },
-        "format" : {
+        "algorithm" : {
           "type" : "string"
         },
         "encoded" : {
@@ -1442,18 +1442,18 @@
     "SerializationConfig" : {
       "type" : "object",
       "properties" : {
-        "defaultPropertyInclusion" : {
-          "$ref" : "#/definitions/Value"
-        },
-        "filterProvider" : {
-          "$ref" : "#/definitions/FilterProvider"
-        },
         "defaultPrettyPrinter" : {
           "$ref" : "#/definitions/PrettyPrinter"
         },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
+        "defaultPropertyInclusion" : {
+          "$ref" : "#/definitions/Value"
+        },
+        "filterProvider" : {
+          "$ref" : "#/definitions/FilterProvider"
+        },
         "serializationInclusion" : {
           "type" : "string",
           "enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
@@ -1462,18 +1462,18 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "rootName" : {
-          "type" : "string"
-        },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
-        },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
         },
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
+        },
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
@@ -1483,24 +1483,24 @@
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
-        "handlerInstantiator" : {
-          "$ref" : "#/definitions/HandlerInstantiator"
-        },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
+        "handlerInstantiator" : {
+          "$ref" : "#/definitions/HandlerInstantiator"
+        },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -1515,6 +1515,9 @@
         "timeZone" : {
           "$ref" : "#/definitions/TimeZone"
         },
+        "generator" : {
+          "$ref" : "#/definitions/JsonGenerator"
+        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
@@ -1524,6 +1527,9 @@
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "annotationIntrospector" : {
+          "$ref" : "#/definitions/AnnotationIntrospector"
+        },
         "filterProvider" : {
           "$ref" : "#/definitions/FilterProvider"
         },
@@ -1532,12 +1538,6 @@
         },
         "defaultNullValueSerializer" : {
           "$ref" : "#/definitions/JsonSerializerObject"
-        },
-        "generator" : {
-          "$ref" : "#/definitions/JsonGenerator"
-        },
-        "annotationIntrospector" : {
-          "$ref" : "#/definitions/AnnotationIntrospector"
         }
       }
     },
@@ -1640,15 +1640,28 @@
         "issuerX500Principal" : {
           "$ref" : "#/definitions/X500Principal"
         },
+        "version" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "issuerDN" : {
           "$ref" : "#/definitions/Principal"
         },
         "subjectDN" : {
           "$ref" : "#/definitions/Principal"
         },
+        "keyUsage" : {
+          "type" : "array",
+          "items" : {
+            "type" : "boolean"
+          }
+        },
         "sigAlgName" : {
           "type" : "string"
         },
+        "serialNumber" : {
+          "type" : "integer"
+        },
         "notBefore" : {
           "type" : "string",
           "format" : "date-time"
@@ -1657,6 +1670,13 @@
           "type" : "string",
           "format" : "date-time"
         },
+        "tbscertificate" : {
+          "type" : "array",
+          "items" : {
+            "type" : "string",
+            "format" : "byte"
+          }
+        },
         "sigAlgOID" : {
           "type" : "string"
         },
@@ -1679,10 +1699,10 @@
             "type" : "boolean"
           }
         },
-        "keyUsage" : {
+        "extendedKeyUsage" : {
           "type" : "array",
           "items" : {
-            "type" : "boolean"
+            "type" : "string"
           }
         },
         "subjectAlternativeNames" : {
@@ -1703,26 +1723,6 @@
             }
           }
         },
-        "serialNumber" : {
-          "type" : "integer"
-        },
-        "tbscertificate" : {
-          "type" : "array",
-          "items" : {
-            "type" : "string",
-            "format" : "byte"
-          }
-        },
-        "extendedKeyUsage" : {
-          "type" : "array",
-          "items" : {
-            "type" : "string"
-          }
-        },
-        "version" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "signature" : {
           "type" : "array",
           "items" : {
@@ -1734,14 +1734,14 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "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 e27e5fa..fb2de81 100644
--- a/content/swagger/2.10.0-SNAPSHOT/swaggersink.json
+++ b/content/swagger/2.10.0-SNAPSHOT/swaggersink.json
@@ -810,12 +810,12 @@
             "$ref" : "#/definitions/X509Certificate"
           }
         },
-        "httpAuthType" : {
-          "type" : "string"
-        },
         "peerAddress" : {
           "$ref" : "#/definitions/SocketAddress"
         },
+        "httpAuthType" : {
+          "type" : "string"
+        },
         "commandData" : {
           "type" : "string"
         }
@@ -824,6 +824,10 @@
     "Base64Variant" : {
       "type" : "object",
       "properties" : {
+        "maxLineLength" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "paddingChar" : {
           "type" : "string"
         },
@@ -831,10 +835,6 @@
           "type" : "string",
           "format" : "byte"
         },
-        "maxLineLength" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "name" : {
           "type" : "string"
         }
@@ -1059,13 +1059,13 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "numericCodeAsString" : {
+        "displayName" : {
           "type" : "string"
         },
-        "symbol" : {
+        "numericCodeAsString" : {
           "type" : "string"
         },
-        "displayName" : {
+        "symbol" : {
           "type" : "string"
         }
       }
@@ -1091,15 +1091,12 @@
     "DeserializationConfig" : {
       "type" : "object",
       "properties" : {
-        "defaultPropertyInclusion" : {
-          "$ref" : "#/definitions/Value"
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
         },
         "problemHandlers" : {
           "$ref" : "#/definitions/LinkedNodeDeserializationProblemHandler"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -1107,11 +1104,8 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "rootName" : {
-          "type" : "string"
-        },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
+        "defaultPropertyInclusion" : {
+          "$ref" : "#/definitions/Value"
         },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
@@ -1119,6 +1113,12 @@
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
+        },
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
@@ -1128,24 +1128,24 @@
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
-        "handlerInstantiator" : {
-          "$ref" : "#/definitions/HandlerInstantiator"
-        },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
+        "handlerInstantiator" : {
+          "$ref" : "#/definitions/HandlerInstantiator"
+        },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -1166,15 +1166,12 @@
         "parser" : {
           "$ref" : "#/definitions/JsonParser"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
-        "arrayBuilders" : {
-          "$ref" : "#/definitions/ArrayBuilders"
-        },
         "nodeFactory" : {
           "$ref" : "#/definitions/JsonNodeFactory"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -1188,6 +1185,9 @@
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
+        "arrayBuilders" : {
+          "$ref" : "#/definitions/ArrayBuilders"
+        },
         "factory" : {
           "$ref" : "#/definitions/DeserializerFactory"
         }
@@ -1332,17 +1332,17 @@
         "formatName" : {
           "type" : "string"
         },
+        "characterEscapes" : {
+          "$ref" : "#/definitions/CharacterEscapes"
+        },
+        "rootValueSeparator" : {
+          "type" : "string"
+        },
         "inputDecorator" : {
           "$ref" : "#/definitions/InputDecorator"
         },
         "outputDecorator" : {
           "$ref" : "#/definitions/OutputDecorator"
-        },
-        "rootValueSeparator" : {
-          "type" : "string"
-        },
-        "characterEscapes" : {
-          "$ref" : "#/definitions/CharacterEscapes"
         }
       }
     },
@@ -1352,14 +1352,14 @@
         "closed" : {
           "type" : "boolean"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
+        "prettyPrinter" : {
+          "$ref" : "#/definitions/PrettyPrinter"
         },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
-        "prettyPrinter" : {
-          "$ref" : "#/definitions/PrettyPrinter"
+        "outputContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
         "featureMask" : {
           "type" : "integer",
@@ -1369,8 +1369,8 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentValue" : {
-          "type" : "object"
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
         },
         "highestEscapedChar" : {
           "type" : "integer",
@@ -1386,8 +1386,8 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "outputContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
+        "currentValue" : {
+          "type" : "object"
         }
       }
     },
@@ -1425,6 +1425,9 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "closed" : {
+          "type" : "boolean"
+        },
         "text" : {
           "type" : "string"
         },
@@ -1434,10 +1437,6 @@
             "type" : "string"
           }
         },
-        "intValue" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "booleanValue" : {
           "type" : "boolean"
         },
@@ -1461,63 +1460,27 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "closed" : {
-          "type" : "boolean"
+        "objectId" : {
+          "type" : "object"
         },
         "typeId" : {
           "type" : "object"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
-        "tokenLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "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"
-        },
-        "featureMask" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "formatFeatures" : {
-          "type" : "integer",
-          "format" : "int32"
+        "codec" : {
+          "$ref" : "#/definitions/ObjectCodec"
         },
-        "currentTokenId" : {
+        "intValue" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "parsingContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
-        },
-        "currentLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "expectedStartArrayToken" : {
-          "type" : "boolean"
-        },
-        "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" ]
-        },
         "textOffset" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "numberValue" : {
-          "$ref" : "#/definitions/Number"
-        },
         "numberType" : {
           "type" : "string",
           "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
@@ -1531,6 +1494,30 @@
         "embeddedObject" : {
           "type" : "object"
         },
+        "featureMask" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "tokenLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
+        },
+        "currentTokenId" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "currentName" : {
+          "type" : "string"
+        },
+        "formatFeatures" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
+        "currentValue" : {
+          "type" : "object"
+        },
         "binaryValue" : {
           "type" : "array",
           "items" : {
@@ -1556,13 +1543,26 @@
         "valueAsString" : {
           "type" : "string"
         },
-        "objectId" : {
-          "type" : "object"
+        "parsingContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
-        "inputSource" : {
-          "type" : "object"
+        "currentLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
         },
-        "currentValue" : {
+        "expectedStartArrayToken" : {
+          "type" : "boolean"
+        },
+        "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"
+        },
+        "inputSource" : {
           "type" : "object"
         }
       }
@@ -1620,6 +1620,9 @@
     "Locale" : {
       "type" : "object",
       "properties" : {
+        "displayName" : {
+          "type" : "string"
+        },
         "script" : {
           "type" : "string"
         },
@@ -1668,9 +1671,6 @@
         "displayVariant" : {
           "type" : "string"
         },
-        "displayName" : {
-          "type" : "string"
-        },
         "language" : {
           "type" : "string"
         }
@@ -1783,9 +1783,6 @@
     "ObjectMapper" : {
       "type" : "object",
       "properties" : {
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
         "serializationConfig" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -1813,6 +1810,9 @@
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "nodeFactory" : {
           "$ref" : "#/definitions/JsonNodeFactory"
         },
@@ -1905,10 +1905,10 @@
     "PublicKey" : {
       "type" : "object",
       "properties" : {
-        "algorithm" : {
+        "format" : {
           "type" : "string"
         },
-        "format" : {
+        "algorithm" : {
           "type" : "string"
         },
         "encoded" : {
@@ -1940,18 +1940,18 @@
     "SerializationConfig" : {
       "type" : "object",
       "properties" : {
-        "defaultPropertyInclusion" : {
-          "$ref" : "#/definitions/Value"
-        },
-        "filterProvider" : {
-          "$ref" : "#/definitions/FilterProvider"
-        },
         "defaultPrettyPrinter" : {
           "$ref" : "#/definitions/PrettyPrinter"
         },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
+        "defaultPropertyInclusion" : {
+          "$ref" : "#/definitions/Value"
+        },
+        "filterProvider" : {
+          "$ref" : "#/definitions/FilterProvider"
+        },
         "serializationInclusion" : {
           "type" : "string",
           "enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
@@ -1960,18 +1960,18 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "rootName" : {
-          "type" : "string"
-        },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
-        },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
         },
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
+        },
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
@@ -1981,24 +1981,24 @@
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
-        "handlerInstantiator" : {
-          "$ref" : "#/definitions/HandlerInstantiator"
-        },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
+        "handlerInstantiator" : {
+          "$ref" : "#/definitions/HandlerInstantiator"
+        },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -2013,6 +2013,9 @@
         "timeZone" : {
           "$ref" : "#/definitions/TimeZone"
         },
+        "generator" : {
+          "$ref" : "#/definitions/JsonGenerator"
+        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
@@ -2022,6 +2025,9 @@
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "annotationIntrospector" : {
+          "$ref" : "#/definitions/AnnotationIntrospector"
+        },
         "filterProvider" : {
           "$ref" : "#/definitions/FilterProvider"
         },
@@ -2030,12 +2036,6 @@
         },
         "defaultNullValueSerializer" : {
           "$ref" : "#/definitions/JsonSerializerObject"
-        },
-        "generator" : {
-          "$ref" : "#/definitions/JsonGenerator"
-        },
-        "annotationIntrospector" : {
-          "$ref" : "#/definitions/AnnotationIntrospector"
         }
       }
     },
@@ -2339,15 +2339,28 @@
         "issuerX500Principal" : {
           "$ref" : "#/definitions/X500Principal"
         },
+        "version" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "issuerDN" : {
           "$ref" : "#/definitions/Principal"
         },
         "subjectDN" : {
           "$ref" : "#/definitions/Principal"
         },
+        "keyUsage" : {
+          "type" : "array",
+          "items" : {
+            "type" : "boolean"
+          }
+        },
         "sigAlgName" : {
           "type" : "string"
         },
+        "serialNumber" : {
+          "type" : "integer"
+        },
         "notBefore" : {
           "type" : "string",
           "format" : "date-time"
@@ -2356,6 +2369,13 @@
           "type" : "string",
           "format" : "date-time"
         },
+        "tbscertificate" : {
+          "type" : "array",
+          "items" : {
+            "type" : "string",
+            "format" : "byte"
+          }
+        },
         "sigAlgOID" : {
           "type" : "string"
         },
@@ -2378,10 +2398,10 @@
             "type" : "boolean"
           }
         },
-        "keyUsage" : {
+        "extendedKeyUsage" : {
           "type" : "array",
           "items" : {
-            "type" : "boolean"
+            "type" : "string"
           }
         },
         "subjectAlternativeNames" : {
@@ -2402,26 +2422,6 @@
             }
           }
         },
-        "serialNumber" : {
-          "type" : "integer"
-        },
-        "tbscertificate" : {
-          "type" : "array",
-          "items" : {
-            "type" : "string",
-            "format" : "byte"
-          }
-        },
-        "extendedKeyUsage" : {
-          "type" : "array",
-          "items" : {
-            "type" : "string"
-          }
-        },
-        "version" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "signature" : {
           "type" : "array",
           "items" : {
@@ -2433,14 +2433,14 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "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 26b7052..33a10b2 100644
--- a/content/swagger/2.10.0-SNAPSHOT/swaggersource.json
+++ b/content/swagger/2.10.0-SNAPSHOT/swaggersource.json
@@ -813,12 +813,12 @@
             "$ref" : "#/definitions/X509Certificate"
           }
         },
-        "httpAuthType" : {
-          "type" : "string"
-        },
         "peerAddress" : {
           "$ref" : "#/definitions/SocketAddress"
         },
+        "httpAuthType" : {
+          "type" : "string"
+        },
         "commandData" : {
           "type" : "string"
         }
@@ -827,6 +827,10 @@
     "Base64Variant" : {
       "type" : "object",
       "properties" : {
+        "maxLineLength" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "paddingChar" : {
           "type" : "string"
         },
@@ -834,10 +838,6 @@
           "type" : "string",
           "format" : "byte"
         },
-        "maxLineLength" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "name" : {
           "type" : "string"
         }
@@ -1040,13 +1040,13 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "numericCodeAsString" : {
+        "displayName" : {
           "type" : "string"
         },
-        "symbol" : {
+        "numericCodeAsString" : {
           "type" : "string"
         },
-        "displayName" : {
+        "symbol" : {
           "type" : "string"
         }
       }
@@ -1072,15 +1072,12 @@
     "DeserializationConfig" : {
       "type" : "object",
       "properties" : {
-        "defaultPropertyInclusion" : {
-          "$ref" : "#/definitions/Value"
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
         },
         "problemHandlers" : {
           "$ref" : "#/definitions/LinkedNodeDeserializationProblemHandler"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -1088,11 +1085,8 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "rootName" : {
-          "type" : "string"
-        },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
+        "defaultPropertyInclusion" : {
+          "$ref" : "#/definitions/Value"
         },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
@@ -1100,6 +1094,12 @@
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
+        },
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
@@ -1109,24 +1109,24 @@
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
-        "handlerInstantiator" : {
-          "$ref" : "#/definitions/HandlerInstantiator"
-        },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
+        "handlerInstantiator" : {
+          "$ref" : "#/definitions/HandlerInstantiator"
+        },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -1147,15 +1147,12 @@
         "parser" : {
           "$ref" : "#/definitions/JsonParser"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
-        "arrayBuilders" : {
-          "$ref" : "#/definitions/ArrayBuilders"
-        },
         "nodeFactory" : {
           "$ref" : "#/definitions/JsonNodeFactory"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -1169,6 +1166,9 @@
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
+        "arrayBuilders" : {
+          "$ref" : "#/definitions/ArrayBuilders"
+        },
         "factory" : {
           "$ref" : "#/definitions/DeserializerFactory"
         }
@@ -1313,17 +1313,17 @@
         "formatName" : {
           "type" : "string"
         },
+        "characterEscapes" : {
+          "$ref" : "#/definitions/CharacterEscapes"
+        },
+        "rootValueSeparator" : {
+          "type" : "string"
+        },
         "inputDecorator" : {
           "$ref" : "#/definitions/InputDecorator"
         },
         "outputDecorator" : {
           "$ref" : "#/definitions/OutputDecorator"
-        },
-        "rootValueSeparator" : {
-          "type" : "string"
-        },
-        "characterEscapes" : {
-          "$ref" : "#/definitions/CharacterEscapes"
         }
       }
     },
@@ -1333,14 +1333,14 @@
         "closed" : {
           "type" : "boolean"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
+        "prettyPrinter" : {
+          "$ref" : "#/definitions/PrettyPrinter"
         },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
-        "prettyPrinter" : {
-          "$ref" : "#/definitions/PrettyPrinter"
+        "outputContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
         "featureMask" : {
           "type" : "integer",
@@ -1350,8 +1350,8 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentValue" : {
-          "type" : "object"
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
         },
         "highestEscapedChar" : {
           "type" : "integer",
@@ -1367,8 +1367,8 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "outputContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
+        "currentValue" : {
+          "type" : "object"
         }
       }
     },
@@ -1406,6 +1406,9 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "closed" : {
+          "type" : "boolean"
+        },
         "text" : {
           "type" : "string"
         },
@@ -1415,10 +1418,6 @@
             "type" : "string"
           }
         },
-        "intValue" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "booleanValue" : {
           "type" : "boolean"
         },
@@ -1442,63 +1441,27 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "closed" : {
-          "type" : "boolean"
+        "objectId" : {
+          "type" : "object"
         },
         "typeId" : {
           "type" : "object"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
-        "tokenLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "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"
-        },
-        "featureMask" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "formatFeatures" : {
-          "type" : "integer",
-          "format" : "int32"
+        "codec" : {
+          "$ref" : "#/definitions/ObjectCodec"
         },
-        "currentTokenId" : {
+        "intValue" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "parsingContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
-        },
-        "currentLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "expectedStartArrayToken" : {
-          "type" : "boolean"
-        },
-        "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" ]
-        },
         "textOffset" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "numberValue" : {
-          "$ref" : "#/definitions/Number"
-        },
         "numberType" : {
           "type" : "string",
           "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
@@ -1512,6 +1475,30 @@
         "embeddedObject" : {
           "type" : "object"
         },
+        "featureMask" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "tokenLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
+        },
+        "currentTokenId" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "currentName" : {
+          "type" : "string"
+        },
+        "formatFeatures" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
+        "currentValue" : {
+          "type" : "object"
+        },
         "binaryValue" : {
           "type" : "array",
           "items" : {
@@ -1537,13 +1524,26 @@
         "valueAsString" : {
           "type" : "string"
         },
-        "objectId" : {
-          "type" : "object"
+        "parsingContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
-        "inputSource" : {
-          "type" : "object"
+        "currentLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
         },
-        "currentValue" : {
+        "expectedStartArrayToken" : {
+          "type" : "boolean"
+        },
+        "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"
+        },
+        "inputSource" : {
           "type" : "object"
         }
       }
@@ -1601,6 +1601,9 @@
     "Locale" : {
       "type" : "object",
       "properties" : {
+        "displayName" : {
+          "type" : "string"
+        },
         "script" : {
           "type" : "string"
         },
@@ -1649,9 +1652,6 @@
         "displayVariant" : {
           "type" : "string"
         },
-        "displayName" : {
-          "type" : "string"
-        },
         "language" : {
           "type" : "string"
         }
@@ -1764,9 +1764,6 @@
     "ObjectMapper" : {
       "type" : "object",
       "properties" : {
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
         "serializationConfig" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -1794,6 +1791,9 @@
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "nodeFactory" : {
           "$ref" : "#/definitions/JsonNodeFactory"
         },
@@ -1908,10 +1908,10 @@
     "PublicKey" : {
       "type" : "object",
       "properties" : {
-        "algorithm" : {
+        "format" : {
           "type" : "string"
         },
-        "format" : {
+        "algorithm" : {
           "type" : "string"
         },
         "encoded" : {
@@ -1943,18 +1943,18 @@
     "SerializationConfig" : {
       "type" : "object",
       "properties" : {
-        "defaultPropertyInclusion" : {
-          "$ref" : "#/definitions/Value"
-        },
-        "filterProvider" : {
-          "$ref" : "#/definitions/FilterProvider"
-        },
         "defaultPrettyPrinter" : {
           "$ref" : "#/definitions/PrettyPrinter"
         },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
+        "defaultPropertyInclusion" : {
+          "$ref" : "#/definitions/Value"
+        },
+        "filterProvider" : {
+          "$ref" : "#/definitions/FilterProvider"
+        },
         "serializationInclusion" : {
           "type" : "string",
           "enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
@@ -1963,18 +1963,18 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "rootName" : {
-          "type" : "string"
-        },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
-        },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
         },
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
+        },
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
@@ -1984,24 +1984,24 @@
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
-        "handlerInstantiator" : {
-          "$ref" : "#/definitions/HandlerInstantiator"
-        },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
+        "handlerInstantiator" : {
+          "$ref" : "#/definitions/HandlerInstantiator"
+        },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -2016,6 +2016,9 @@
         "timeZone" : {
           "$ref" : "#/definitions/TimeZone"
         },
+        "generator" : {
+          "$ref" : "#/definitions/JsonGenerator"
+        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
@@ -2025,6 +2028,9 @@
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
+        "annotationIntrospector" : {
+          "$ref" : "#/definitions/AnnotationIntrospector"
+        },
         "filterProvider" : {
           "$ref" : "#/definitions/FilterProvider"
         },
@@ -2033,12 +2039,6 @@
         },
         "defaultNullValueSerializer" : {
           "$ref" : "#/definitions/JsonSerializerObject"
-        },
-        "generator" : {
-          "$ref" : "#/definitions/JsonGenerator"
-        },
-        "annotationIntrospector" : {
-          "$ref" : "#/definitions/AnnotationIntrospector"
         }
       }
     },
@@ -2296,15 +2296,28 @@
         "issuerX500Principal" : {
           "$ref" : "#/definitions/X500Principal"
         },
+        "version" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "issuerDN" : {
           "$ref" : "#/definitions/Principal"
         },
         "subjectDN" : {
           "$ref" : "#/definitions/Principal"
         },
+        "keyUsage" : {
+          "type" : "array",
+          "items" : {
+            "type" : "boolean"
+          }
+        },
         "sigAlgName" : {
           "type" : "string"
         },
+        "serialNumber" : {
+          "type" : "integer"
+        },
         "notBefore" : {
           "type" : "string",
           "format" : "date-time"
@@ -2313,6 +2326,13 @@
           "type" : "string",
           "format" : "date-time"
         },
+        "tbscertificate" : {
+          "type" : "array",
+          "items" : {
+            "type" : "string",
+            "format" : "byte"
+          }
+        },
         "sigAlgOID" : {
           "type" : "string"
         },
@@ -2335,10 +2355,10 @@
             "type" : "boolean"
           }
         },
-        "keyUsage" : {
+        "extendedKeyUsage" : {
           "type" : "array",
           "items" : {
-            "type" : "boolean"
+            "type" : "string"
           }
         },
         "subjectAlternativeNames" : {
@@ -2359,26 +2379,6 @@
             }
           }
         },
-        "serialNumber" : {
-          "type" : "integer"
-        },
-        "tbscertificate" : {
-          "type" : "array",
-          "items" : {
-            "type" : "string",
-            "format" : "byte"
-          }
-        },
-        "extendedKeyUsage" : {
-          "type" : "array",
-          "items" : {
-            "type" : "string"
-          }
-        },
-        "version" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "signature" : {
           "type" : "array",
           "items" : {
@@ -2390,14 +2390,14 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "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 5b72eae..a3c5956 100644
--- a/content/swagger/2.10.0-SNAPSHOT/v2/swagger.json
+++ b/content/swagger/2.10.0-SNAPSHOT/v2/swagger.json
@@ -25408,12 +25408,12 @@
                         "$ref": "#/definitions/X509Certificate"
                     }
                 },
-                "httpAuthType": {
-                    "type": "string"
-                },
                 "peerAddress": {
                     "$ref": "#/definitions/SocketAddress"
                 },
+                "httpAuthType": {
+                    "type": "string"
+                },
                 "commandData": {
                     "type": "string"
                 }
@@ -25470,6 +25470,10 @@
                         "consumer_backlog_eviction"
                     ]
                 },
+                "limit": {
+                    "type": "integer",
+                    "format": "int64"
+                },
                 "limitSize": {
                     "type": "integer",
                     "format": "int64"
@@ -25477,16 +25481,16 @@
                 "limitTime": {
                     "type": "integer",
                     "format": "int32"
-                },
-                "limit": {
-                    "type": "integer",
-                    "format": "int64"
                 }
             }
         },
         "Base64Variant": {
             "type": "object",
             "properties": {
+                "maxLineLength": {
+                    "type": "integer",
+                    "format": "int32"
+                },
                 "paddingChar": {
                     "type": "string"
                 },
@@ -25494,10 +25498,6 @@
                     "type": "string",
                     "format": "byte"
                 },
-                "maxLineLength": {
-                    "type": "integer",
-                    "format": "int32"
-                },
                 "name": {
                     "type": "string"
                 }
@@ -25506,10 +25506,10 @@
         "BookieAffinityGroupData": {
             "type": "object",
             "properties": {
-                "bookkeeperAffinityGroupPrimary": {
+                "bookkeeperAffinityGroupSecondary": {
                     "type": "string"
                 },
-                "bookkeeperAffinityGroupSecondary": {
+                "bookkeeperAffinityGroupPrimary": {
                     "type": "string"
                 }
             }
@@ -25843,9 +25843,29 @@
                         "type": "string"
                     }
                 },
-                "availablePermits": {
+                "msgRateOut": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "msgThroughputOut": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "bytesOutCounter": {
                     "type": "integer",
-                    "format": "int32"
+                    "format": "int64"
+                },
+                "msgOutCounter": {
+                    "type": "integer",
+                    "format": "int64"
+                },
+                "msgRateRedeliver": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "chunkedMessageRate": {
+                    "type": "number",
+                    "format": "double"
                 },
                 "unackedMessages": {
                     "type": "integer",
@@ -25878,35 +25898,15 @@
                         "type": "string"
                     }
                 },
-                "msgRateRedeliver": {
-                    "type": "number",
-                    "format": "double"
-                },
-                "chunkedMessageRate": {
-                    "type": "number",
-                    "format": "double"
-                },
-                "connectedSince": {
-                    "type": "string"
-                },
                 "consumerName": {
                     "type": "string"
                 },
-                "msgRateOut": {
-                    "type": "number",
-                    "format": "double"
-                },
-                "msgThroughputOut": {
-                    "type": "number",
-                    "format": "double"
-                },
-                "bytesOutCounter": {
-                    "type": "integer",
-                    "format": "int64"
+                "connectedSince": {
+                    "type": "string"
                 },
-                "msgOutCounter": {
+                "availablePermits": {
                     "type": "integer",
-                    "format": "int64"
+                    "format": "int32"
                 },
                 "address": {
                     "type": "string"
@@ -25930,13 +25930,13 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "numericCodeAsString": {
+                "displayName": {
                     "type": "string"
                 },
-                "symbol": {
+                "numericCodeAsString": {
                     "type": "string"
                 },
-                "displayName": {
+                "symbol": {
                     "type": "string"
                 }
             }
@@ -26056,15 +26056,12 @@
         "DeserializationConfig": {
             "type": "object",
             "properties": {
-                "defaultPropertyInclusion": {
-                    "$ref": "#/definitions/Value"
+                "nodeFactory": {
+                    "$ref": "#/definitions/JsonNodeFactory"
                 },
                 "problemHandlers": {
                     "$ref": "#/definitions/LinkedNodeDeserializationProblemHandler"
                 },
-                "nodeFactory": {
-                    "$ref": "#/definitions/JsonNodeFactory"
-                },
                 "annotationIntrospector": {
                     "$ref": "#/definitions/AnnotationIntrospector"
                 },
@@ -26072,11 +26069,8 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "rootName": {
-                    "type": "string"
-                },
-                "fullRootName": {
-                    "$ref": "#/definitions/PropertyName"
+                "defaultPropertyInclusion": {
+                    "$ref": "#/definitions/Value"
                 },
                 "subtypeResolver": {
                     "$ref": "#/definitions/SubtypeResolver"
@@ -26084,6 +26078,12 @@
                 "defaultVisibilityChecker": {
                     "$ref": "#/definitions/VisibilityCheckerObject"
                 },
+                "rootName": {
+                    "type": "string"
+                },
+                "fullRootName": {
+                    "$ref": "#/definitions/PropertyName"
+                },
                 "attributes": {
                     "$ref": "#/definitions/ContextAttributes"
                 },
@@ -26093,24 +26093,24 @@
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
-                },
-                "annotationProcessingEnabled": {
-                    "type": "boolean"
-                },
-                "handlerInstantiator": {
-                    "$ref": "#/definitions/HandlerInstantiator"
-                },
                 "propertyNamingStrategy": {
                     "$ref": "#/definitions/PropertyNamingStrategy"
                 },
                 "dateFormat": {
                     "$ref": "#/definitions/DateFormat"
                 },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "base64Variant": {
                     "$ref": "#/definitions/Base64Variant"
                 },
+                "handlerInstantiator": {
+                    "$ref": "#/definitions/HandlerInstantiator"
+                },
+                "annotationProcessingEnabled": {
+                    "type": "boolean"
+                },
                 "classIntrospector": {
                     "$ref": "#/definitions/ClassIntrospector"
                 }
@@ -26131,15 +26131,12 @@
                 "parser": {
                     "$ref": "#/definitions/JsonParser"
                 },
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
-                },
-                "arrayBuilders": {
-                    "$ref": "#/definitions/ArrayBuilders"
-                },
                 "nodeFactory": {
                     "$ref": "#/definitions/JsonNodeFactory"
                 },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "annotationIntrospector": {
                     "$ref": "#/definitions/AnnotationIntrospector"
                 },
@@ -26153,6 +26150,9 @@
                 "base64Variant": {
                     "$ref": "#/definitions/Base64Variant"
                 },
+                "arrayBuilders": {
+                    "$ref": "#/definitions/ArrayBuilders"
+                },
                 "factory": {
                     "$ref": "#/definitions/DeserializerFactory"
                 }
@@ -26561,17 +26561,17 @@
                 "formatName": {
                     "type": "string"
                 },
+                "characterEscapes": {
+                    "$ref": "#/definitions/CharacterEscapes"
+                },
+                "rootValueSeparator": {
+                    "type": "string"
+                },
                 "inputDecorator": {
                     "$ref": "#/definitions/InputDecorator"
                 },
                 "outputDecorator": {
                     "$ref": "#/definitions/OutputDecorator"
-                },
-                "rootValueSeparator": {
-                    "type": "string"
-                },
-                "characterEscapes": {
-                    "$ref": "#/definitions/CharacterEscapes"
                 }
             }
         },
@@ -26581,14 +26581,14 @@
                 "closed": {
                     "type": "boolean"
                 },
-                "schema": {
-                    "$ref": "#/definitions/FormatSchema"
+                "prettyPrinter": {
+                    "$ref": "#/definitions/PrettyPrinter"
                 },
                 "codec": {
                     "$ref": "#/definitions/ObjectCodec"
                 },
-                "prettyPrinter": {
-                    "$ref": "#/definitions/PrettyPrinter"
+                "outputContext": {
+                    "$ref": "#/definitions/JsonStreamContext"
                 },
                 "featureMask": {
                     "type": "integer",
@@ -26598,8 +26598,8 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "currentValue": {
-                    "type": "object"
+                "schema": {
+                    "$ref": "#/definitions/FormatSchema"
                 },
                 "highestEscapedChar": {
                     "type": "integer",
@@ -26615,8 +26615,8 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "outputContext": {
-                    "$ref": "#/definitions/JsonStreamContext"
+                "currentValue": {
+                    "type": "object"
                 }
             }
         },
@@ -26654,6 +26654,9 @@
                     "type": "integer",
                     "format": "int32"
                 },
+                "closed": {
+                    "type": "boolean"
+                },
                 "text": {
                     "type": "string"
                 },
@@ -26663,10 +26666,6 @@
                         "type": "string"
                     }
                 },
-                "intValue": {
-                    "type": "integer",
-                    "format": "int32"
-                },
                 "booleanValue": {
                     "type": "boolean"
                 },
@@ -26690,21 +26689,12 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "closed": {
-                    "type": "boolean"
+                "objectId": {
+                    "type": "object"
                 },
                 "typeId": {
                     "type": "object"
                 },
-                "schema": {
-                    "$ref": "#/definitions/FormatSchema"
-                },
-                "tokenLocation": {
-                    "$ref": "#/definitions/JsonLocation"
-                },
-                "codec": {
-                    "$ref": "#/definitions/ObjectCodec"
-                },
                 "currentToken": {
                     "type": "string",
                     "enum": [
@@ -26723,58 +26713,17 @@
                         "VALUE_NULL"
                     ]
                 },
-                "currentName": {
-                    "type": "string"
-                },
-                "featureMask": {
-                    "type": "integer",
-                    "format": "int32"
-                },
-                "formatFeatures": {
-                    "type": "integer",
-                    "format": "int32"
+                "codec": {
+                    "$ref": "#/definitions/ObjectCodec"
                 },
-                "currentTokenId": {
+                "intValue": {
                     "type": "integer",
                     "format": "int32"
                 },
-                "parsingContext": {
-                    "$ref": "#/definitions/JsonStreamContext"
-                },
-                "currentLocation": {
-                    "$ref": "#/definitions/JsonLocation"
-                },
-                "expectedStartArrayToken": {
-                    "type": "boolean"
-                },
-                "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"
-                    ]
-                },
                 "textOffset": {
                     "type": "integer",
                     "format": "int32"
                 },
-                "numberValue": {
-                    "$ref": "#/definitions/Number"
-                },
                 "numberType": {
                     "type": "string",
                     "enum": [
@@ -26795,6 +26744,30 @@
                 "embeddedObject": {
                     "type": "object"
                 },
+                "featureMask": {
+                    "type": "integer",
+                    "format": "int32"
+                },
+                "tokenLocation": {
+                    "$ref": "#/definitions/JsonLocation"
+                },
+                "currentTokenId": {
+                    "type": "integer",
+                    "format": "int32"
+                },
+                "currentName": {
+                    "type": "string"
+                },
+                "formatFeatures": {
+                    "type": "integer",
+                    "format": "int32"
+                },
+                "schema": {
+                    "$ref": "#/definitions/FormatSchema"
+                },
+                "currentValue": {
+                    "type": "object"
+                },
                 "binaryValue": {
                     "type": "array",
                     "items": {
@@ -26820,13 +26793,40 @@
                 "valueAsString": {
                     "type": "string"
                 },
-                "objectId": {
-                    "type": "object"
-                },
-                "inputSource": {
-                    "type": "object"
+                "parsingContext": {
+                    "$ref": "#/definitions/JsonStreamContext"
                 },
-                "currentValue": {
+                "currentLocation": {
+                    "$ref": "#/definitions/JsonLocation"
+                },
+                "expectedStartArrayToken": {
+                    "type": "boolean"
+                },
+                "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"
+                },
+                "inputSource": {
                     "type": "object"
                 }
             }
@@ -27159,20 +27159,13 @@
                     "type": "number",
                     "format": "double"
                 },
-                "underLoaded": {
-                    "type": "boolean"
-                },
-                "overLoaded": {
-                    "type": "boolean"
-                },
-                "loadReportType": {
-                    "type": "string"
-                },
-                "cpu": {
-                    "$ref": "#/definitions/ResourceUsage"
+                "msgThroughputIn": {
+                    "type": "number",
+                    "format": "double"
                 },
-                "memory": {
-                    "$ref": "#/definitions/ResourceUsage"
+                "msgThroughputOut": {
+                    "type": "number",
+                    "format": "double"
                 },
                 "directMemory": {
                     "$ref": "#/definitions/ResourceUsage"
@@ -27187,19 +27180,29 @@
                     "type": "integer",
                     "format": "int64"
                 },
-                "msgThroughputIn": {
-                    "type": "number",
-                    "format": "double"
+                "underLoaded": {
+                    "type": "boolean"
                 },
-                "msgThroughputOut": {
-                    "type": "number",
-                    "format": "double"
+                "overLoaded": {
+                    "type": "boolean"
+                },
+                "loadReportType": {
+                    "type": "string"
+                },
+                "cpu": {
+                    "$ref": "#/definitions/ResourceUsage"
+                },
+                "memory": {
+                    "$ref": "#/definitions/ResourceUsage"
                 }
             }
         },
         "Locale": {
             "type": "object",
             "properties": {
+                "displayName": {
+                    "type": "string"
+                },
                 "script": {
                     "type": "string"
                 },
@@ -27248,9 +27251,6 @@
                 "displayVariant": {
                     "type": "string"
                 },
-                "displayName": {
-                    "type": "string"
-                },
                 "language": {
                     "type": "string"
                 }
@@ -27472,17 +27472,32 @@
                         "type": "string"
                     }
                 },
-                "clientVersion": {
+                "producerName": {
                     "type": "string"
                 },
-                "producerId": {
-                    "type": "integer",
-                    "format": "int64"
+                "msgRateIn": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "msgThroughputIn": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "averageMsgSize": {
+                    "type": "number",
+                    "format": "double"
                 },
                 "chunkedMessageRate": {
                     "type": "number",
                     "format": "double"
                 },
+                "clientVersion": {
+                    "type": "string"
+                },
+                "producerId": {
+                    "type": "integer",
+                    "format": "int64"
+                },
                 "connectedSince": {
                     "type": "string"
                 },
@@ -27494,8 +27509,20 @@
                         "WaitForExclusive"
                     ]
                 },
-                "producerName": {
+                "address": {
                     "type": "string"
+                }
+            }
+        },
+        "NonPersistentReplicatorStats": {
+            "type": "object",
+            "properties": {
+                "msgDropRate": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "connected": {
+                    "type": "boolean"
                 },
                 "msgRateIn": {
                     "type": "number",
@@ -27505,25 +27532,14 @@
                     "type": "number",
                     "format": "double"
                 },
-                "averageMsgSize": {
+                "msgRateOut": {
                     "type": "number",
                     "format": "double"
                 },
-                "address": {
-                    "type": "string"
-                }
-            }
-        },
-        "NonPersistentReplicatorStats": {
-            "type": "object",
-            "properties": {
-                "msgDropRate": {
+                "msgThroughputOut": {
                     "type": "number",
                     "format": "double"
                 },
-                "connected": {
-                    "type": "boolean"
-                },
                 "msgRateExpired": {
                     "type": "number",
                     "format": "double"
@@ -27547,22 +27563,6 @@
                 "replicationDelayInSeconds": {
                     "type": "integer",
                     "format": "int64"
-                },
-                "msgRateIn": {
-                    "type": "number",
-                    "format": "double"
-                },
-                "msgThroughputIn": {
-                    "type": "number",
-                    "format": "double"
-                },
-                "msgRateOut": {
-                    "type": "number",
-                    "format": "double"
-                },
-                "msgThroughputOut": {
-                    "type": "number",
-                    "format": "double"
                 }
             }
         },
@@ -27573,44 +27573,51 @@
                     "type": "number",
                     "format": "double"
                 },
-                "msgBacklog": {
+                "backlogSize": {
                     "type": "integer",
                     "format": "int64"
                 },
-                "unackedMessages": {
-                    "type": "integer",
-                    "format": "int64"
+                "replicated": {
+                    "type": "boolean"
                 },
-                "activeConsumerName": {
-                    "type": "string"
+                "durable": {
+                    "type": "boolean"
                 },
-                "msgRateExpired": {
+                "consumers": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/ConsumerStats"
+                    }
+                },
+                "msgRateOut": {
                     "type": "number",
                     "format": "double"
                 },
-                "totalMsgExpired": {
-                    "type": "integer",
-                    "format": "int64"
+                "msgThroughputOut": {
+                    "type": "number",
+                    "format": "double"
                 },
-                "lastExpireTimestamp": {
+                "bytesOutCounter": {
                     "type": "integer",
                     "format": "int64"
                 },
-                "lastConsumedFlowTimestamp": {
+                "msgOutCounter": {
                     "type": "integer",
                     "format": "int64"
                 },
-                "lastConsumedTimestamp": {
+                "nonContiguousDeletedMessagesRanges": {
                     "type": "integer",
-                    "format": "int64"
+                    "format": "int32"
                 },
-                "lastAckedTimestamp": {
+                "nonContiguousDeletedMessagesRangesSerializedSize": {
                     "type": "integer",
-                    "format": "int64"
+                    "format": "int32"
                 },
-                "lastMarkDeleteAdvancedTimestamp": {
-                    "type": "integer",
-                    "format": "int64"
+                "allowOutOfOrderDelivery": {
+                    "type": "boolean"
+                },
+                "keySharedMode": {
+                    "type": "string"
                 },
                 "consumersAfterMarkDeletePosition": {
                     "type": "object",
@@ -27618,6 +27625,10 @@
                         "type": "string"
                     }
                 },
+                "msgBacklog": {
+                    "type": "integer",
+                    "format": "int64"
+                },
                 "msgRateRedeliver": {
                     "type": "number",
                     "format": "double"
@@ -27641,56 +27652,45 @@
                     "type": "integer",
                     "format": "int64"
                 },
-                "allowOutOfOrderDelivery": {
-                    "type": "boolean"
+                "unackedMessages": {
+                    "type": "integer",
+                    "format": "int64"
                 },
-                "keySharedMode": {
+                "activeConsumerName": {
                     "type": "string"
                 },
-                "subscriptionProperties": {
-                    "type": "object",
-                    "additionalProperties": {
-                        "type": "string"
-                    }
-                },
-                "replicated": {
-                    "type": "boolean"
-                },
-                "durable": {
-                    "type": "boolean"
-                },
-                "msgRateOut": {
+                "msgRateExpired": {
                     "type": "number",
                     "format": "double"
                 },
-                "msgThroughputOut": {
-                    "type": "number",
-                    "format": "double"
+                "totalMsgExpired": {
+                    "type": "integer",
+                    "format": "int64"
                 },
-                "bytesOutCounter": {
+                "lastExpireTimestamp": {
                     "type": "integer",
                     "format": "int64"
                 },
-                "msgOutCounter": {
+                "lastConsumedFlowTimestamp": {
                     "type": "integer",
                     "format": "int64"
                 },
-                "backlogSize": {
+                "lastConsumedTimestamp": {
                     "type": "integer",
                     "format": "int64"
                 },
-                "nonContiguousDeletedMessagesRanges": {
+                "lastAckedTimestamp": {
                     "type": "integer",
-                    "format": "int32"
+                    "format": "int64"
                 },
-                "nonContiguousDeletedMessagesRangesSerializedSize": {
+                "lastMarkDeleteAdvancedTimestamp": {
                     "type": "integer",
-                    "format": "int32"
+                    "format": "int64"
                 },
-                "consumers": {
-                    "type": "array",
-                    "items": {
-                        "$ref": "#/definitions/ConsumerStats"
+                "subscriptionProperties": {
+                    "type": "object",
+                    "additionalProperties": {
+                        "type": "string"
                     }
                 },
                 "type": {
@@ -27701,10 +27701,6 @@
         "NonPersistentTopicStats": {
             "type": "object",
             "properties": {
-                "msgDropRate": {
-                    "type": "number",
-                    "format": "double"
-                },
                 "subscriptions": {
                     "type": "object",
                     "additionalProperties": {
@@ -27723,6 +27719,14 @@
                         "$ref": "#/definitions/NonPersistentReplicatorStats"
                     }
                 },
+                "msgDropRate": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "backlogSize": {
+                    "type": "integer",
+                    "format": "int64"
+                },
                 "msgRateIn": {
                     "type": "number",
                     "format": "double"
@@ -27766,10 +27770,6 @@
                     "type": "integer",
                     "format": "int64"
                 },
-                "backlogSize": {
-                    "type": "integer",
-                    "format": "int64"
-                },
                 "earliestMsgPublishTimeInBacklogs": {
                     "type": "integer",
                     "format": "int64"
@@ -27862,9 +27862,6 @@
         "ObjectMapper": {
             "type": "object",
             "properties": {
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
-                },
                 "serializationConfig": {
                     "$ref": "#/definitions/SerializationConfig"
                 },
@@ -27892,6 +27889,9 @@
                 "propertyNamingStrategy": {
                     "$ref": "#/definitions/PropertyNamingStrategy"
                 },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "nodeFactory": {
                     "$ref": "#/definitions/JsonNodeFactory"
                 },
@@ -27920,15 +27920,12 @@
                     "type": "integer",
                     "format": "int64"
                 },
-                "fileSystemURI": {
+                "managedLedgerOffloadDriver": {
                     "type": "string"
                 },
                 "offloadersDirectory": {
                     "type": "string"
                 },
-                "managedLedgerOffloadDriver": {
-                    "type": "string"
-                },
                 "managedLedgerOffloadMaxThreads": {
                     "type": "integer",
                     "format": "int32"
@@ -27993,6 +27990,9 @@
                 "fileSystemProfilePath": {
                     "type": "string"
                 },
+                "fileSystemURI": {
+                    "type": "string"
+                },
                 "managedLedgerOffloadBucket": {
                     "type": "string"
                 },
@@ -28777,10 +28777,10 @@
         "PublicKey": {
             "type": "object",
             "properties": {
-                "algorithm": {
+                "format": {
                     "type": "string"
                 },
-                "format": {
+                "algorithm": {
                     "type": "string"
                 },
                 "encoded": {
@@ -28814,17 +28814,32 @@
                         "type": "string"
                     }
                 },
-                "clientVersion": {
+                "producerName": {
                     "type": "string"
                 },
-                "producerId": {
-                    "type": "integer",
-                    "format": "int64"
+                "msgRateIn": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "msgThroughputIn": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "averageMsgSize": {
+                    "type": "number",
+                    "format": "double"
                 },
                 "chunkedMessageRate": {
                     "type": "number",
                     "format": "double"
                 },
+                "clientVersion": {
+                    "type": "string"
+                },
+                "producerId": {
+                    "type": "integer",
+                    "format": "int64"
+                },
                 "connectedSince": {
                     "type": "string"
                 },
@@ -28836,21 +28851,6 @@
                         "WaitForExclusive"
                     ]
                 },
-                "producerName": {
-                    "type": "string"
-                },
-                "msgRateIn": {
-                    "type": "number",
-                    "format": "double"
-                },
-                "msgThroughputIn": {
-                    "type": "number",
-                    "format": "double"
-                },
-                "averageMsgSize": {
-                    "type": "number",
-                    "format": "double"
-                },
                 "address": {
                     "type": "string"
                 }
@@ -28870,6 +28870,22 @@
                 "connected": {
                     "type": "boolean"
                 },
+                "msgRateIn": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "msgThroughputIn": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "msgRateOut": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "msgThroughputOut": {
+                    "type": "number",
+                    "format": "double"
+                },
                 "msgRateExpired": {
                     "type": "number",
                     "format": "double"
@@ -28893,22 +28909,6 @@
                 "replicationDelayInSeconds": {
                     "type": "integer",
                     "format": "int64"
-                },
-                "msgRateIn": {
-                    "type": "number",
-                    "format": "double"
-                },
-                "msgThroughputIn": {
-                    "type": "number",
-                    "format": "double"
-                },
-                "msgRateOut": {
-                    "type": "number",
-                    "format": "double"
-                },
-                "msgThroughputOut": {
-                    "type": "number",
-                    "format": "double"
                 }
             }
         },
@@ -29003,11 +29003,11 @@
         "ResourceUnit": {
             "type": "object",
             "properties": {
-                "availableResource": {
-                    "$ref": "#/definitions/ResourceDescription"
-                },
                 "resourceId": {
                     "type": "string"
+                },
+                "availableResource": {
+                    "$ref": "#/definitions/ResourceDescription"
                 }
             }
         },
@@ -29060,18 +29060,18 @@
         "SerializationConfig": {
             "type": "object",
             "properties": {
-                "defaultPropertyInclusion": {
-                    "$ref": "#/definitions/Value"
-                },
-                "filterProvider": {
-                    "$ref": "#/definitions/FilterProvider"
-                },
                 "defaultPrettyPrinter": {
                     "$ref": "#/definitions/PrettyPrinter"
                 },
                 "annotationIntrospector": {
                     "$ref": "#/definitions/AnnotationIntrospector"
                 },
+                "defaultPropertyInclusion": {
+                    "$ref": "#/definitions/Value"
+                },
+                "filterProvider": {
+                    "$ref": "#/definitions/FilterProvider"
+                },
                 "serializationInclusion": {
                     "type": "string",
                     "enum": [
@@ -29087,18 +29087,18 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "rootName": {
-                    "type": "string"
-                },
-                "fullRootName": {
-                    "$ref": "#/definitions/PropertyName"
-                },
                 "subtypeResolver": {
                     "$ref": "#/definitions/SubtypeResolver"
                 },
                 "defaultVisibilityChecker": {
                     "$ref": "#/definitions/VisibilityCheckerObject"
                 },
+                "rootName": {
+                    "type": "string"
+                },
+                "fullRootName": {
+                    "$ref": "#/definitions/PropertyName"
+                },
                 "attributes": {
                     "$ref": "#/definitions/ContextAttributes"
                 },
@@ -29108,24 +29108,24 @@
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
-                },
-                "annotationProcessingEnabled": {
-                    "type": "boolean"
-                },
-                "handlerInstantiator": {
-                    "$ref": "#/definitions/HandlerInstantiator"
-                },
                 "propertyNamingStrategy": {
                     "$ref": "#/definitions/PropertyNamingStrategy"
                 },
                 "dateFormat": {
                     "$ref": "#/definitions/DateFormat"
                 },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "base64Variant": {
                     "$ref": "#/definitions/Base64Variant"
                 },
+                "handlerInstantiator": {
+                    "$ref": "#/definitions/HandlerInstantiator"
+                },
+                "annotationProcessingEnabled": {
+                    "type": "boolean"
+                },
                 "classIntrospector": {
                     "$ref": "#/definitions/ClassIntrospector"
                 }
@@ -29140,6 +29140,9 @@
                 "timeZone": {
                     "$ref": "#/definitions/TimeZone"
                 },
+                "generator": {
+                    "$ref": "#/definitions/JsonGenerator"
+                },
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
@@ -29149,6 +29152,9 @@
                 "typeFactory": {
                     "$ref": "#/definitions/TypeFactory"
                 },
+                "annotationIntrospector": {
+                    "$ref": "#/definitions/AnnotationIntrospector"
+                },
                 "filterProvider": {
                     "$ref": "#/definitions/FilterProvider"
                 },
@@ -29157,12 +29163,6 @@
                 },
                 "defaultNullValueSerializer": {
                     "$ref": "#/definitions/JsonSerializerObject"
-                },
-                "generator": {
-                    "$ref": "#/definitions/JsonGenerator"
-                },
-                "annotationIntrospector": {
-                    "$ref": "#/definitions/AnnotationIntrospector"
                 }
             }
         },
@@ -29256,44 +29256,51 @@
         "SubscriptionStats": {
             "type": "object",
             "properties": {
-                "msgBacklog": {
+                "backlogSize": {
                     "type": "integer",
                     "format": "int64"
                 },
-                "unackedMessages": {
-                    "type": "integer",
-                    "format": "int64"
+                "replicated": {
+                    "type": "boolean"
                 },
-                "activeConsumerName": {
-                    "type": "string"
+                "durable": {
+                    "type": "boolean"
                 },
-                "msgRateExpired": {
+                "consumers": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/ConsumerStats"
+                    }
+                },
+                "msgRateOut": {
                     "type": "number",
                     "format": "double"
                 },
-                "totalMsgExpired": {
-                    "type": "integer",
-                    "format": "int64"
+                "msgThroughputOut": {
+                    "type": "number",
+                    "format": "double"
                 },
-                "lastExpireTimestamp": {
+                "bytesOutCounter": {
                     "type": "integer",
                     "format": "int64"
                 },
-                "lastConsumedFlowTimestamp": {
+                "msgOutCounter": {
                     "type": "integer",
                     "format": "int64"
                 },
-                "lastConsumedTimestamp": {
+                "nonContiguousDeletedMessagesRanges": {
                     "type": "integer",
-                    "format": "int64"
+                    "format": "int32"
                 },
-                "lastAckedTimestamp": {
+                "nonContiguousDeletedMessagesRangesSerializedSize": {
                     "type": "integer",
-                    "format": "int64"
+                    "format": "int32"
                 },
-                "lastMarkDeleteAdvancedTimestamp": {
-                    "type": "integer",
-                    "format": "int64"
+                "allowOutOfOrderDelivery": {
+                    "type": "boolean"
+                },
+                "keySharedMode": {
+                    "type": "string"
                 },
                 "consumersAfterMarkDeletePosition": {
                     "type": "object",
@@ -29301,6 +29308,10 @@
                         "type": "string"
                     }
                 },
+                "msgBacklog": {
+                    "type": "integer",
+                    "format": "int64"
+                },
                 "msgRateRedeliver": {
                     "type": "number",
                     "format": "double"
@@ -29324,56 +29335,45 @@
                     "type": "integer",
                     "format": "int64"
                 },
-                "allowOutOfOrderDelivery": {
-                    "type": "boolean"
+                "unackedMessages": {
+                    "type": "integer",
+                    "format": "int64"
                 },
-                "keySharedMode": {
+                "activeConsumerName": {
                     "type": "string"
                 },
-                "subscriptionProperties": {
-                    "type": "object",
-                    "additionalProperties": {
-                        "type": "string"
-                    }
-                },
-                "replicated": {
-                    "type": "boolean"
-                },
-                "durable": {
-                    "type": "boolean"
-                },
-                "msgRateOut": {
+                "msgRateExpired": {
                     "type": "number",
                     "format": "double"
                 },
-                "msgThroughputOut": {
-                    "type": "number",
-                    "format": "double"
+                "totalMsgExpired": {
+                    "type": "integer",
+                    "format": "int64"
                 },
-                "bytesOutCounter": {
+                "lastExpireTimestamp": {
                     "type": "integer",
                     "format": "int64"
                 },
-                "msgOutCounter": {
+                "lastConsumedFlowTimestamp": {
                     "type": "integer",
                     "format": "int64"
                 },
-                "backlogSize": {
+                "lastConsumedTimestamp": {
                     "type": "integer",
                     "format": "int64"
                 },
-                "nonContiguousDeletedMessagesRanges": {
+                "lastAckedTimestamp": {
                     "type": "integer",
-                    "format": "int32"
+                    "format": "int64"
                 },
-                "nonContiguousDeletedMessagesRangesSerializedSize": {
+                "lastMarkDeleteAdvancedTimestamp": {
                     "type": "integer",
-                    "format": "int32"
+                    "format": "int64"
                 },
-                "consumers": {
-                    "type": "array",
-                    "items": {
-                        "$ref": "#/definitions/ConsumerStats"
+                "subscriptionProperties": {
+                    "type": "object",
+                    "additionalProperties": {
+                        "type": "string"
                     }
                 },
                 "type": {
@@ -29459,6 +29459,10 @@
         "TopicStats": {
             "type": "object",
             "properties": {
+                "backlogSize": {
+                    "type": "integer",
+                    "format": "int64"
+                },
                 "subscriptions": {
                     "type": "object",
                     "additionalProperties": {
@@ -29508,10 +29512,6 @@
                     "type": "integer",
                     "format": "int64"
                 },
-                "backlogSize": {
-                    "type": "integer",
-                    "format": "int64"
-                },
                 "earliestMsgPublishTimeInBacklogs": {
                     "type": "integer",
                     "format": "int64"
@@ -29978,20 +29978,20 @@
                 "initialized": {
                     "type": "boolean"
                 },
-                "functions": {
-                    "$ref": "#/definitions/FunctionsWorkerService"
-                },
-                "sinks": {
-                    "$ref": "#/definitions/SinksWorkerService"
-                },
                 "functionsV2": {
                     "$ref": "#/definitions/FunctionsV2WorkerService"
                 },
+                "workerConfig": {
+                    "$ref": "#/definitions/WorkerConfig"
+                },
                 "workers": {
                     "$ref": "#/definitions/WorkersWorkerService"
                 },
-                "workerConfig": {
-                    "$ref": "#/definitions/WorkerConfig"
+                "functions": {
+                    "$ref": "#/definitions/FunctionsWorkerService"
+                },
+                "sinks": {
+                    "$ref": "#/definitions/SinksWorkerService"
                 }
             }
         },
@@ -30028,15 +30028,28 @@
                 "issuerX500Principal": {
                     "$ref": "#/definitions/X500Principal"
                 },
+                "version": {
+                    "type": "integer",
+                    "format": "int32"
+                },
                 "issuerDN": {
                     "$ref": "#/definitions/Principal"
                 },
                 "subjectDN": {
                     "$ref": "#/definitions/Principal"
                 },
+                "keyUsage": {
+                    "type": "array",
+                    "items": {
+                        "type": "boolean"
+                    }
+                },
                 "sigAlgName": {
                     "type": "string"
                 },
+                "serialNumber": {
+                    "type": "integer"
+                },
                 "notBefore": {
                     "type": "string",
                     "format": "date-time"
@@ -30045,6 +30058,13 @@
                     "type": "string",
                     "format": "date-time"
                 },
+                "tbscertificate": {
+                    "type": "array",
+                    "items": {
+                        "type": "string",
+                        "format": "byte"
+                    }
+                },
                 "sigAlgOID": {
                     "type": "string"
                 },
@@ -30067,10 +30087,10 @@
                         "type": "boolean"
                     }
                 },
-                "keyUsage": {
+                "extendedKeyUsage": {
                     "type": "array",
                     "items": {
-                        "type": "boolean"
+                        "type": "string"
                     }
                 },
                 "subjectAlternativeNames": {
@@ -30091,26 +30111,6 @@
                         }
                     }
                 },
-                "serialNumber": {
-                    "type": "integer"
-                },
-                "tbscertificate": {
-                    "type": "array",
-                    "items": {
-                        "type": "string",
-                        "format": "byte"
-                    }
-                },
-                "extendedKeyUsage": {
-                    "type": "array",
-                    "items": {
-                        "type": "string"
-                    }
-                },
-                "version": {
-                    "type": "integer",
-                    "format": "int32"
-                },
                 "signature": {
                     "type": "array",
                     "items": {
@@ -30122,14 +30122,14 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "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/v3/swaggerfunctions.json b/content/swagger/2.10.0-SNAPSHOT/v3/swaggerfunctions.json
index e65cc30..54eccf9 100644
--- a/content/swagger/2.10.0-SNAPSHOT/v3/swaggerfunctions.json
+++ b/content/swagger/2.10.0-SNAPSHOT/v3/swaggerfunctions.json
@@ -1174,12 +1174,12 @@
                         "$ref": "#/definitions/X509Certificate"
                     }
                 },
-                "httpAuthType": {
-                    "type": "string"
-                },
                 "peerAddress": {
                     "$ref": "#/definitions/SocketAddress"
                 },
+                "httpAuthType": {
+                    "type": "string"
+                },
                 "commandData": {
                     "type": "string"
                 }
@@ -1188,6 +1188,10 @@
         "Base64Variant": {
             "type": "object",
             "properties": {
+                "maxLineLength": {
+                    "type": "integer",
+                    "format": "int32"
+                },
                 "paddingChar": {
                     "type": "string"
                 },
@@ -1195,10 +1199,6 @@
                     "type": "string",
                     "format": "byte"
                 },
-                "maxLineLength": {
-                    "type": "integer",
-                    "format": "int32"
-                },
                 "name": {
                     "type": "string"
                 }
@@ -1390,13 +1390,13 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "numericCodeAsString": {
+                "displayName": {
                     "type": "string"
                 },
-                "symbol": {
+                "numericCodeAsString": {
                     "type": "string"
                 },
-                "displayName": {
+                "symbol": {
                     "type": "string"
                 }
             }
@@ -1422,15 +1422,12 @@
         "DeserializationConfig": {
             "type": "object",
             "properties": {
-                "defaultPropertyInclusion": {
-                    "$ref": "#/definitions/Value"
+                "nodeFactory": {
+                    "$ref": "#/definitions/JsonNodeFactory"
                 },
                 "problemHandlers": {
                     "$ref": "#/definitions/LinkedNodeDeserializationProblemHandler"
                 },
-                "nodeFactory": {
-                    "$ref": "#/definitions/JsonNodeFactory"
-                },
                 "annotationIntrospector": {
                     "$ref": "#/definitions/AnnotationIntrospector"
                 },
@@ -1438,11 +1435,8 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "rootName": {
-                    "type": "string"
-                },
-                "fullRootName": {
-                    "$ref": "#/definitions/PropertyName"
+                "defaultPropertyInclusion": {
+                    "$ref": "#/definitions/Value"
                 },
                 "subtypeResolver": {
                     "$ref": "#/definitions/SubtypeResolver"
@@ -1450,6 +1444,12 @@
                 "defaultVisibilityChecker": {
                     "$ref": "#/definitions/VisibilityCheckerObject"
                 },
+                "rootName": {
+                    "type": "string"
+                },
+                "fullRootName": {
+                    "$ref": "#/definitions/PropertyName"
+                },
                 "attributes": {
                     "$ref": "#/definitions/ContextAttributes"
                 },
@@ -1459,24 +1459,24 @@
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
-                },
-                "annotationProcessingEnabled": {
-                    "type": "boolean"
-                },
-                "handlerInstantiator": {
-                    "$ref": "#/definitions/HandlerInstantiator"
-                },
                 "propertyNamingStrategy": {
                     "$ref": "#/definitions/PropertyNamingStrategy"
                 },
                 "dateFormat": {
                     "$ref": "#/definitions/DateFormat"
                 },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "base64Variant": {
                     "$ref": "#/definitions/Base64Variant"
                 },
+                "handlerInstantiator": {
+                    "$ref": "#/definitions/HandlerInstantiator"
+                },
+                "annotationProcessingEnabled": {
+                    "type": "boolean"
+                },
                 "classIntrospector": {
                     "$ref": "#/definitions/ClassIntrospector"
                 }
@@ -1497,15 +1497,12 @@
                 "parser": {
                     "$ref": "#/definitions/JsonParser"
                 },
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
-                },
-                "arrayBuilders": {
-                    "$ref": "#/definitions/ArrayBuilders"
-                },
                 "nodeFactory": {
                     "$ref": "#/definitions/JsonNodeFactory"
                 },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "annotationIntrospector": {
                     "$ref": "#/definitions/AnnotationIntrospector"
                 },
@@ -1519,6 +1516,9 @@
                 "base64Variant": {
                     "$ref": "#/definitions/Base64Variant"
                 },
+                "arrayBuilders": {
+                    "$ref": "#/definitions/ArrayBuilders"
+                },
                 "factory": {
                     "$ref": "#/definitions/DeserializerFactory"
                 }
@@ -2179,17 +2179,17 @@
                 "formatName": {
                     "type": "string"
                 },
+                "characterEscapes": {
+                    "$ref": "#/definitions/CharacterEscapes"
+                },
+                "rootValueSeparator": {
+                    "type": "string"
+                },
                 "inputDecorator": {
                     "$ref": "#/definitions/InputDecorator"
                 },
                 "outputDecorator": {
                     "$ref": "#/definitions/OutputDecorator"
-                },
-                "rootValueSeparator": {
-                    "type": "string"
-                },
-                "characterEscapes": {
-                    "$ref": "#/definitions/CharacterEscapes"
                 }
             }
         },
@@ -2199,14 +2199,14 @@
                 "closed": {
                     "type": "boolean"
                 },
-                "schema": {
-                    "$ref": "#/definitions/FormatSchema"
+                "prettyPrinter": {
+                    "$ref": "#/definitions/PrettyPrinter"
                 },
                 "codec": {
                     "$ref": "#/definitions/ObjectCodec"
                 },
-                "prettyPrinter": {
-                    "$ref": "#/definitions/PrettyPrinter"
+                "outputContext": {
+                    "$ref": "#/definitions/JsonStreamContext"
                 },
                 "featureMask": {
                     "type": "integer",
@@ -2216,8 +2216,8 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "currentValue": {
-                    "type": "object"
+                "schema": {
+                    "$ref": "#/definitions/FormatSchema"
                 },
                 "highestEscapedChar": {
                     "type": "integer",
@@ -2233,8 +2233,8 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "outputContext": {
-                    "$ref": "#/definitions/JsonStreamContext"
+                "currentValue": {
+                    "type": "object"
                 }
             }
         },
@@ -2272,6 +2272,9 @@
                     "type": "integer",
                     "format": "int32"
                 },
+                "closed": {
+                    "type": "boolean"
+                },
                 "text": {
                     "type": "string"
                 },
@@ -2281,10 +2284,6 @@
                         "type": "string"
                     }
                 },
-                "intValue": {
-                    "type": "integer",
-                    "format": "int32"
-                },
                 "booleanValue": {
                     "type": "boolean"
                 },
@@ -2308,21 +2307,12 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "closed": {
-                    "type": "boolean"
+                "objectId": {
+                    "type": "object"
                 },
                 "typeId": {
                     "type": "object"
                 },
-                "schema": {
-                    "$ref": "#/definitions/FormatSchema"
-                },
-                "tokenLocation": {
-                    "$ref": "#/definitions/JsonLocation"
-                },
-                "codec": {
-                    "$ref": "#/definitions/ObjectCodec"
-                },
                 "currentToken": {
                     "type": "string",
                     "enum": [
@@ -2341,58 +2331,17 @@
                         "VALUE_NULL"
                     ]
                 },
-                "currentName": {
-                    "type": "string"
-                },
-                "featureMask": {
-                    "type": "integer",
-                    "format": "int32"
-                },
-                "formatFeatures": {
-                    "type": "integer",
-                    "format": "int32"
+                "codec": {
+                    "$ref": "#/definitions/ObjectCodec"
                 },
-                "currentTokenId": {
+                "intValue": {
                     "type": "integer",
                     "format": "int32"
                 },
-                "parsingContext": {
-                    "$ref": "#/definitions/JsonStreamContext"
-                },
-                "currentLocation": {
-                    "$ref": "#/definitions/JsonLocation"
-                },
-                "expectedStartArrayToken": {
-                    "type": "boolean"
-                },
-                "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"
-                    ]
-                },
                 "textOffset": {
                     "type": "integer",
                     "format": "int32"
                 },
-                "numberValue": {
-                    "$ref": "#/definitions/Number"
-                },
                 "numberType": {
                     "type": "string",
                     "enum": [
@@ -2413,6 +2362,30 @@
                 "embeddedObject": {
                     "type": "object"
                 },
+                "featureMask": {
+                    "type": "integer",
+                    "format": "int32"
+                },
+                "tokenLocation": {
+                    "$ref": "#/definitions/JsonLocation"
+                },
+                "currentTokenId": {
+                    "type": "integer",
+                    "format": "int32"
+                },
+                "currentName": {
+                    "type": "string"
+                },
+                "formatFeatures": {
+                    "type": "integer",
+                    "format": "int32"
+                },
+                "schema": {
+                    "$ref": "#/definitions/FormatSchema"
+                },
+                "currentValue": {
+                    "type": "object"
+                },
                 "binaryValue": {
                     "type": "array",
                     "items": {
@@ -2438,13 +2411,40 @@
                 "valueAsString": {
                     "type": "string"
                 },
-                "objectId": {
-                    "type": "object"
+                "parsingContext": {
+                    "$ref": "#/definitions/JsonStreamContext"
                 },
-                "inputSource": {
-                    "type": "object"
+                "currentLocation": {
+                    "$ref": "#/definitions/JsonLocation"
                 },
-                "currentValue": {
+                "expectedStartArrayToken": {
+                    "type": "boolean"
+                },
+                "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"
+                },
+                "inputSource": {
                     "type": "object"
                 }
             }
@@ -2502,6 +2502,9 @@
         "Locale": {
             "type": "object",
             "properties": {
+                "displayName": {
+                    "type": "string"
+                },
                 "script": {
                     "type": "string"
                 },
@@ -2550,9 +2553,6 @@
                 "displayVariant": {
                     "type": "string"
                 },
-                "displayName": {
-                    "type": "string"
-                },
                 "language": {
                     "type": "string"
                 }
@@ -2564,36 +2564,22 @@
         "Message": {
             "type": "object",
             "properties": {
-                "data": {
+                "keyBytes": {
                     "type": "array",
                     "items": {
                         "type": "string",
                         "format": "byte"
                     }
                 },
-                "messageId": {
-                    "$ref": "#/definitions/MessageId"
-                },
-                "keyBytes": {
+                "data": {
                     "type": "array",
                     "items": {
                         "type": "string",
                         "format": "byte"
                     }
                 },
-                "encryptionCtx": {
-                    "$ref": "#/definitions/EncryptionContext"
-                },
-                "redeliveryCount": {
-                    "type": "integer",
-                    "format": "int32"
-                },
-                "readerSchema": {
-                    "$ref": "#/definitions/SchemaObject"
-                },
-                "brokerPublishTime": {
-                    "type": "integer",
-                    "format": "int64"
+                "topicName": {
+                    "type": "string"
                 },
                 "publishTime": {
                     "type": "integer",
@@ -2630,8 +2616,22 @@
                 "replicated": {
                     "type": "boolean"
                 },
-                "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"
                 },
                 "value": {
                     "type": "object"
@@ -2767,9 +2767,6 @@
         "ObjectMapper": {
             "type": "object",
             "properties": {
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
-                },
                 "serializationConfig": {
                     "$ref": "#/definitions/SerializationConfig"
                 },
@@ -2797,6 +2794,9 @@
                 "propertyNamingStrategy": {
                     "$ref": "#/definitions/PropertyNamingStrategy"
                 },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "nodeFactory": {
                     "$ref": "#/definitions/JsonNodeFactory"
                 },
@@ -2911,10 +2911,10 @@
         "PublicKey": {
             "type": "object",
             "properties": {
-                "algorithm": {
+                "format": {
                     "type": "string"
                 },
-                "format": {
+                "algorithm": {
                     "type": "string"
                 },
                 "encoded": {
@@ -3022,18 +3022,18 @@
         "SerializationConfig": {
             "type": "object",
             "properties": {
-                "defaultPropertyInclusion": {
-                    "$ref": "#/definitions/Value"
-                },
-                "filterProvider": {
-                    "$ref": "#/definitions/FilterProvider"
-                },
                 "defaultPrettyPrinter": {
                     "$ref": "#/definitions/PrettyPrinter"
                 },
                 "annotationIntrospector": {
                     "$ref": "#/definitions/AnnotationIntrospector"
                 },
+                "defaultPropertyInclusion": {
+                    "$ref": "#/definitions/Value"
+                },
+                "filterProvider": {
+                    "$ref": "#/definitions/FilterProvider"
+                },
                 "serializationInclusion": {
                     "type": "string",
                     "enum": [
@@ -3049,18 +3049,18 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "rootName": {
-                    "type": "string"
-                },
-                "fullRootName": {
-                    "$ref": "#/definitions/PropertyName"
-                },
                 "subtypeResolver": {
                     "$ref": "#/definitions/SubtypeResolver"
                 },
                 "defaultVisibilityChecker": {
                     "$ref": "#/definitions/VisibilityCheckerObject"
                 },
+                "rootName": {
+                    "type": "string"
+                },
+                "fullRootName": {
+                    "$ref": "#/definitions/PropertyName"
+                },
                 "attributes": {
                     "$ref": "#/definitions/ContextAttributes"
                 },
@@ -3070,24 +3070,24 @@
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
-                },
-                "annotationProcessingEnabled": {
-                    "type": "boolean"
-                },
-                "handlerInstantiator": {
-                    "$ref": "#/definitions/HandlerInstantiator"
-                },
                 "propertyNamingStrategy": {
                     "$ref": "#/definitions/PropertyNamingStrategy"
                 },
                 "dateFormat": {
                     "$ref": "#/definitions/DateFormat"
                 },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "base64Variant": {
                     "$ref": "#/definitions/Base64Variant"
                 },
+                "handlerInstantiator": {
+                    "$ref": "#/definitions/HandlerInstantiator"
+                },
+                "annotationProcessingEnabled": {
+                    "type": "boolean"
+                },
                 "classIntrospector": {
                     "$ref": "#/definitions/ClassIntrospector"
                 }
@@ -3102,6 +3102,9 @@
                 "timeZone": {
                     "$ref": "#/definitions/TimeZone"
                 },
+                "generator": {
+                    "$ref": "#/definitions/JsonGenerator"
+                },
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
@@ -3111,6 +3114,9 @@
                 "typeFactory": {
                     "$ref": "#/definitions/TypeFactory"
                 },
+                "annotationIntrospector": {
+                    "$ref": "#/definitions/AnnotationIntrospector"
+                },
                 "filterProvider": {
                     "$ref": "#/definitions/FilterProvider"
                 },
@@ -3119,12 +3125,6 @@
                 },
                 "defaultNullValueSerializer": {
                     "$ref": "#/definitions/JsonSerializerObject"
-                },
-                "generator": {
-                    "$ref": "#/definitions/JsonGenerator"
-                },
-                "annotationIntrospector": {
-                    "$ref": "#/definitions/AnnotationIntrospector"
                 }
             }
         },
@@ -3286,15 +3286,28 @@
                 "issuerX500Principal": {
                     "$ref": "#/definitions/X500Principal"
                 },
+                "version": {
+                    "type": "integer",
+                    "format": "int32"
+                },
                 "issuerDN": {
                     "$ref": "#/definitions/Principal"
                 },
                 "subjectDN": {
                     "$ref": "#/definitions/Principal"
                 },
+                "keyUsage": {
+                    "type": "array",
+                    "items": {
+                        "type": "boolean"
+                    }
+                },
                 "sigAlgName": {
                     "type": "string"
                 },
+                "serialNumber": {
+                    "type": "integer"
+                },
                 "notBefore": {
                     "type": "string",
                     "format": "date-time"
@@ -3303,6 +3316,13 @@
                     "type": "string",
                     "format": "date-time"
                 },
+                "tbscertificate": {
+                    "type": "array",
+                    "items": {
+                        "type": "string",
+                        "format": "byte"
+                    }
+                },
                 "sigAlgOID": {
                     "type": "string"
                 },
@@ -3325,10 +3345,10 @@
                         "type": "boolean"
                     }
                 },
-                "keyUsage": {
+                "extendedKeyUsage": {
                     "type": "array",
                     "items": {
-                        "type": "boolean"
+                        "type": "string"
                     }
                 },
                 "subjectAlternativeNames": {
@@ -3349,26 +3369,6 @@
                         }
                     }
                 },
-                "serialNumber": {
-                    "type": "integer"
-                },
-                "tbscertificate": {
-                    "type": "array",
-                    "items": {
-                        "type": "string",
-                        "format": "byte"
-                    }
-                },
-                "extendedKeyUsage": {
-                    "type": "array",
-                    "items": {
-                        "type": "string"
-                    }
-                },
-                "version": {
-                    "type": "integer",
-                    "format": "int32"
-                },
                 "signature": {
                     "type": "array",
                     "items": {
@@ -3380,14 +3380,14 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "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/v3/swaggerpackages.json b/content/swagger/2.10.0-SNAPSHOT/v3/swaggerpackages.json
index 5d70a61..43e6103 100644
--- a/content/swagger/2.10.0-SNAPSHOT/v3/swaggerpackages.json
+++ b/content/swagger/2.10.0-SNAPSHOT/v3/swaggerpackages.json
@@ -506,12 +506,12 @@
                         "$ref": "#/definitions/X509Certificate"
                     }
                 },
-                "httpAuthType": {
-                    "type": "string"
-                },
                 "peerAddress": {
                     "$ref": "#/definitions/SocketAddress"
                 },
+                "httpAuthType": {
+                    "type": "string"
+                },
                 "commandData": {
                     "type": "string"
                 }
@@ -520,6 +520,10 @@
         "Base64Variant": {
             "type": "object",
             "properties": {
+                "maxLineLength": {
+                    "type": "integer",
+                    "format": "int32"
+                },
                 "paddingChar": {
                     "type": "string"
                 },
@@ -527,10 +531,6 @@
                     "type": "string",
                     "format": "byte"
                 },
-                "maxLineLength": {
-                    "type": "integer",
-                    "format": "int32"
-                },
                 "name": {
                     "type": "string"
                 }
@@ -651,13 +651,13 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "numericCodeAsString": {
+                "displayName": {
                     "type": "string"
                 },
-                "symbol": {
+                "numericCodeAsString": {
                     "type": "string"
                 },
-                "displayName": {
+                "symbol": {
                     "type": "string"
                 }
             }
@@ -683,15 +683,12 @@
         "DeserializationConfig": {
             "type": "object",
             "properties": {
-                "defaultPropertyInclusion": {
-                    "$ref": "#/definitions/Value"
+                "nodeFactory": {
+                    "$ref": "#/definitions/JsonNodeFactory"
                 },
                 "problemHandlers": {
                     "$ref": "#/definitions/LinkedNodeDeserializationProblemHandler"
                 },
-                "nodeFactory": {
-                    "$ref": "#/definitions/JsonNodeFactory"
-                },
                 "annotationIntrospector": {
                     "$ref": "#/definitions/AnnotationIntrospector"
                 },
@@ -699,11 +696,8 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "rootName": {
-                    "type": "string"
-                },
-                "fullRootName": {
-                    "$ref": "#/definitions/PropertyName"
+                "defaultPropertyInclusion": {
+                    "$ref": "#/definitions/Value"
                 },
                 "subtypeResolver": {
                     "$ref": "#/definitions/SubtypeResolver"
@@ -711,6 +705,12 @@
                 "defaultVisibilityChecker": {
                     "$ref": "#/definitions/VisibilityCheckerObject"
                 },
+                "rootName": {
+                    "type": "string"
+                },
+                "fullRootName": {
+                    "$ref": "#/definitions/PropertyName"
+                },
                 "attributes": {
                     "$ref": "#/definitions/ContextAttributes"
                 },
@@ -720,24 +720,24 @@
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
-                },
-                "annotationProcessingEnabled": {
-                    "type": "boolean"
-                },
-                "handlerInstantiator": {
-                    "$ref": "#/definitions/HandlerInstantiator"
-                },
                 "propertyNamingStrategy": {
                     "$ref": "#/definitions/PropertyNamingStrategy"
                 },
                 "dateFormat": {
                     "$ref": "#/definitions/DateFormat"
                 },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "base64Variant": {
                     "$ref": "#/definitions/Base64Variant"
                 },
+                "handlerInstantiator": {
+                    "$ref": "#/definitions/HandlerInstantiator"
+                },
+                "annotationProcessingEnabled": {
+                    "type": "boolean"
+                },
                 "classIntrospector": {
                     "$ref": "#/definitions/ClassIntrospector"
                 }
@@ -758,15 +758,12 @@
                 "parser": {
                     "$ref": "#/definitions/JsonParser"
                 },
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
-                },
-                "arrayBuilders": {
-                    "$ref": "#/definitions/ArrayBuilders"
-                },
                 "nodeFactory": {
                     "$ref": "#/definitions/JsonNodeFactory"
                 },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "annotationIntrospector": {
                     "$ref": "#/definitions/AnnotationIntrospector"
                 },
@@ -780,6 +777,9 @@
                 "base64Variant": {
                     "$ref": "#/definitions/Base64Variant"
                 },
+                "arrayBuilders": {
+                    "$ref": "#/definitions/ArrayBuilders"
+                },
                 "factory": {
                     "$ref": "#/definitions/DeserializerFactory"
                 }
@@ -912,17 +912,17 @@
                 "formatName": {
                     "type": "string"
                 },
+                "characterEscapes": {
+                    "$ref": "#/definitions/CharacterEscapes"
+                },
+                "rootValueSeparator": {
+                    "type": "string"
+                },
                 "inputDecorator": {
                     "$ref": "#/definitions/InputDecorator"
                 },
                 "outputDecorator": {
                     "$ref": "#/definitions/OutputDecorator"
-                },
-                "rootValueSeparator": {
-                    "type": "string"
-                },
-                "characterEscapes": {
-                    "$ref": "#/definitions/CharacterEscapes"
                 }
             }
         },
@@ -932,14 +932,14 @@
                 "closed": {
                     "type": "boolean"
                 },
-                "schema": {
-                    "$ref": "#/definitions/FormatSchema"
+                "prettyPrinter": {
+                    "$ref": "#/definitions/PrettyPrinter"
                 },
                 "codec": {
                     "$ref": "#/definitions/ObjectCodec"
                 },
-                "prettyPrinter": {
-                    "$ref": "#/definitions/PrettyPrinter"
+                "outputContext": {
+                    "$ref": "#/definitions/JsonStreamContext"
                 },
                 "featureMask": {
                     "type": "integer",
@@ -949,8 +949,8 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "currentValue": {
-                    "type": "object"
+                "schema": {
+                    "$ref": "#/definitions/FormatSchema"
                 },
                 "highestEscapedChar": {
                     "type": "integer",
@@ -966,8 +966,8 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "outputContext": {
-                    "$ref": "#/definitions/JsonStreamContext"
+                "currentValue": {
+                    "type": "object"
                 }
             }
         },
@@ -1005,6 +1005,9 @@
                     "type": "integer",
                     "format": "int32"
                 },
+                "closed": {
+                    "type": "boolean"
+                },
                 "text": {
                     "type": "string"
                 },
@@ -1014,10 +1017,6 @@
                         "type": "string"
                     }
                 },
-                "intValue": {
-                    "type": "integer",
-                    "format": "int32"
-                },
                 "booleanValue": {
                     "type": "boolean"
                 },
@@ -1041,21 +1040,12 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "closed": {
-                    "type": "boolean"
+                "objectId": {
+                    "type": "object"
                 },
                 "typeId": {
                     "type": "object"
                 },
-                "schema": {
-                    "$ref": "#/definitions/FormatSchema"
-                },
-                "tokenLocation": {
-                    "$ref": "#/definitions/JsonLocation"
-                },
-                "codec": {
-                    "$ref": "#/definitions/ObjectCodec"
-                },
                 "currentToken": {
                     "type": "string",
                     "enum": [
@@ -1074,58 +1064,17 @@
                         "VALUE_NULL"
                     ]
                 },
-                "currentName": {
-                    "type": "string"
-                },
-                "featureMask": {
-                    "type": "integer",
-                    "format": "int32"
-                },
-                "formatFeatures": {
-                    "type": "integer",
-                    "format": "int32"
+                "codec": {
+                    "$ref": "#/definitions/ObjectCodec"
                 },
-                "currentTokenId": {
+                "intValue": {
                     "type": "integer",
                     "format": "int32"
                 },
-                "parsingContext": {
-                    "$ref": "#/definitions/JsonStreamContext"
-                },
-                "currentLocation": {
-                    "$ref": "#/definitions/JsonLocation"
-                },
-                "expectedStartArrayToken": {
-                    "type": "boolean"
-                },
-                "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"
-                    ]
-                },
                 "textOffset": {
                     "type": "integer",
                     "format": "int32"
                 },
-                "numberValue": {
-                    "$ref": "#/definitions/Number"
-                },
                 "numberType": {
                     "type": "string",
                     "enum": [
@@ -1146,6 +1095,30 @@
                 "embeddedObject": {
                     "type": "object"
                 },
+                "featureMask": {
+                    "type": "integer",
+                    "format": "int32"
+                },
+                "tokenLocation": {
+                    "$ref": "#/definitions/JsonLocation"
+                },
+                "currentTokenId": {
+                    "type": "integer",
+                    "format": "int32"
+                },
+                "currentName": {
+                    "type": "string"
+                },
+                "formatFeatures": {
+                    "type": "integer",
+                    "format": "int32"
+                },
+                "schema": {
+                    "$ref": "#/definitions/FormatSchema"
+                },
+                "currentValue": {
+                    "type": "object"
+                },
                 "binaryValue": {
                     "type": "array",
                     "items": {
@@ -1171,13 +1144,40 @@
                 "valueAsString": {
                     "type": "string"
                 },
-                "objectId": {
-                    "type": "object"
+                "parsingContext": {
+                    "$ref": "#/definitions/JsonStreamContext"
                 },
-                "inputSource": {
-                    "type": "object"
+                "currentLocation": {
+                    "$ref": "#/definitions/JsonLocation"
                 },
-                "currentValue": {
+                "expectedStartArrayToken": {
+                    "type": "boolean"
+                },
+                "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"
+                },
+                "inputSource": {
                     "type": "object"
                 }
             }
@@ -1235,6 +1235,9 @@
         "Locale": {
             "type": "object",
             "properties": {
+                "displayName": {
+                    "type": "string"
+                },
                 "script": {
                     "type": "string"
                 },
@@ -1283,9 +1286,6 @@
                 "displayVariant": {
                     "type": "string"
                 },
-                "displayName": {
-                    "type": "string"
-                },
                 "language": {
                     "type": "string"
                 }
@@ -1407,9 +1407,6 @@
         "ObjectMapper": {
             "type": "object",
             "properties": {
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
-                },
                 "serializationConfig": {
                     "$ref": "#/definitions/SerializationConfig"
                 },
@@ -1437,6 +1434,9 @@
                 "propertyNamingStrategy": {
                     "$ref": "#/definitions/PropertyNamingStrategy"
                 },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "nodeFactory": {
                     "$ref": "#/definitions/JsonNodeFactory"
                 },
@@ -1554,10 +1554,10 @@
         "PublicKey": {
             "type": "object",
             "properties": {
-                "algorithm": {
+                "format": {
                     "type": "string"
                 },
-                "format": {
+                "algorithm": {
                     "type": "string"
                 },
                 "encoded": {
@@ -1572,18 +1572,18 @@
         "SerializationConfig": {
             "type": "object",
             "properties": {
-                "defaultPropertyInclusion": {
-                    "$ref": "#/definitions/Value"
-                },
-                "filterProvider": {
-                    "$ref": "#/definitions/FilterProvider"
-                },
                 "defaultPrettyPrinter": {
                     "$ref": "#/definitions/PrettyPrinter"
                 },
                 "annotationIntrospector": {
                     "$ref": "#/definitions/AnnotationIntrospector"
                 },
+                "defaultPropertyInclusion": {
+                    "$ref": "#/definitions/Value"
+                },
+                "filterProvider": {
+                    "$ref": "#/definitions/FilterProvider"
+                },
                 "serializationInclusion": {
                     "type": "string",
                     "enum": [
@@ -1599,18 +1599,18 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "rootName": {
-                    "type": "string"
-                },
-                "fullRootName": {
-                    "$ref": "#/definitions/PropertyName"
-                },
                 "subtypeResolver": {
                     "$ref": "#/definitions/SubtypeResolver"
                 },
                 "defaultVisibilityChecker": {
                     "$ref": "#/definitions/VisibilityCheckerObject"
                 },
+                "rootName": {
+                    "type": "string"
+                },
+                "fullRootName": {
+                    "$ref": "#/definitions/PropertyName"
+                },
                 "attributes": {
                     "$ref": "#/definitions/ContextAttributes"
                 },
@@ -1620,24 +1620,24 @@
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
-                },
-                "annotationProcessingEnabled": {
-                    "type": "boolean"
-                },
-                "handlerInstantiator": {
-                    "$ref": "#/definitions/HandlerInstantiator"
-                },
                 "propertyNamingStrategy": {
                     "$ref": "#/definitions/PropertyNamingStrategy"
                 },
                 "dateFormat": {
                     "$ref": "#/definitions/DateFormat"
                 },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "base64Variant": {
                     "$ref": "#/definitions/Base64Variant"
                 },
+                "handlerInstantiator": {
+                    "$ref": "#/definitions/HandlerInstantiator"
+                },
+                "annotationProcessingEnabled": {
+                    "type": "boolean"
+                },
                 "classIntrospector": {
                     "$ref": "#/definitions/ClassIntrospector"
                 }
@@ -1652,6 +1652,9 @@
                 "timeZone": {
                     "$ref": "#/definitions/TimeZone"
                 },
+                "generator": {
+                    "$ref": "#/definitions/JsonGenerator"
+                },
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
@@ -1661,6 +1664,9 @@
                 "typeFactory": {
                     "$ref": "#/definitions/TypeFactory"
                 },
+                "annotationIntrospector": {
+                    "$ref": "#/definitions/AnnotationIntrospector"
+                },
                 "filterProvider": {
                     "$ref": "#/definitions/FilterProvider"
                 },
@@ -1669,12 +1675,6 @@
                 },
                 "defaultNullValueSerializer": {
                     "$ref": "#/definitions/JsonSerializerObject"
-                },
-                "generator": {
-                    "$ref": "#/definitions/JsonGenerator"
-                },
-                "annotationIntrospector": {
-                    "$ref": "#/definitions/AnnotationIntrospector"
                 }
             }
         },
@@ -1791,15 +1791,28 @@
                 "issuerX500Principal": {
                     "$ref": "#/definitions/X500Principal"
                 },
+                "version": {
+                    "type": "integer",
+                    "format": "int32"
+                },
                 "issuerDN": {
                     "$ref": "#/definitions/Principal"
                 },
                 "subjectDN": {
                     "$ref": "#/definitions/Principal"
                 },
+                "keyUsage": {
+                    "type": "array",
+                    "items": {
+                        "type": "boolean"
+                    }
+                },
                 "sigAlgName": {
                     "type": "string"
                 },
+                "serialNumber": {
+                    "type": "integer"
+                },
                 "notBefore": {
                     "type": "string",
                     "format": "date-time"
@@ -1808,6 +1821,13 @@
                     "type": "string",
                     "format": "date-time"
                 },
+                "tbscertificate": {
+                    "type": "array",
+                    "items": {
+                        "type": "string",
+                        "format": "byte"
+                    }
+                },
                 "sigAlgOID": {
                     "type": "string"
                 },
@@ -1830,10 +1850,10 @@
                         "type": "boolean"
                     }
                 },
-                "keyUsage": {
+                "extendedKeyUsage": {
                     "type": "array",
                     "items": {
-                        "type": "boolean"
+                        "type": "string"
                     }
                 },
                 "subjectAlternativeNames": {
@@ -1854,26 +1874,6 @@
                         }
                     }
                 },
-                "serialNumber": {
-                    "type": "integer"
-                },
-                "tbscertificate": {
-                    "type": "array",
-                    "items": {
-                        "type": "string",
-                        "format": "byte"
-                    }
-                },
-                "extendedKeyUsage": {
-                    "type": "array",
-                    "items": {
-                        "type": "string"
-                    }
-                },
-                "version": {
-                    "type": "integer",
-                    "format": "int32"
-                },
                 "signature": {
                     "type": "array",
                     "items": {
@@ -1885,14 +1885,14 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "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/v3/swaggersink.json b/content/swagger/2.10.0-SNAPSHOT/v3/swaggersink.json
index 3348a4a..489071b 100644
--- a/content/swagger/2.10.0-SNAPSHOT/v3/swaggersink.json
+++ b/content/swagger/2.10.0-SNAPSHOT/v3/swaggersink.json
@@ -971,12 +971,12 @@
                         "$ref": "#/definitions/X509Certificate"
                     }
                 },
-                "httpAuthType": {
-                    "type": "string"
-                },
                 "peerAddress": {
                     "$ref": "#/definitions/SocketAddress"
                 },
+                "httpAuthType": {
+                    "type": "string"
+                },
                 "commandData": {
                     "type": "string"
                 }
@@ -985,6 +985,10 @@
         "Base64Variant": {
             "type": "object",
             "properties": {
+                "maxLineLength": {
+                    "type": "integer",
+                    "format": "int32"
+                },
                 "paddingChar": {
                     "type": "string"
                 },
@@ -992,10 +996,6 @@
                     "type": "string",
                     "format": "byte"
                 },
-                "maxLineLength": {
-                    "type": "integer",
-                    "format": "int32"
-                },
                 "name": {
                     "type": "string"
                 }
@@ -1227,13 +1227,13 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "numericCodeAsString": {
+                "displayName": {
                     "type": "string"
                 },
-                "symbol": {
+                "numericCodeAsString": {
                     "type": "string"
                 },
-                "displayName": {
+                "symbol": {
                     "type": "string"
                 }
             }
@@ -1259,15 +1259,12 @@
         "DeserializationConfig": {
             "type": "object",
             "properties": {
-                "defaultPropertyInclusion": {
-                    "$ref": "#/definitions/Value"
+                "nodeFactory": {
+                    "$ref": "#/definitions/JsonNodeFactory"
                 },
                 "problemHandlers": {
                     "$ref": "#/definitions/LinkedNodeDeserializationProblemHandler"
                 },
-                "nodeFactory": {
-                    "$ref": "#/definitions/JsonNodeFactory"
-                },
                 "annotationIntrospector": {
                     "$ref": "#/definitions/AnnotationIntrospector"
                 },
@@ -1275,11 +1272,8 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "rootName": {
-                    "type": "string"
-                },
-                "fullRootName": {
-                    "$ref": "#/definitions/PropertyName"
+                "defaultPropertyInclusion": {
+                    "$ref": "#/definitions/Value"
                 },
                 "subtypeResolver": {
                     "$ref": "#/definitions/SubtypeResolver"
@@ -1287,6 +1281,12 @@
                 "defaultVisibilityChecker": {
                     "$ref": "#/definitions/VisibilityCheckerObject"
                 },
+                "rootName": {
+                    "type": "string"
+                },
+                "fullRootName": {
+                    "$ref": "#/definitions/PropertyName"
+                },
                 "attributes": {
                     "$ref": "#/definitions/ContextAttributes"
                 },
@@ -1296,24 +1296,24 @@
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
-                },
-                "annotationProcessingEnabled": {
-                    "type": "boolean"
-                },
-                "handlerInstantiator": {
-                    "$ref": "#/definitions/HandlerInstantiator"
-                },
                 "propertyNamingStrategy": {
                     "$ref": "#/definitions/PropertyNamingStrategy"
                 },
                 "dateFormat": {
                     "$ref": "#/definitions/DateFormat"
                 },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "base64Variant": {
                     "$ref": "#/definitions/Base64Variant"
                 },
+                "handlerInstantiator": {
+                    "$ref": "#/definitions/HandlerInstantiator"
+                },
+                "annotationProcessingEnabled": {
+                    "type": "boolean"
+                },
                 "classIntrospector": {
                     "$ref": "#/definitions/ClassIntrospector"
                 }
@@ -1334,15 +1334,12 @@
                 "parser": {
                     "$ref": "#/definitions/JsonParser"
                 },
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
-                },
-                "arrayBuilders": {
-                    "$ref": "#/definitions/ArrayBuilders"
-                },
                 "nodeFactory": {
                     "$ref": "#/definitions/JsonNodeFactory"
                 },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "annotationIntrospector": {
                     "$ref": "#/definitions/AnnotationIntrospector"
                 },
@@ -1356,6 +1353,9 @@
                 "base64Variant": {
                     "$ref": "#/definitions/Base64Variant"
                 },
+                "arrayBuilders": {
+                    "$ref": "#/definitions/ArrayBuilders"
+                },
                 "factory": {
                     "$ref": "#/definitions/DeserializerFactory"
                 }
@@ -1500,17 +1500,17 @@
                 "formatName": {
                     "type": "string"
                 },
+                "characterEscapes": {
+                    "$ref": "#/definitions/CharacterEscapes"
+                },
+                "rootValueSeparator": {
+                    "type": "string"
+                },
                 "inputDecorator": {
                     "$ref": "#/definitions/InputDecorator"
                 },
                 "outputDecorator": {
                     "$ref": "#/definitions/OutputDecorator"
-                },
-                "rootValueSeparator": {
-                    "type": "string"
-                },
-                "characterEscapes": {
-                    "$ref": "#/definitions/CharacterEscapes"
                 }
             }
         },
@@ -1520,14 +1520,14 @@
                 "closed": {
                     "type": "boolean"
                 },
-                "schema": {
-                    "$ref": "#/definitions/FormatSchema"
+                "prettyPrinter": {
+                    "$ref": "#/definitions/PrettyPrinter"
                 },
                 "codec": {
                     "$ref": "#/definitions/ObjectCodec"
                 },
-                "prettyPrinter": {
-                    "$ref": "#/definitions/PrettyPrinter"
+                "outputContext": {
+                    "$ref": "#/definitions/JsonStreamContext"
                 },
                 "featureMask": {
                     "type": "integer",
@@ -1537,8 +1537,8 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "currentValue": {
-                    "type": "object"
+                "schema": {
+                    "$ref": "#/definitions/FormatSchema"
                 },
                 "highestEscapedChar": {
                     "type": "integer",
@@ -1554,8 +1554,8 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "outputContext": {
-                    "$ref": "#/definitions/JsonStreamContext"
+                "currentValue": {
+                    "type": "object"
                 }
             }
         },
@@ -1593,6 +1593,9 @@
                     "type": "integer",
                     "format": "int32"
                 },
+                "closed": {
+                    "type": "boolean"
+                },
                 "text": {
                     "type": "string"
                 },
@@ -1602,10 +1605,6 @@
                         "type": "string"
                     }
                 },
-                "intValue": {
-                    "type": "integer",
-                    "format": "int32"
-                },
                 "booleanValue": {
                     "type": "boolean"
                 },
@@ -1629,21 +1628,12 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "closed": {
-                    "type": "boolean"
+                "objectId": {
+                    "type": "object"
                 },
                 "typeId": {
                     "type": "object"
                 },
-                "schema": {
-                    "$ref": "#/definitions/FormatSchema"
-                },
-                "tokenLocation": {
-                    "$ref": "#/definitions/JsonLocation"
-                },
-                "codec": {
-                    "$ref": "#/definitions/ObjectCodec"
-                },
                 "currentToken": {
                     "type": "string",
                     "enum": [
@@ -1662,58 +1652,17 @@
                         "VALUE_NULL"
                     ]
                 },
-                "currentName": {
-                    "type": "string"
-                },
-                "featureMask": {
-                    "type": "integer",
-                    "format": "int32"
-                },
... 9555 lines suppressed ...