pulsar-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mme...@apache.org
Subject [incubator-pulsar] branch asf-site updated: Updated site at revision 7c62ecf
Date Thu, 13 Sep 2018 23:41:54 GMT
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/asf-site by this push:
     new 5e58228  Updated site at revision 7c62ecf
5e58228 is described below

commit 5e58228f6f5bbc3cfe568dda0150b5a6338464e2
Author: jenkins <builds@apache.org>
AuthorDate: Thu Sep 13 23:41:39 2018 +0000

    Updated site at revision 7c62ecf
---
 content/admin-rest-api.html                        |   2 +-
 content/admin-rest-api/index.html                  |   2 +-
 content/api/admin/index-all.html                   |   4 +
 .../org/apache/pulsar/client/admin/Functions.html  |  53 +++-
 content/api/client/allclasses-frame.html           |   2 +
 content/api/client/allclasses-noframe.html         |   2 +
 content/api/client/index-all.html                  |  56 ++++
 .../org/apache/pulsar/client/api/Consumer.html     |  48 ++-
 .../apache/pulsar/client/api/ConsumerBuilder.html  |  60 ++--
 .../pulsar/client/api/ConsumerEventListener.html   |   4 +-
 .../pulsar/client/api/ConsumerInterceptor.html     | 351 +++++++++++++++++++++
 .../apache/pulsar/client/api/ConsumerStats.html    |   4 +-
 .../apache/pulsar/client/api/ProducerBuilder.html  |  44 ++-
 .../client/api/ProducerCryptoFailureAction.html    |   4 +-
 .../pulsar/client/api/ProducerInterceptor.html     | 328 +++++++++++++++++++
 .../apache/pulsar/client/api/ProducerStats.html    |   4 +-
 .../apache/pulsar/client/api/package-frame.html    |   2 +
 .../apache/pulsar/client/api/package-summary.html  |  33 +-
 .../org/apache/pulsar/client/api/package-tree.html |   2 +
 content/api/client/overview-tree.html              |   2 +
 .../cpp/classpulsar_1_1_auth_athenz-members.html   |   5 +-
 content/api/cpp/classpulsar_1_1_auth_athenz.html   |   4 +
 .../api/cpp/classpulsar_1_1_auth_tls-members.html  |   8 +-
 content/api/cpp/classpulsar_1_1_auth_tls.html      |   7 +
 .../classpulsar_1_1_authentication-members.html    |   3 +-
 .../api/cpp/classpulsar_1_1_authentication.html    |   7 +
 .../classpulsar_1_1_producer_configuration.html    |   4 +-
 .../api/cpp/consumer__configuration_8h_source.html |   2 +-
 .../api/cpp/producer__configuration_8h_source.html |   2 +-
 content/blog/2018/08/06/Apache-Pulsar-2-1-0.html   |   2 +-
 .../blog/2018/08/06/Apache-Pulsar-2-1-0/index.html |   2 +-
 content/blog/index.html                            |   2 +-
 content/contact.html                               |   2 +-
 content/contact/index.html                         |   2 +-
 content/contributing.html                          |  19 +-
 content/contributing/index.html                    |  19 +-
 content/css/main.css                               |   2 +-
 content/docs/assets/pulsar-sql-arch-1.png          | Bin 0 -> 167744 bytes
 content/docs/assets/pulsar-sql-arch-2.png          | Bin 0 -> 130432 bytes
 content/docs/en/adaptors-kafka.html                |   6 +-
 content/docs/en/adaptors-kafka/index.html          |   6 +-
 content/docs/en/adaptors-spark.html                |   6 +-
 content/docs/en/adaptors-spark/index.html          |   6 +-
 content/docs/en/adaptors-storm.html                |   6 +-
 content/docs/en/adaptors-storm/index.html          |   6 +-
 content/docs/en/admin-api-brokers.html             |   6 +-
 content/docs/en/admin-api-brokers/index.html       |   6 +-
 content/docs/en/admin-api-clusters.html            |   6 +-
 content/docs/en/admin-api-clusters/index.html      |   6 +-
 content/docs/en/admin-api-namespaces.html          |   6 +-
 content/docs/en/admin-api-namespaces/index.html    |   6 +-
 .../docs/en/admin-api-non-persistent-topics.html   |   6 +-
 .../en/admin-api-non-persistent-topics/index.html  |   6 +-
 content/docs/en/admin-api-overview.html            |   6 +-
 content/docs/en/admin-api-overview/index.html      |   6 +-
 content/docs/en/admin-api-partitioned-topics.html  |   6 +-
 .../en/admin-api-partitioned-topics/index.html     |   6 +-
 content/docs/en/admin-api-permissions.html         |   6 +-
 content/docs/en/admin-api-permissions/index.html   |   6 +-
 content/docs/en/admin-api-persistent-topics.html   |   6 +-
 .../docs/en/admin-api-persistent-topics/index.html |   6 +-
 content/docs/en/admin-api-schemas.html             |   8 +-
 content/docs/en/admin-api-schemas/index.html       |   8 +-
 content/docs/en/admin-api-tenants.html             |  10 +-
 content/docs/en/admin-api-tenants/index.html       |  10 +-
 content/docs/en/administration-dashboard.html      |   6 +-
 .../docs/en/administration-dashboard/index.html    |   6 +-
 content/docs/en/administration-geo.html            |   6 +-
 content/docs/en/administration-geo/index.html      |   6 +-
 .../docs/en/administration-load-distribution.html  |   6 +-
 .../en/administration-load-distribution/index.html |   6 +-
 content/docs/en/administration-proxy.html          |   6 +-
 content/docs/en/administration-proxy/index.html    |   6 +-
 content/docs/en/administration-stats.html          |   6 +-
 content/docs/en/administration-stats/index.html    |   6 +-
 content/docs/en/administration-zk-bk.html          |   6 +-
 content/docs/en/administration-zk-bk/index.html    |   6 +-
 content/docs/en/client-libraries-cpp.html          |  12 +-
 content/docs/en/client-libraries-cpp/index.html    |  12 +-
 content/docs/en/client-libraries-go.html           |   6 +-
 content/docs/en/client-libraries-go/index.html     |   6 +-
 content/docs/en/client-libraries-java.html         |   6 +-
 content/docs/en/client-libraries-java/index.html   |   6 +-
 content/docs/en/client-libraries-python.html       |   6 +-
 content/docs/en/client-libraries-python/index.html |   6 +-
 content/docs/en/client-libraries-websocket.html    |   6 +-
 .../docs/en/client-libraries-websocket/index.html  |   6 +-
 content/docs/en/client-libraries.html              |   6 +-
 content/docs/en/client-libraries/index.html        |   6 +-
 .../docs/en/concepts-architecture-overview.html    |   6 +-
 .../en/concepts-architecture-overview/index.html   |   6 +-
 content/docs/en/concepts-architecture.html         |   4 +-
 content/docs/en/concepts-architecture/index.html   |   4 +-
 content/docs/en/concepts-authentication.html       |   6 +-
 content/docs/en/concepts-authentication/index.html |   6 +-
 content/docs/en/concepts-clients.html              |   6 +-
 content/docs/en/concepts-clients/index.html        |   6 +-
 content/docs/en/concepts-messaging.html            |   6 +-
 content/docs/en/concepts-messaging/index.html      |   6 +-
 content/docs/en/concepts-multi-tenancy.html        |   6 +-
 content/docs/en/concepts-multi-tenancy/index.html  |   6 +-
 content/docs/en/concepts-overview.html             |   6 +-
 content/docs/en/concepts-overview/index.html       |   6 +-
 content/docs/en/concepts-replication.html          |   6 +-
 content/docs/en/concepts-replication/index.html    |   6 +-
 content/docs/en/concepts-schema-registry.html      |   6 +-
 .../docs/en/concepts-schema-registry/index.html    |   6 +-
 content/docs/en/concepts-tiered-storage.html       |   6 +-
 content/docs/en/concepts-tiered-storage/index.html |   6 +-
 content/docs/en/concepts-topic-compaction.html     |   6 +-
 .../docs/en/concepts-topic-compaction/index.html   |   6 +-
 content/docs/en/cookbooks-compaction.html          |   6 +-
 content/docs/en/cookbooks-compaction/index.html    |   6 +-
 content/docs/en/cookbooks-deduplication.html       |   6 +-
 content/docs/en/cookbooks-deduplication/index.html |   6 +-
 content/docs/en/cookbooks-encryption.html          |   6 +-
 content/docs/en/cookbooks-encryption/index.html    |   6 +-
 content/docs/en/cookbooks-message-queue.html       |   6 +-
 content/docs/en/cookbooks-message-queue/index.html |   6 +-
 content/docs/en/cookbooks-non-persistent.html      |   6 +-
 .../docs/en/cookbooks-non-persistent/index.html    |   6 +-
 content/docs/en/cookbooks-partitioned.html         |   6 +-
 content/docs/en/cookbooks-partitioned/index.html   |   6 +-
 content/docs/en/cookbooks-retention-expiry.html    |   6 +-
 .../docs/en/cookbooks-retention-expiry/index.html  |   6 +-
 content/docs/en/cookbooks-tiered-storage.html      |   6 +-
 .../docs/en/cookbooks-tiered-storage/index.html    |   6 +-
 content/docs/en/deploy-aws.html                    |   6 +-
 content/docs/en/deploy-aws/index.html              |   6 +-
 .../docs/en/deploy-bare-metal-multi-cluster.html   |   6 +-
 .../en/deploy-bare-metal-multi-cluster/index.html  |   6 +-
 content/docs/en/deploy-bare-metal.html             |   6 +-
 content/docs/en/deploy-bare-metal/index.html       |   6 +-
 content/docs/en/deploy-dcos.html                   |   6 +-
 content/docs/en/deploy-dcos/index.html             |   6 +-
 content/docs/en/deploy-kubernetes.html             |   6 +-
 content/docs/en/deploy-kubernetes/index.html       |   6 +-
 content/docs/en/deploy-monitoring.html             |   6 +-
 content/docs/en/deploy-monitoring/index.html       |   6 +-
 content/docs/en/develop-binary-protocol.html       |   6 +-
 content/docs/en/develop-binary-protocol/index.html |   6 +-
 content/docs/en/develop-cpp.html                   |   6 +-
 content/docs/en/develop-cpp/index.html             |   6 +-
 content/docs/en/develop-load-manager.html          |   6 +-
 content/docs/en/develop-load-manager/index.html    |   6 +-
 content/docs/en/develop-schema.html                |   6 +-
 content/docs/en/develop-schema/index.html          |   6 +-
 content/docs/en/develop-tools.html                 |   6 +-
 content/docs/en/develop-tools/index.html           |   6 +-
 content/docs/en/functions-api.html                 |   6 +-
 content/docs/en/functions-api/index.html           |   6 +-
 content/docs/en/functions-deploying.html           |   6 +-
 content/docs/en/functions-deploying/index.html     |   6 +-
 content/docs/en/functions-guarantees.html          |   6 +-
 content/docs/en/functions-guarantees/index.html    |   6 +-
 content/docs/en/functions-metrics.html             |   6 +-
 content/docs/en/functions-metrics/index.html       |   6 +-
 content/docs/en/functions-overview.html            |   6 +-
 content/docs/en/functions-overview/index.html      |   6 +-
 content/docs/en/functions-quickstart.html          |   6 +-
 content/docs/en/functions-quickstart/index.html    |   6 +-
 content/docs/en/functions-state.html               |   6 +-
 content/docs/en/functions-state/index.html         |   6 +-
 content/docs/en/io-aerospike.html                  |   6 +-
 content/docs/en/io-aerospike/index.html            |   6 +-
 content/docs/en/io-cassandra.html                  |   6 +-
 content/docs/en/io-cassandra/index.html            |   6 +-
 content/docs/en/io-connectors.html                 |   8 +-
 content/docs/en/io-connectors/index.html           |   8 +-
 content/docs/en/io-develop.html                    |   6 +-
 content/docs/en/io-develop/index.html              |   6 +-
 content/docs/en/io-kafka.html                      |   6 +-
 content/docs/en/io-kafka/index.html                |   6 +-
 content/docs/en/io-kinesis.html                    |   6 +-
 content/docs/en/io-kinesis/index.html              |   6 +-
 content/docs/en/io-managing.html                   |   6 +-
 content/docs/en/io-managing/index.html             |   6 +-
 content/docs/en/io-overview.html                   |   8 +-
 content/docs/en/io-overview/index.html             |   8 +-
 content/docs/en/io-quickstart.html                 |   6 +-
 content/docs/en/io-quickstart/index.html           |   6 +-
 content/docs/en/io-rabbitmq.html                   |   6 +-
 content/docs/en/io-rabbitmq/index.html             |   6 +-
 content/docs/en/io-twitter.html                    |   6 +-
 content/docs/en/io-twitter/index.html              |   6 +-
 content/docs/en/next/adaptors-kafka.html           |   8 +-
 content/docs/en/next/adaptors-kafka/index.html     |   8 +-
 content/docs/en/next/adaptors-spark.html           |   8 +-
 content/docs/en/next/adaptors-spark/index.html     |   8 +-
 content/docs/en/next/adaptors-storm.html           |   8 +-
 content/docs/en/next/adaptors-storm/index.html     |   8 +-
 content/docs/en/next/admin-api-brokers.html        |   8 +-
 content/docs/en/next/admin-api-brokers/index.html  |   8 +-
 content/docs/en/next/admin-api-clusters.html       |   8 +-
 content/docs/en/next/admin-api-clusters/index.html |   8 +-
 content/docs/en/next/admin-api-namespaces.html     |   8 +-
 .../docs/en/next/admin-api-namespaces/index.html   |   8 +-
 .../en/next/admin-api-non-persistent-topics.html   |   8 +-
 .../admin-api-non-persistent-topics/index.html     |   8 +-
 content/docs/en/next/admin-api-overview.html       |   8 +-
 content/docs/en/next/admin-api-overview/index.html |   8 +-
 .../docs/en/next/admin-api-partitioned-topics.html |   8 +-
 .../next/admin-api-partitioned-topics/index.html   |   8 +-
 content/docs/en/next/admin-api-permissions.html    |   8 +-
 .../docs/en/next/admin-api-permissions/index.html  |   8 +-
 .../docs/en/next/admin-api-persistent-topics.html  |   8 +-
 .../en/next/admin-api-persistent-topics/index.html |   8 +-
 content/docs/en/next/admin-api-schemas.html        |  10 +-
 content/docs/en/next/admin-api-schemas/index.html  |  10 +-
 content/docs/en/next/admin-api-tenants.html        |  12 +-
 content/docs/en/next/admin-api-tenants/index.html  |  12 +-
 content/docs/en/next/administration-dashboard.html |   8 +-
 .../en/next/administration-dashboard/index.html    |   8 +-
 content/docs/en/next/administration-geo.html       |   8 +-
 content/docs/en/next/administration-geo/index.html |   8 +-
 .../en/next/administration-load-distribution.html  |   8 +-
 .../administration-load-distribution/index.html    |   8 +-
 content/docs/en/next/administration-proxy.html     |   8 +-
 .../docs/en/next/administration-proxy/index.html   |   8 +-
 content/docs/en/next/administration-stats.html     |   8 +-
 .../docs/en/next/administration-stats/index.html   |   8 +-
 content/docs/en/next/administration-zk-bk.html     |   8 +-
 .../docs/en/next/administration-zk-bk/index.html   |   8 +-
 content/docs/en/next/client-libraries-cpp.html     |  18 +-
 .../docs/en/next/client-libraries-cpp/index.html   |  18 +-
 content/docs/en/next/client-libraries-go.html      |   8 +-
 .../docs/en/next/client-libraries-go/index.html    |   8 +-
 content/docs/en/next/client-libraries-java.html    |   8 +-
 .../docs/en/next/client-libraries-java/index.html  |   8 +-
 content/docs/en/next/client-libraries-python.html  |   8 +-
 .../en/next/client-libraries-python/index.html     |   8 +-
 .../docs/en/next/client-libraries-websocket.html   |   8 +-
 .../en/next/client-libraries-websocket/index.html  |   8 +-
 content/docs/en/next/client-libraries.html         |   8 +-
 content/docs/en/next/client-libraries/index.html   |   8 +-
 .../en/next/concepts-architecture-overview.html    |   8 +-
 .../next/concepts-architecture-overview/index.html |   8 +-
 content/docs/en/next/concepts-architecture.html    |   4 +-
 .../docs/en/next/concepts-architecture/index.html  |   4 +-
 content/docs/en/next/concepts-authentication.html  |   8 +-
 .../en/next/concepts-authentication/index.html     |   8 +-
 content/docs/en/next/concepts-clients.html         |   8 +-
 content/docs/en/next/concepts-clients/index.html   |   8 +-
 content/docs/en/next/concepts-messaging.html       |   8 +-
 content/docs/en/next/concepts-messaging/index.html |   8 +-
 content/docs/en/next/concepts-multi-tenancy.html   |   8 +-
 .../docs/en/next/concepts-multi-tenancy/index.html |   8 +-
 content/docs/en/next/concepts-overview.html        |   8 +-
 content/docs/en/next/concepts-overview/index.html  |   8 +-
 content/docs/en/next/concepts-replication.html     |   8 +-
 .../docs/en/next/concepts-replication/index.html   |   8 +-
 content/docs/en/next/concepts-schema-registry.html |   8 +-
 .../en/next/concepts-schema-registry/index.html    |   8 +-
 content/docs/en/next/concepts-tiered-storage.html  |   8 +-
 .../en/next/concepts-tiered-storage/index.html     |   8 +-
 .../docs/en/next/concepts-topic-compaction.html    |   8 +-
 .../en/next/concepts-topic-compaction/index.html   |   8 +-
 content/docs/en/next/cookbooks-compaction.html     |   8 +-
 .../docs/en/next/cookbooks-compaction/index.html   |   8 +-
 content/docs/en/next/cookbooks-deduplication.html  |   8 +-
 .../en/next/cookbooks-deduplication/index.html     |   8 +-
 content/docs/en/next/cookbooks-encryption.html     |   8 +-
 .../docs/en/next/cookbooks-encryption/index.html   |   8 +-
 content/docs/en/next/cookbooks-message-queue.html  |   8 +-
 .../en/next/cookbooks-message-queue/index.html     |   8 +-
 content/docs/en/next/cookbooks-non-persistent.html |   8 +-
 .../en/next/cookbooks-non-persistent/index.html    |   8 +-
 content/docs/en/next/cookbooks-partitioned.html    |   8 +-
 .../docs/en/next/cookbooks-partitioned/index.html  |   8 +-
 .../docs/en/next/cookbooks-retention-expiry.html   |   8 +-
 .../en/next/cookbooks-retention-expiry/index.html  |   8 +-
 content/docs/en/next/cookbooks-tiered-storage.html |   8 +-
 .../en/next/cookbooks-tiered-storage/index.html    |   8 +-
 content/docs/en/next/deploy-aws.html               |   8 +-
 content/docs/en/next/deploy-aws/index.html         |   8 +-
 .../en/next/deploy-bare-metal-multi-cluster.html   |   8 +-
 .../deploy-bare-metal-multi-cluster/index.html     |   8 +-
 content/docs/en/next/deploy-bare-metal.html        |   9 +-
 content/docs/en/next/deploy-bare-metal/index.html  |   9 +-
 content/docs/en/next/deploy-dcos.html              |   8 +-
 content/docs/en/next/deploy-dcos/index.html        |   8 +-
 content/docs/en/next/deploy-kubernetes.html        |   8 +-
 content/docs/en/next/deploy-kubernetes/index.html  |   8 +-
 content/docs/en/next/deploy-monitoring.html        |   8 +-
 content/docs/en/next/deploy-monitoring/index.html  |   8 +-
 content/docs/en/next/develop-binary-protocol.html  |   8 +-
 .../en/next/develop-binary-protocol/index.html     |   8 +-
 content/docs/en/next/develop-cpp.html              |   8 +-
 content/docs/en/next/develop-cpp/index.html        |   8 +-
 content/docs/en/next/develop-load-manager.html     |   8 +-
 .../docs/en/next/develop-load-manager/index.html   |   8 +-
 content/docs/en/next/develop-schema.html           |   8 +-
 content/docs/en/next/develop-schema/index.html     |   8 +-
 content/docs/en/next/develop-tools.html            |   8 +-
 content/docs/en/next/develop-tools/index.html      |   8 +-
 content/docs/en/next/functions-api.html            |   8 +-
 content/docs/en/next/functions-api/index.html      |   8 +-
 content/docs/en/next/functions-deploying.html      |   8 +-
 .../docs/en/next/functions-deploying/index.html    |   8 +-
 content/docs/en/next/functions-guarantees.html     |   8 +-
 .../docs/en/next/functions-guarantees/index.html   |   8 +-
 content/docs/en/next/functions-metrics.html        |   8 +-
 content/docs/en/next/functions-metrics/index.html  |   8 +-
 content/docs/en/next/functions-overview.html       |   8 +-
 content/docs/en/next/functions-overview/index.html |   8 +-
 content/docs/en/next/functions-quickstart.html     |   8 +-
 .../docs/en/next/functions-quickstart/index.html   |   8 +-
 content/docs/en/next/functions-state.html          |   8 +-
 content/docs/en/next/functions-state/index.html    |   8 +-
 content/docs/en/next/io-aerospike.html             |  15 +-
 content/docs/en/next/io-aerospike/index.html       |  15 +-
 content/docs/en/next/io-cassandra.html             |   6 +-
 content/docs/en/next/io-cassandra/index.html       |   6 +-
 content/docs/en/next/io-connectors.html            |   9 +-
 content/docs/en/next/io-connectors/index.html      |   9 +-
 content/docs/en/next/io-develop.html               |   8 +-
 content/docs/en/next/io-develop/index.html         |   8 +-
 content/docs/en/next/io-kafka.html                 |   6 +-
 content/docs/en/next/io-kafka/index.html           |   6 +-
 content/docs/en/next/io-kinesis.html               |   6 +-
 content/docs/en/next/io-kinesis/index.html         |   6 +-
 content/docs/en/next/io-managing.html              |   8 +-
 content/docs/en/next/io-managing/index.html        |   8 +-
 content/docs/en/next/io-overview.html              |  11 +-
 content/docs/en/next/io-overview/index.html        |  11 +-
 content/docs/en/next/io-quickstart.html            |  11 +-
 content/docs/en/next/io-quickstart/index.html      |  11 +-
 content/docs/en/next/io-rabbitmq.html              |   6 +-
 content/docs/en/next/io-rabbitmq/index.html        |   6 +-
 content/docs/en/next/io-twitter.html               |   6 +-
 content/docs/en/next/io-twitter/index.html         |   6 +-
 content/docs/en/next/pulsar-2.0.html               |   8 +-
 content/docs/en/next/pulsar-2.0/index.html         |   8 +-
 content/docs/en/next/pulsar-admin.html             |  15 +-
 content/docs/en/next/pulsar-admin/index.html       |  15 +-
 content/docs/en/next/reference-cli-tools.html      |   8 +-
 .../docs/en/next/reference-cli-tools/index.html    |   8 +-
 content/docs/en/next/reference-configuration.html  |   8 +-
 .../en/next/reference-configuration/index.html     |   8 +-
 content/docs/en/next/reference-terminology.html    |   8 +-
 .../docs/en/next/reference-terminology/index.html  |   8 +-
 content/docs/en/next/security-athenz.html          |   8 +-
 content/docs/en/next/security-athenz/index.html    |   8 +-
 content/docs/en/next/security-authorization.html   |   8 +-
 .../docs/en/next/security-authorization/index.html |   8 +-
 content/docs/en/next/security-encryption.html      |   8 +-
 .../docs/en/next/security-encryption/index.html    |   8 +-
 content/docs/en/next/security-extending.html       |   8 +-
 content/docs/en/next/security-extending/index.html |   8 +-
 content/docs/en/next/security-overview.html        |   8 +-
 content/docs/en/next/security-overview/index.html  |   8 +-
 .../docs/en/next/security-tls-authentication.html  |  10 +-
 .../en/next/security-tls-authentication/index.html |  10 +-
 content/docs/en/next/security-tls-transport.html   |  10 +-
 .../docs/en/next/security-tls-transport/index.html |  10 +-
 .../en/next/sql-deployment-configurations.html     | 201 ++++++++++++
 .../next/sql-deployment-configurations/index.html  | 201 ++++++++++++
 content/docs/en/next/sql-getting-started.html      | 216 +++++++++++++
 .../docs/en/next/sql-getting-started/index.html    | 216 +++++++++++++
 content/docs/en/next/sql-overview.html             | 109 +++++++
 content/docs/en/next/sql-overview/index.html       | 109 +++++++
 content/docs/en/next/standalone-docker.html        |   8 +-
 content/docs/en/next/standalone-docker/index.html  |   8 +-
 content/docs/en/next/standalone.html               |  33 +-
 content/docs/en/next/standalone/index.html         |  33 +-
 content/docs/en/pulsar-2.0.html                    |   6 +-
 content/docs/en/pulsar-2.0/index.html              |   6 +-
 content/docs/en/pulsar-admin.html                  |   6 +-
 content/docs/en/pulsar-admin/index.html            |   6 +-
 content/docs/en/reference-cli-tools.html           |   6 +-
 content/docs/en/reference-cli-tools/index.html     |   6 +-
 content/docs/en/reference-configuration.html       |   6 +-
 content/docs/en/reference-configuration/index.html |   6 +-
 content/docs/en/reference-terminology.html         |   6 +-
 content/docs/en/reference-terminology/index.html   |   6 +-
 content/docs/en/security-athenz.html               |   6 +-
 content/docs/en/security-athenz/index.html         |   6 +-
 content/docs/en/security-authorization.html        |   6 +-
 content/docs/en/security-authorization/index.html  |   6 +-
 content/docs/en/security-encryption.html           |   6 +-
 content/docs/en/security-encryption/index.html     |   6 +-
 content/docs/en/security-extending.html            |   6 +-
 content/docs/en/security-extending/index.html      |   6 +-
 content/docs/en/security-overview.html             |   6 +-
 content/docs/en/security-overview/index.html       |   6 +-
 content/docs/en/security-tls-authentication.html   |   8 +-
 .../docs/en/security-tls-authentication/index.html |   8 +-
 content/docs/en/security-tls-transport.html        |   8 +-
 content/docs/en/security-tls-transport/index.html  |   8 +-
 content/docs/en/standalone-docker.html             |   6 +-
 content/docs/en/standalone-docker/index.html       |   6 +-
 content/docs/en/standalone.html                    |  19 +-
 content/docs/en/standalone/index.html              |  19 +-
 content/docs/fr/adaptors-kafka.html                |  10 +-
 content/docs/fr/adaptors-kafka/index.html          |  10 +-
 content/docs/fr/adaptors-spark.html                |   8 +-
 content/docs/fr/adaptors-spark/index.html          |   8 +-
 content/docs/fr/adaptors-storm.html                |   8 +-
 content/docs/fr/adaptors-storm/index.html          |   8 +-
 content/docs/fr/admin-api-brokers.html             |   8 +-
 content/docs/fr/admin-api-brokers/index.html       |   8 +-
 content/docs/fr/admin-api-clusters.html            |   8 +-
 content/docs/fr/admin-api-clusters/index.html      |   8 +-
 content/docs/fr/admin-api-namespaces.html          |   8 +-
 content/docs/fr/admin-api-namespaces/index.html    |   8 +-
 .../docs/fr/admin-api-non-persistent-topics.html   |   8 +-
 .../fr/admin-api-non-persistent-topics/index.html  |   8 +-
 content/docs/fr/admin-api-overview.html            |   8 +-
 content/docs/fr/admin-api-overview/index.html      |   8 +-
 content/docs/fr/admin-api-partitioned-topics.html  |   8 +-
 .../fr/admin-api-partitioned-topics/index.html     |   8 +-
 content/docs/fr/admin-api-permissions.html         |   8 +-
 content/docs/fr/admin-api-permissions/index.html   |   8 +-
 content/docs/fr/admin-api-persistent-topics.html   |   8 +-
 .../docs/fr/admin-api-persistent-topics/index.html |   8 +-
 content/docs/fr/admin-api-schemas.html             |  10 +-
 content/docs/fr/admin-api-schemas/index.html       |  10 +-
 content/docs/fr/admin-api-tenants.html             |  12 +-
 content/docs/fr/admin-api-tenants/index.html       |  12 +-
 content/docs/fr/administration-dashboard.html      |   8 +-
 .../docs/fr/administration-dashboard/index.html    |   8 +-
 content/docs/fr/administration-geo.html            |   8 +-
 content/docs/fr/administration-geo/index.html      |   8 +-
 .../docs/fr/administration-load-distribution.html  |   8 +-
 .../fr/administration-load-distribution/index.html |   8 +-
 content/docs/fr/administration-proxy.html          |   8 +-
 content/docs/fr/administration-proxy/index.html    |   8 +-
 content/docs/fr/administration-stats.html          |   8 +-
 content/docs/fr/administration-stats/index.html    |   8 +-
 content/docs/fr/administration-zk-bk.html          |   8 +-
 content/docs/fr/administration-zk-bk/index.html    |   8 +-
 content/docs/fr/client-libraries-cpp.html          |  14 +-
 content/docs/fr/client-libraries-cpp/index.html    |  14 +-
 content/docs/fr/client-libraries-go.html           |   8 +-
 content/docs/fr/client-libraries-go/index.html     |   8 +-
 content/docs/fr/client-libraries-java.html         |   8 +-
 content/docs/fr/client-libraries-java/index.html   |   8 +-
 content/docs/fr/client-libraries-python.html       |   8 +-
 content/docs/fr/client-libraries-python/index.html |   8 +-
 content/docs/fr/client-libraries-websocket.html    |   8 +-
 .../docs/fr/client-libraries-websocket/index.html  |   8 +-
 content/docs/fr/client-libraries.html              |   8 +-
 content/docs/fr/client-libraries/index.html        |   8 +-
 .../docs/fr/concepts-architecture-overview.html    |   8 +-
 .../fr/concepts-architecture-overview/index.html   |   8 +-
 content/docs/fr/concepts-architecture.html         |   6 +-
 content/docs/fr/concepts-architecture/index.html   |   6 +-
 content/docs/fr/concepts-authentication.html       |   8 +-
 content/docs/fr/concepts-authentication/index.html |   8 +-
 content/docs/fr/concepts-clients.html              |   8 +-
 content/docs/fr/concepts-clients/index.html        |   8 +-
 content/docs/fr/concepts-messaging.html            |   8 +-
 content/docs/fr/concepts-messaging/index.html      |   8 +-
 content/docs/fr/concepts-multi-tenancy.html        |   8 +-
 content/docs/fr/concepts-multi-tenancy/index.html  |   8 +-
 content/docs/fr/concepts-overview.html             |   8 +-
 content/docs/fr/concepts-overview/index.html       |   8 +-
 content/docs/fr/concepts-replication.html          |   8 +-
 content/docs/fr/concepts-replication/index.html    |   8 +-
 content/docs/fr/concepts-schema-registry.html      |   8 +-
 .../docs/fr/concepts-schema-registry/index.html    |   8 +-
 content/docs/fr/concepts-tiered-storage.html       |   8 +-
 content/docs/fr/concepts-tiered-storage/index.html |   8 +-
 content/docs/fr/concepts-topic-compaction.html     |   8 +-
 .../docs/fr/concepts-topic-compaction/index.html   |   8 +-
 content/docs/fr/cookbooks-compaction.html          |   8 +-
 content/docs/fr/cookbooks-compaction/index.html    |   8 +-
 content/docs/fr/cookbooks-deduplication.html       |   8 +-
 content/docs/fr/cookbooks-deduplication/index.html |   8 +-
 content/docs/fr/cookbooks-encryption.html          |   8 +-
 content/docs/fr/cookbooks-encryption/index.html    |   8 +-
 content/docs/fr/cookbooks-message-queue.html       |   8 +-
 content/docs/fr/cookbooks-message-queue/index.html |   8 +-
 content/docs/fr/cookbooks-non-persistent.html      |   8 +-
 .../docs/fr/cookbooks-non-persistent/index.html    |   8 +-
 content/docs/fr/cookbooks-partitioned.html         |   8 +-
 content/docs/fr/cookbooks-partitioned/index.html   |   8 +-
 content/docs/fr/cookbooks-retention-expiry.html    |   8 +-
 .../docs/fr/cookbooks-retention-expiry/index.html  |   8 +-
 content/docs/fr/cookbooks-tiered-storage.html      |   8 +-
 .../docs/fr/cookbooks-tiered-storage/index.html    |   8 +-
 content/docs/fr/deploy-aws.html                    |   8 +-
 content/docs/fr/deploy-aws/index.html              |   8 +-
 .../docs/fr/deploy-bare-metal-multi-cluster.html   |   8 +-
 .../fr/deploy-bare-metal-multi-cluster/index.html  |   8 +-
 content/docs/fr/deploy-bare-metal.html             |   8 +-
 content/docs/fr/deploy-bare-metal/index.html       |   8 +-
 content/docs/fr/deploy-dcos.html                   |   8 +-
 content/docs/fr/deploy-dcos/index.html             |   8 +-
 content/docs/fr/deploy-kubernetes.html             |   8 +-
 content/docs/fr/deploy-kubernetes/index.html       |   8 +-
 content/docs/fr/deploy-monitoring.html             |   8 +-
 content/docs/fr/deploy-monitoring/index.html       |   8 +-
 content/docs/fr/develop-binary-protocol.html       |   8 +-
 content/docs/fr/develop-binary-protocol/index.html |   8 +-
 content/docs/fr/develop-cpp.html                   |   8 +-
 content/docs/fr/develop-cpp/index.html             |   8 +-
 content/docs/fr/develop-load-manager.html          |   8 +-
 content/docs/fr/develop-load-manager/index.html    |   8 +-
 content/docs/fr/develop-schema.html                |   8 +-
 content/docs/fr/develop-schema/index.html          |   8 +-
 content/docs/fr/develop-tools.html                 |   8 +-
 content/docs/fr/develop-tools/index.html           |   8 +-
 content/docs/fr/functions-api.html                 |   8 +-
 content/docs/fr/functions-api/index.html           |   8 +-
 content/docs/fr/functions-deploying.html           |   8 +-
 content/docs/fr/functions-deploying/index.html     |   8 +-
 content/docs/fr/functions-guarantees.html          |   8 +-
 content/docs/fr/functions-guarantees/index.html    |   8 +-
 content/docs/fr/functions-metrics.html             |   8 +-
 content/docs/fr/functions-metrics/index.html       |   8 +-
 content/docs/fr/functions-overview.html            |   8 +-
 content/docs/fr/functions-overview/index.html      |   8 +-
 content/docs/fr/functions-quickstart.html          |   8 +-
 content/docs/fr/functions-quickstart/index.html    |   8 +-
 content/docs/fr/functions-state.html               |   8 +-
 content/docs/fr/functions-state/index.html         |   8 +-
 content/docs/fr/io-aerospike.html                  |   6 +-
 content/docs/fr/io-aerospike/index.html            |   6 +-
 content/docs/fr/io-cassandra.html                  |   6 +-
 content/docs/fr/io-cassandra/index.html            |   6 +-
 content/docs/fr/io-connectors.html                 |  10 +-
 content/docs/fr/io-connectors/index.html           |  10 +-
 content/docs/fr/io-develop.html                    |   8 +-
 content/docs/fr/io-develop/index.html              |   8 +-
 content/docs/fr/io-kafka.html                      |   6 +-
 content/docs/fr/io-kafka/index.html                |   6 +-
 content/docs/fr/io-kinesis.html                    |   6 +-
 content/docs/fr/io-kinesis/index.html              |   6 +-
 content/docs/fr/io-managing.html                   |   8 +-
 content/docs/fr/io-managing/index.html             |   8 +-
 content/docs/fr/io-overview.html                   |  10 +-
 content/docs/fr/io-overview/index.html             |  10 +-
 content/docs/fr/io-quickstart.html                 |  10 +-
 content/docs/fr/io-quickstart/index.html           |  10 +-
 content/docs/fr/io-rabbitmq.html                   |   6 +-
 content/docs/fr/io-rabbitmq/index.html             |   6 +-
 content/docs/fr/io-twitter.html                    |   6 +-
 content/docs/fr/io-twitter/index.html              |   6 +-
 content/docs/fr/next/adaptors-kafka.html           |   8 +-
 content/docs/fr/next/adaptors-kafka/index.html     |   8 +-
 content/docs/fr/next/adaptors-spark.html           |   8 +-
 content/docs/fr/next/adaptors-spark/index.html     |   8 +-
 content/docs/fr/next/adaptors-storm.html           |   8 +-
 content/docs/fr/next/adaptors-storm/index.html     |   8 +-
 content/docs/fr/next/admin-api-brokers.html        |   8 +-
 content/docs/fr/next/admin-api-brokers/index.html  |   8 +-
 content/docs/fr/next/admin-api-clusters.html       |   8 +-
 content/docs/fr/next/admin-api-clusters/index.html |   8 +-
 content/docs/fr/next/admin-api-namespaces.html     |   8 +-
 .../docs/fr/next/admin-api-namespaces/index.html   |   8 +-
 .../fr/next/admin-api-non-persistent-topics.html   |   8 +-
 .../admin-api-non-persistent-topics/index.html     |   8 +-
 content/docs/fr/next/admin-api-overview.html       |   8 +-
 content/docs/fr/next/admin-api-overview/index.html |   8 +-
 .../docs/fr/next/admin-api-partitioned-topics.html |   8 +-
 .../next/admin-api-partitioned-topics/index.html   |   8 +-
 content/docs/fr/next/admin-api-permissions.html    |   8 +-
 .../docs/fr/next/admin-api-permissions/index.html  |   8 +-
 .../docs/fr/next/admin-api-persistent-topics.html  |   8 +-
 .../fr/next/admin-api-persistent-topics/index.html |   8 +-
 content/docs/fr/next/admin-api-schemas.html        |  10 +-
 content/docs/fr/next/admin-api-schemas/index.html  |  10 +-
 content/docs/fr/next/admin-api-tenants.html        |  12 +-
 content/docs/fr/next/admin-api-tenants/index.html  |  12 +-
 content/docs/fr/next/administration-dashboard.html |   8 +-
 .../fr/next/administration-dashboard/index.html    |   8 +-
 content/docs/fr/next/administration-geo.html       |   8 +-
 content/docs/fr/next/administration-geo/index.html |   8 +-
 .../fr/next/administration-load-distribution.html  |   8 +-
 .../administration-load-distribution/index.html    |   8 +-
 content/docs/fr/next/administration-proxy.html     |   8 +-
 .../docs/fr/next/administration-proxy/index.html   |   8 +-
 content/docs/fr/next/administration-stats.html     |   8 +-
 .../docs/fr/next/administration-stats/index.html   |   8 +-
 content/docs/fr/next/administration-zk-bk.html     |   8 +-
 .../docs/fr/next/administration-zk-bk/index.html   |   8 +-
 content/docs/fr/next/client-libraries-cpp.html     |  18 +-
 .../docs/fr/next/client-libraries-cpp/index.html   |  18 +-
 content/docs/fr/next/client-libraries-go.html      |   8 +-
 .../docs/fr/next/client-libraries-go/index.html    |   8 +-
 content/docs/fr/next/client-libraries-java.html    |   8 +-
 .../docs/fr/next/client-libraries-java/index.html  |   8 +-
 content/docs/fr/next/client-libraries-python.html  |   8 +-
 .../fr/next/client-libraries-python/index.html     |   8 +-
 .../docs/fr/next/client-libraries-websocket.html   |   8 +-
 .../fr/next/client-libraries-websocket/index.html  |   8 +-
 content/docs/fr/next/client-libraries.html         |   8 +-
 content/docs/fr/next/client-libraries/index.html   |   8 +-
 .../fr/next/concepts-architecture-overview.html    |   8 +-
 .../next/concepts-architecture-overview/index.html |   8 +-
 content/docs/fr/next/concepts-architecture.html    |   6 +-
 .../docs/fr/next/concepts-architecture/index.html  |   6 +-
 content/docs/fr/next/concepts-authentication.html  |   8 +-
 .../fr/next/concepts-authentication/index.html     |   8 +-
 content/docs/fr/next/concepts-clients.html         |   8 +-
 content/docs/fr/next/concepts-clients/index.html   |   8 +-
 content/docs/fr/next/concepts-messaging.html       |   8 +-
 content/docs/fr/next/concepts-messaging/index.html |   8 +-
 content/docs/fr/next/concepts-multi-tenancy.html   |   8 +-
 .../docs/fr/next/concepts-multi-tenancy/index.html |   8 +-
 content/docs/fr/next/concepts-overview.html        |   8 +-
 content/docs/fr/next/concepts-overview/index.html  |   8 +-
 content/docs/fr/next/concepts-replication.html     |   8 +-
 .../docs/fr/next/concepts-replication/index.html   |   8 +-
 content/docs/fr/next/concepts-schema-registry.html |   8 +-
 .../fr/next/concepts-schema-registry/index.html    |   8 +-
 content/docs/fr/next/concepts-tiered-storage.html  |   8 +-
 .../fr/next/concepts-tiered-storage/index.html     |   8 +-
 .../docs/fr/next/concepts-topic-compaction.html    |   8 +-
 .../fr/next/concepts-topic-compaction/index.html   |   8 +-
 content/docs/fr/next/cookbooks-compaction.html     |   8 +-
 .../docs/fr/next/cookbooks-compaction/index.html   |   8 +-
 content/docs/fr/next/cookbooks-deduplication.html  |   8 +-
 .../fr/next/cookbooks-deduplication/index.html     |   8 +-
 content/docs/fr/next/cookbooks-encryption.html     |   8 +-
 .../docs/fr/next/cookbooks-encryption/index.html   |   8 +-
 content/docs/fr/next/cookbooks-message-queue.html  |   8 +-
 .../fr/next/cookbooks-message-queue/index.html     |   8 +-
 content/docs/fr/next/cookbooks-non-persistent.html |   8 +-
 .../fr/next/cookbooks-non-persistent/index.html    |   8 +-
 content/docs/fr/next/cookbooks-partitioned.html    |   8 +-
 .../docs/fr/next/cookbooks-partitioned/index.html  |   8 +-
 .../docs/fr/next/cookbooks-retention-expiry.html   |   8 +-
 .../fr/next/cookbooks-retention-expiry/index.html  |   8 +-
 content/docs/fr/next/cookbooks-tiered-storage.html |   8 +-
 .../fr/next/cookbooks-tiered-storage/index.html    |   8 +-
 content/docs/fr/next/deploy-aws.html               |   8 +-
 content/docs/fr/next/deploy-aws/index.html         |   8 +-
 .../fr/next/deploy-bare-metal-multi-cluster.html   |   8 +-
 .../deploy-bare-metal-multi-cluster/index.html     |   8 +-
 content/docs/fr/next/deploy-bare-metal.html        |   9 +-
 content/docs/fr/next/deploy-bare-metal/index.html  |   9 +-
 content/docs/fr/next/deploy-dcos.html              |   8 +-
 content/docs/fr/next/deploy-dcos/index.html        |   8 +-
 content/docs/fr/next/deploy-kubernetes.html        |   8 +-
 content/docs/fr/next/deploy-kubernetes/index.html  |   8 +-
 content/docs/fr/next/deploy-monitoring.html        |   8 +-
 content/docs/fr/next/deploy-monitoring/index.html  |   8 +-
 content/docs/fr/next/develop-binary-protocol.html  |   8 +-
 .../fr/next/develop-binary-protocol/index.html     |   8 +-
 content/docs/fr/next/develop-cpp.html              |   8 +-
 content/docs/fr/next/develop-cpp/index.html        |   8 +-
 content/docs/fr/next/develop-load-manager.html     |   8 +-
 .../docs/fr/next/develop-load-manager/index.html   |   8 +-
 content/docs/fr/next/develop-schema.html           |   8 +-
 content/docs/fr/next/develop-schema/index.html     |   8 +-
 content/docs/fr/next/develop-tools.html            |   8 +-
 content/docs/fr/next/develop-tools/index.html      |   8 +-
 content/docs/fr/next/functions-api.html            |   8 +-
 content/docs/fr/next/functions-api/index.html      |   8 +-
 content/docs/fr/next/functions-deploying.html      |   8 +-
 .../docs/fr/next/functions-deploying/index.html    |   8 +-
 content/docs/fr/next/functions-guarantees.html     |   8 +-
 .../docs/fr/next/functions-guarantees/index.html   |   8 +-
 content/docs/fr/next/functions-metrics.html        |   8 +-
 content/docs/fr/next/functions-metrics/index.html  |   8 +-
 content/docs/fr/next/functions-overview.html       |   8 +-
 content/docs/fr/next/functions-overview/index.html |   8 +-
 content/docs/fr/next/functions-quickstart.html     |   8 +-
 .../docs/fr/next/functions-quickstart/index.html   |   8 +-
 content/docs/fr/next/functions-state.html          |   8 +-
 content/docs/fr/next/functions-state/index.html    |   8 +-
 content/docs/fr/next/io-aerospike.html             |  15 +-
 content/docs/fr/next/io-aerospike/index.html       |  15 +-
 content/docs/fr/next/io-cassandra.html             |   6 +-
 content/docs/fr/next/io-cassandra/index.html       |   6 +-
 content/docs/fr/next/io-connectors.html            |   9 +-
 content/docs/fr/next/io-connectors/index.html      |   9 +-
 content/docs/fr/next/io-develop.html               |   8 +-
 content/docs/fr/next/io-develop/index.html         |   8 +-
 content/docs/fr/next/io-kafka.html                 |   6 +-
 content/docs/fr/next/io-kafka/index.html           |   6 +-
 content/docs/fr/next/io-kinesis.html               |   6 +-
 content/docs/fr/next/io-kinesis/index.html         |   6 +-
 content/docs/fr/next/io-managing.html              |   8 +-
 content/docs/fr/next/io-managing/index.html        |   8 +-
 content/docs/fr/next/io-overview.html              |  11 +-
 content/docs/fr/next/io-overview/index.html        |  11 +-
 content/docs/fr/next/io-quickstart.html            |  11 +-
 content/docs/fr/next/io-quickstart/index.html      |  11 +-
 content/docs/fr/next/io-rabbitmq.html              |   6 +-
 content/docs/fr/next/io-rabbitmq/index.html        |   6 +-
 content/docs/fr/next/io-twitter.html               |   6 +-
 content/docs/fr/next/io-twitter/index.html         |   6 +-
 content/docs/fr/next/pulsar-2.0.html               |   8 +-
 content/docs/fr/next/pulsar-2.0/index.html         |   8 +-
 content/docs/fr/next/pulsar-admin.html             |  15 +-
 content/docs/fr/next/pulsar-admin/index.html       |  15 +-
 content/docs/fr/next/reference-cli-tools.html      |   8 +-
 .../docs/fr/next/reference-cli-tools/index.html    |   8 +-
 content/docs/fr/next/reference-configuration.html  |   8 +-
 .../fr/next/reference-configuration/index.html     |   8 +-
 content/docs/fr/next/reference-terminology.html    |   8 +-
 .../docs/fr/next/reference-terminology/index.html  |   8 +-
 content/docs/fr/next/security-athenz.html          |   8 +-
 content/docs/fr/next/security-athenz/index.html    |   8 +-
 content/docs/fr/next/security-authorization.html   |   8 +-
 .../docs/fr/next/security-authorization/index.html |   8 +-
 content/docs/fr/next/security-encryption.html      |   8 +-
 .../docs/fr/next/security-encryption/index.html    |   8 +-
 content/docs/fr/next/security-extending.html       |   8 +-
 content/docs/fr/next/security-extending/index.html |   8 +-
 content/docs/fr/next/security-overview.html        |   8 +-
 content/docs/fr/next/security-overview/index.html  |   8 +-
 .../docs/fr/next/security-tls-authentication.html  |  10 +-
 .../fr/next/security-tls-authentication/index.html |  10 +-
 content/docs/fr/next/security-tls-transport.html   |  10 +-
 .../docs/fr/next/security-tls-transport/index.html |  10 +-
 .../fr/next/sql-deployment-configurations.html     | 202 ++++++++++++
 .../next/sql-deployment-configurations/index.html  | 202 ++++++++++++
 content/docs/fr/next/sql-getting-started.html      | 216 +++++++++++++
 .../docs/fr/next/sql-getting-started/index.html    | 216 +++++++++++++
 content/docs/fr/next/sql-overview.html             | 109 +++++++
 content/docs/fr/next/sql-overview/index.html       | 109 +++++++
 content/docs/fr/next/standalone-docker.html        |   8 +-
 content/docs/fr/next/standalone-docker/index.html  |   8 +-
 content/docs/fr/next/standalone.html               |  33 +-
 content/docs/fr/next/standalone/index.html         |  33 +-
 content/docs/fr/pulsar-2.0.html                    |   8 +-
 content/docs/fr/pulsar-2.0/index.html              |   8 +-
 content/docs/fr/pulsar-admin.html                  |   8 +-
 content/docs/fr/pulsar-admin/index.html            |   8 +-
 content/docs/fr/reference-cli-tools.html           |   8 +-
 content/docs/fr/reference-cli-tools/index.html     |   8 +-
 content/docs/fr/reference-configuration.html       |   8 +-
 content/docs/fr/reference-configuration/index.html |   8 +-
 content/docs/fr/reference-terminology.html         |   8 +-
 content/docs/fr/reference-terminology/index.html   |   8 +-
 content/docs/fr/security-athenz.html               |   8 +-
 content/docs/fr/security-athenz/index.html         |   8 +-
 content/docs/fr/security-authorization.html        |   8 +-
 content/docs/fr/security-authorization/index.html  |   8 +-
 content/docs/fr/security-encryption.html           |   8 +-
 content/docs/fr/security-encryption/index.html     |   8 +-
 content/docs/fr/security-extending.html            |   8 +-
 content/docs/fr/security-extending/index.html      |   8 +-
 content/docs/fr/security-overview.html             |   8 +-
 content/docs/fr/security-overview/index.html       |   8 +-
 content/docs/fr/security-tls-authentication.html   |  10 +-
 .../docs/fr/security-tls-authentication/index.html |  10 +-
 content/docs/fr/security-tls-transport.html        |  10 +-
 content/docs/fr/security-tls-transport/index.html  |  10 +-
 content/docs/fr/standalone-docker.html             |   8 +-
 content/docs/fr/standalone-docker/index.html       |   8 +-
 content/docs/fr/standalone.html                    |  21 +-
 content/docs/fr/standalone/index.html              |  21 +-
 content/docs/ja/adaptors-kafka.html                |   6 +-
 content/docs/ja/adaptors-kafka/index.html          |   6 +-
 content/docs/ja/adaptors-spark.html                |   6 +-
 content/docs/ja/adaptors-spark/index.html          |   6 +-
 content/docs/ja/adaptors-storm.html                |   6 +-
 content/docs/ja/adaptors-storm/index.html          |   6 +-
 content/docs/ja/admin-api-brokers.html             |   6 +-
 content/docs/ja/admin-api-brokers/index.html       |   6 +-
 content/docs/ja/admin-api-clusters.html            |  12 +-
 content/docs/ja/admin-api-clusters/index.html      |  12 +-
 content/docs/ja/admin-api-namespaces.html          |  10 +-
 content/docs/ja/admin-api-namespaces/index.html    |  10 +-
 .../docs/ja/admin-api-non-persistent-topics.html   |   6 +-
 .../ja/admin-api-non-persistent-topics/index.html  |   6 +-
 content/docs/ja/admin-api-overview.html            |   6 +-
 content/docs/ja/admin-api-overview/index.html      |   6 +-
 content/docs/ja/admin-api-partitioned-topics.html  |  12 +-
 .../ja/admin-api-partitioned-topics/index.html     |  12 +-
 content/docs/ja/admin-api-permissions.html         |   6 +-
 content/docs/ja/admin-api-permissions/index.html   |   6 +-
 content/docs/ja/admin-api-persistent-topics.html   |   6 +-
 .../docs/ja/admin-api-persistent-topics/index.html |   6 +-
 content/docs/ja/admin-api-schemas.html             |   8 +-
 content/docs/ja/admin-api-schemas/index.html       |   8 +-
 content/docs/ja/admin-api-tenants.html             |  24 +-
 content/docs/ja/admin-api-tenants/index.html       |  24 +-
 content/docs/ja/administration-dashboard.html      |   6 +-
 .../docs/ja/administration-dashboard/index.html    |   6 +-
 content/docs/ja/administration-geo.html            |   6 +-
 content/docs/ja/administration-geo/index.html      |   6 +-
 .../docs/ja/administration-load-distribution.html  |   6 +-
 .../ja/administration-load-distribution/index.html |   6 +-
 content/docs/ja/administration-proxy.html          |   6 +-
 content/docs/ja/administration-proxy/index.html    |   6 +-
 content/docs/ja/administration-stats.html          |   6 +-
 content/docs/ja/administration-stats/index.html    |   6 +-
 content/docs/ja/administration-zk-bk.html          |   6 +-
 content/docs/ja/administration-zk-bk/index.html    |   6 +-
 content/docs/ja/client-libraries-cpp.html          |  26 +-
 content/docs/ja/client-libraries-cpp/index.html    |  26 +-
 content/docs/ja/client-libraries-go.html           |   6 +-
 content/docs/ja/client-libraries-go/index.html     |   6 +-
 content/docs/ja/client-libraries-java.html         |   6 +-
 content/docs/ja/client-libraries-java/index.html   |   6 +-
 content/docs/ja/client-libraries-python.html       |  20 +-
 content/docs/ja/client-libraries-python/index.html |  20 +-
 content/docs/ja/client-libraries-websocket.html    |   6 +-
 .../docs/ja/client-libraries-websocket/index.html  |   6 +-
 content/docs/ja/client-libraries.html              |   8 +-
 content/docs/ja/client-libraries/index.html        |   8 +-
 .../docs/ja/concepts-architecture-overview.html    |   6 +-
 .../ja/concepts-architecture-overview/index.html   |   6 +-
 content/docs/ja/concepts-architecture.html         |   6 +-
 content/docs/ja/concepts-architecture/index.html   |   6 +-
 content/docs/ja/concepts-authentication.html       |   6 +-
 content/docs/ja/concepts-authentication/index.html |   6 +-
 content/docs/ja/concepts-clients.html              |   6 +-
 content/docs/ja/concepts-clients/index.html        |   6 +-
 content/docs/ja/concepts-messaging.html            |   6 +-
 content/docs/ja/concepts-messaging/index.html      |   6 +-
 content/docs/ja/concepts-multi-tenancy.html        |   6 +-
 content/docs/ja/concepts-multi-tenancy/index.html  |   6 +-
 content/docs/ja/concepts-overview.html             |   6 +-
 content/docs/ja/concepts-overview/index.html       |   6 +-
 content/docs/ja/concepts-replication.html          |   6 +-
 content/docs/ja/concepts-replication/index.html    |   6 +-
 content/docs/ja/concepts-schema-registry.html      |   6 +-
 .../docs/ja/concepts-schema-registry/index.html    |   6 +-
 content/docs/ja/concepts-tiered-storage.html       |   6 +-
 content/docs/ja/concepts-tiered-storage/index.html |   6 +-
 content/docs/ja/concepts-topic-compaction.html     |   6 +-
 .../docs/ja/concepts-topic-compaction/index.html   |   6 +-
 content/docs/ja/cookbooks-compaction.html          |   6 +-
 content/docs/ja/cookbooks-compaction/index.html    |   6 +-
 content/docs/ja/cookbooks-deduplication.html       |   6 +-
 content/docs/ja/cookbooks-deduplication/index.html |   6 +-
 content/docs/ja/cookbooks-encryption.html          |  14 +-
 content/docs/ja/cookbooks-encryption/index.html    |  14 +-
 content/docs/ja/cookbooks-message-queue.html       |   6 +-
 content/docs/ja/cookbooks-message-queue/index.html |   6 +-
 content/docs/ja/cookbooks-non-persistent.html      |   6 +-
 .../docs/ja/cookbooks-non-persistent/index.html    |   6 +-
 content/docs/ja/cookbooks-partitioned.html         |   6 +-
 content/docs/ja/cookbooks-partitioned/index.html   |   6 +-
 content/docs/ja/cookbooks-retention-expiry.html    |   8 +-
 .../docs/ja/cookbooks-retention-expiry/index.html  |   8 +-
 content/docs/ja/cookbooks-tiered-storage.html      |   6 +-
 .../docs/ja/cookbooks-tiered-storage/index.html    |   6 +-
 content/docs/ja/deploy-aws.html                    |   6 +-
 content/docs/ja/deploy-aws/index.html              |   6 +-
 .../docs/ja/deploy-bare-metal-multi-cluster.html   |   6 +-
 .../ja/deploy-bare-metal-multi-cluster/index.html  |   6 +-
 content/docs/ja/deploy-bare-metal.html             |   6 +-
 content/docs/ja/deploy-bare-metal/index.html       |   6 +-
 content/docs/ja/deploy-dcos.html                   |   6 +-
 content/docs/ja/deploy-dcos/index.html             |   6 +-
 content/docs/ja/deploy-kubernetes.html             |   6 +-
 content/docs/ja/deploy-kubernetes/index.html       |   6 +-
 content/docs/ja/deploy-monitoring.html             |   6 +-
 content/docs/ja/deploy-monitoring/index.html       |   6 +-
 content/docs/ja/develop-binary-protocol.html       |   6 +-
 content/docs/ja/develop-binary-protocol/index.html |   6 +-
 content/docs/ja/develop-cpp.html                   |   6 +-
 content/docs/ja/develop-cpp/index.html             |   6 +-
 content/docs/ja/develop-load-manager.html          |   6 +-
 content/docs/ja/develop-load-manager/index.html    |   6 +-
 content/docs/ja/develop-schema.html                |   6 +-
 content/docs/ja/develop-schema/index.html          |   6 +-
 content/docs/ja/develop-tools.html                 |   6 +-
 content/docs/ja/develop-tools/index.html           |   6 +-
 content/docs/ja/functions-api.html                 |   6 +-
 content/docs/ja/functions-api/index.html           |   6 +-
 content/docs/ja/functions-deploying.html           |   6 +-
 content/docs/ja/functions-deploying/index.html     |   6 +-
 content/docs/ja/functions-guarantees.html          |   6 +-
 content/docs/ja/functions-guarantees/index.html    |   6 +-
 content/docs/ja/functions-metrics.html             |   6 +-
 content/docs/ja/functions-metrics/index.html       |   6 +-
 content/docs/ja/functions-overview.html            |   6 +-
 content/docs/ja/functions-overview/index.html      |   6 +-
 content/docs/ja/functions-quickstart.html          |   6 +-
 content/docs/ja/functions-quickstart/index.html    |   6 +-
 content/docs/ja/functions-state.html               |   6 +-
 content/docs/ja/functions-state/index.html         |   6 +-
 content/docs/ja/io-aerospike.html                  |   6 +-
 content/docs/ja/io-aerospike/index.html            |   6 +-
 content/docs/ja/io-cassandra.html                  |   6 +-
 content/docs/ja/io-cassandra/index.html            |   6 +-
 content/docs/ja/io-connectors.html                 |   8 +-
 content/docs/ja/io-connectors/index.html           |   8 +-
 content/docs/ja/io-develop.html                    |   6 +-
 content/docs/ja/io-develop/index.html              |   6 +-
 content/docs/ja/io-kafka.html                      |   6 +-
 content/docs/ja/io-kafka/index.html                |   6 +-
 content/docs/ja/io-kinesis.html                    |   6 +-
 content/docs/ja/io-kinesis/index.html              |   6 +-
 content/docs/ja/io-managing.html                   |   6 +-
 content/docs/ja/io-managing/index.html             |   6 +-
 content/docs/ja/io-overview.html                   |   8 +-
 content/docs/ja/io-overview/index.html             |   8 +-
 content/docs/ja/io-quickstart.html                 |   6 +-
 content/docs/ja/io-quickstart/index.html           |   6 +-
 content/docs/ja/io-rabbitmq.html                   |   6 +-
 content/docs/ja/io-rabbitmq/index.html             |   6 +-
 content/docs/ja/io-twitter.html                    |   6 +-
 content/docs/ja/io-twitter/index.html              |   6 +-
 content/docs/ja/next/adaptors-kafka.html           |   8 +-
 content/docs/ja/next/adaptors-kafka/index.html     |   8 +-
 content/docs/ja/next/adaptors-spark.html           |   8 +-
 content/docs/ja/next/adaptors-spark/index.html     |   8 +-
 content/docs/ja/next/adaptors-storm.html           |   8 +-
 content/docs/ja/next/adaptors-storm/index.html     |   8 +-
 content/docs/ja/next/admin-api-brokers.html        |   8 +-
 content/docs/ja/next/admin-api-brokers/index.html  |   8 +-
 content/docs/ja/next/admin-api-clusters.html       |  14 +-
 content/docs/ja/next/admin-api-clusters/index.html |  14 +-
 content/docs/ja/next/admin-api-namespaces.html     |  12 +-
 .../docs/ja/next/admin-api-namespaces/index.html   |  12 +-
 .../ja/next/admin-api-non-persistent-topics.html   |   8 +-
 .../admin-api-non-persistent-topics/index.html     |   8 +-
 content/docs/ja/next/admin-api-overview.html       |   8 +-
 content/docs/ja/next/admin-api-overview/index.html |   8 +-
 .../docs/ja/next/admin-api-partitioned-topics.html |  14 +-
 .../next/admin-api-partitioned-topics/index.html   |  14 +-
 content/docs/ja/next/admin-api-permissions.html    |   8 +-
 .../docs/ja/next/admin-api-permissions/index.html  |   8 +-
 .../docs/ja/next/admin-api-persistent-topics.html  |   8 +-
 .../ja/next/admin-api-persistent-topics/index.html |   8 +-
 content/docs/ja/next/admin-api-schemas.html        |  10 +-
 content/docs/ja/next/admin-api-schemas/index.html  |  10 +-
 content/docs/ja/next/admin-api-tenants.html        |  26 +-
 content/docs/ja/next/admin-api-tenants/index.html  |  26 +-
 content/docs/ja/next/administration-dashboard.html |   8 +-
 .../ja/next/administration-dashboard/index.html    |   8 +-
 content/docs/ja/next/administration-geo.html       |   8 +-
 content/docs/ja/next/administration-geo/index.html |   8 +-
 .../ja/next/administration-load-distribution.html  |   8 +-
 .../administration-load-distribution/index.html    |   8 +-
 content/docs/ja/next/administration-proxy.html     |   8 +-
 .../docs/ja/next/administration-proxy/index.html   |   8 +-
 content/docs/ja/next/administration-stats.html     |   8 +-
 .../docs/ja/next/administration-stats/index.html   |   8 +-
 content/docs/ja/next/administration-zk-bk.html     |   8 +-
 .../docs/ja/next/administration-zk-bk/index.html   |   8 +-
 content/docs/ja/next/client-libraries-cpp.html     |  38 +--
 .../docs/ja/next/client-libraries-cpp/index.html   |  38 +--
 content/docs/ja/next/client-libraries-go.html      |   8 +-
 .../docs/ja/next/client-libraries-go/index.html    |   8 +-
 content/docs/ja/next/client-libraries-java.html    |   8 +-
 .../docs/ja/next/client-libraries-java/index.html  |   8 +-
 content/docs/ja/next/client-libraries-python.html  |  24 +-
 .../ja/next/client-libraries-python/index.html     |  24 +-
 .../docs/ja/next/client-libraries-websocket.html   |   8 +-
 .../ja/next/client-libraries-websocket/index.html  |   8 +-
 content/docs/ja/next/client-libraries.html         |   8 +-
 content/docs/ja/next/client-libraries/index.html   |   8 +-
 .../ja/next/concepts-architecture-overview.html    |   8 +-
 .../next/concepts-architecture-overview/index.html |   8 +-
 content/docs/ja/next/concepts-architecture.html    |   6 +-
 .../docs/ja/next/concepts-architecture/index.html  |   6 +-
 content/docs/ja/next/concepts-authentication.html  |   8 +-
 .../ja/next/concepts-authentication/index.html     |   8 +-
 content/docs/ja/next/concepts-clients.html         |   8 +-
 content/docs/ja/next/concepts-clients/index.html   |   8 +-
 content/docs/ja/next/concepts-messaging.html       |   8 +-
 content/docs/ja/next/concepts-messaging/index.html |   8 +-
 content/docs/ja/next/concepts-multi-tenancy.html   |   8 +-
 .../docs/ja/next/concepts-multi-tenancy/index.html |   8 +-
 content/docs/ja/next/concepts-overview.html        |   8 +-
 content/docs/ja/next/concepts-overview/index.html  |   8 +-
 content/docs/ja/next/concepts-replication.html     |   8 +-
 .../docs/ja/next/concepts-replication/index.html   |   8 +-
 content/docs/ja/next/concepts-schema-registry.html |   8 +-
 .../ja/next/concepts-schema-registry/index.html    |   8 +-
 content/docs/ja/next/concepts-tiered-storage.html  |   8 +-
 .../ja/next/concepts-tiered-storage/index.html     |   8 +-
 .../docs/ja/next/concepts-topic-compaction.html    |   8 +-
 .../ja/next/concepts-topic-compaction/index.html   |   8 +-
 content/docs/ja/next/cookbooks-compaction.html     |   8 +-
 .../docs/ja/next/cookbooks-compaction/index.html   |   8 +-
 content/docs/ja/next/cookbooks-deduplication.html  |   8 +-
 .../ja/next/cookbooks-deduplication/index.html     |   8 +-
 content/docs/ja/next/cookbooks-encryption.html     |  16 +-
 .../docs/ja/next/cookbooks-encryption/index.html   |  16 +-
 content/docs/ja/next/cookbooks-message-queue.html  |   8 +-
 .../ja/next/cookbooks-message-queue/index.html     |   8 +-
 content/docs/ja/next/cookbooks-non-persistent.html |   8 +-
 .../ja/next/cookbooks-non-persistent/index.html    |   8 +-
 content/docs/ja/next/cookbooks-partitioned.html    |   8 +-
 .../docs/ja/next/cookbooks-partitioned/index.html  |   8 +-
 .../docs/ja/next/cookbooks-retention-expiry.html   |  10 +-
 .../ja/next/cookbooks-retention-expiry/index.html  |  10 +-
 content/docs/ja/next/cookbooks-tiered-storage.html |   8 +-
 .../ja/next/cookbooks-tiered-storage/index.html    |   8 +-
 content/docs/ja/next/deploy-aws.html               |   8 +-
 content/docs/ja/next/deploy-aws/index.html         |   8 +-
 .../ja/next/deploy-bare-metal-multi-cluster.html   |   8 +-
 .../deploy-bare-metal-multi-cluster/index.html     |   8 +-
 content/docs/ja/next/deploy-bare-metal.html        |   9 +-
 content/docs/ja/next/deploy-bare-metal/index.html  |   9 +-
 content/docs/ja/next/deploy-dcos.html              |   8 +-
 content/docs/ja/next/deploy-dcos/index.html        |   8 +-
 content/docs/ja/next/deploy-kubernetes.html        |   8 +-
 content/docs/ja/next/deploy-kubernetes/index.html  |   8 +-
 content/docs/ja/next/deploy-monitoring.html        |   8 +-
 content/docs/ja/next/deploy-monitoring/index.html  |   8 +-
 content/docs/ja/next/develop-binary-protocol.html  |   8 +-
 .../ja/next/develop-binary-protocol/index.html     |   8 +-
 content/docs/ja/next/develop-cpp.html              |   8 +-
 content/docs/ja/next/develop-cpp/index.html        |   8 +-
 content/docs/ja/next/develop-load-manager.html     |   8 +-
 .../docs/ja/next/develop-load-manager/index.html   |   8 +-
 content/docs/ja/next/develop-schema.html           |   8 +-
 content/docs/ja/next/develop-schema/index.html     |   8 +-
 content/docs/ja/next/develop-tools.html            |   8 +-
 content/docs/ja/next/develop-tools/index.html      |   8 +-
 content/docs/ja/next/functions-api.html            |   8 +-
 content/docs/ja/next/functions-api/index.html      |   8 +-
 content/docs/ja/next/functions-deploying.html      |   8 +-
 .../docs/ja/next/functions-deploying/index.html    |   8 +-
 content/docs/ja/next/functions-guarantees.html     |   8 +-
 .../docs/ja/next/functions-guarantees/index.html   |   8 +-
 content/docs/ja/next/functions-metrics.html        |   8 +-
 content/docs/ja/next/functions-metrics/index.html  |   8 +-
 content/docs/ja/next/functions-overview.html       |   8 +-
 content/docs/ja/next/functions-overview/index.html |   8 +-
 content/docs/ja/next/functions-quickstart.html     |   8 +-
 .../docs/ja/next/functions-quickstart/index.html   |   8 +-
 content/docs/ja/next/functions-state.html          |   8 +-
 content/docs/ja/next/functions-state/index.html    |   8 +-
 content/docs/ja/next/io-aerospike.html             |  15 +-
 content/docs/ja/next/io-aerospike/index.html       |  15 +-
 content/docs/ja/next/io-cassandra.html             |   6 +-
 content/docs/ja/next/io-cassandra/index.html       |   6 +-
 content/docs/ja/next/io-connectors.html            |   9 +-
 content/docs/ja/next/io-connectors/index.html      |   9 +-
 content/docs/ja/next/io-develop.html               |   8 +-
 content/docs/ja/next/io-develop/index.html         |   8 +-
 content/docs/ja/next/io-kafka.html                 |   6 +-
 content/docs/ja/next/io-kafka/index.html           |   6 +-
 content/docs/ja/next/io-kinesis.html               |   6 +-
 content/docs/ja/next/io-kinesis/index.html         |   6 +-
 content/docs/ja/next/io-managing.html              |   8 +-
 content/docs/ja/next/io-managing/index.html        |   8 +-
 content/docs/ja/next/io-overview.html              |  11 +-
 content/docs/ja/next/io-overview/index.html        |  11 +-
 content/docs/ja/next/io-quickstart.html            |  11 +-
 content/docs/ja/next/io-quickstart/index.html      |  11 +-
 content/docs/ja/next/io-rabbitmq.html              |   6 +-
 content/docs/ja/next/io-rabbitmq/index.html        |   6 +-
 content/docs/ja/next/io-twitter.html               |   6 +-
 content/docs/ja/next/io-twitter/index.html         |   6 +-
 content/docs/ja/next/pulsar-2.0.html               |   8 +-
 content/docs/ja/next/pulsar-2.0/index.html         |   8 +-
 content/docs/ja/next/pulsar-admin.html             |  15 +-
 content/docs/ja/next/pulsar-admin/index.html       |  15 +-
 content/docs/ja/next/reference-cli-tools.html      |   8 +-
 .../docs/ja/next/reference-cli-tools/index.html    |   8 +-
 content/docs/ja/next/reference-configuration.html  |   8 +-
 .../ja/next/reference-configuration/index.html     |   8 +-
 content/docs/ja/next/reference-terminology.html    |   8 +-
 .../docs/ja/next/reference-terminology/index.html  |   8 +-
 content/docs/ja/next/security-athenz.html          |   8 +-
 content/docs/ja/next/security-athenz/index.html    |   8 +-
 content/docs/ja/next/security-authorization.html   |   8 +-
 .../docs/ja/next/security-authorization/index.html |   8 +-
 content/docs/ja/next/security-encryption.html      |  16 +-
 .../docs/ja/next/security-encryption/index.html    |  16 +-
 content/docs/ja/next/security-extending.html       |  14 +-
 content/docs/ja/next/security-extending/index.html |  14 +-
 content/docs/ja/next/security-overview.html        |   8 +-
 content/docs/ja/next/security-overview/index.html  |   8 +-
 .../docs/ja/next/security-tls-authentication.html  |  10 +-
 .../ja/next/security-tls-authentication/index.html |  10 +-
 content/docs/ja/next/security-tls-transport.html   |  10 +-
 .../docs/ja/next/security-tls-transport/index.html |  10 +-
 .../ja/next/sql-deployment-configurations.html     | 202 ++++++++++++
 .../next/sql-deployment-configurations/index.html  | 202 ++++++++++++
 content/docs/ja/next/sql-getting-started.html      | 216 +++++++++++++
 .../docs/ja/next/sql-getting-started/index.html    | 216 +++++++++++++
 content/docs/ja/next/sql-overview.html             | 109 +++++++
 content/docs/ja/next/sql-overview/index.html       | 109 +++++++
 content/docs/ja/next/standalone-docker.html        |   8 +-
 content/docs/ja/next/standalone-docker/index.html  |   8 +-
 content/docs/ja/next/standalone.html               |  33 +-
 content/docs/ja/next/standalone/index.html         |  33 +-
 content/docs/ja/pulsar-2.0.html                    |   6 +-
 content/docs/ja/pulsar-2.0/index.html              |   6 +-
 content/docs/ja/pulsar-admin.html                  |   6 +-
 content/docs/ja/pulsar-admin/index.html            |   6 +-
 content/docs/ja/reference-cli-tools.html           |   6 +-
 content/docs/ja/reference-cli-tools/index.html     |   6 +-
 content/docs/ja/reference-configuration.html       |   6 +-
 content/docs/ja/reference-configuration/index.html |   6 +-
 content/docs/ja/reference-terminology.html         |   6 +-
 content/docs/ja/reference-terminology/index.html   |   6 +-
 content/docs/ja/security-athenz.html               |   6 +-
 content/docs/ja/security-athenz/index.html         |   6 +-
 content/docs/ja/security-authorization.html        |   6 +-
 content/docs/ja/security-authorization/index.html  |   6 +-
 content/docs/ja/security-encryption.html           |  14 +-
 content/docs/ja/security-encryption/index.html     |  14 +-
 content/docs/ja/security-extending.html            |  10 +-
 content/docs/ja/security-extending/index.html      |  10 +-
 content/docs/ja/security-overview.html             |   6 +-
 content/docs/ja/security-overview/index.html       |   6 +-
 content/docs/ja/security-tls-authentication.html   |   8 +-
 .../docs/ja/security-tls-authentication/index.html |   8 +-
 content/docs/ja/security-tls-transport.html        |   8 +-
 content/docs/ja/security-tls-transport/index.html  |   8 +-
 content/docs/ja/standalone-docker.html             |   6 +-
 content/docs/ja/standalone-docker/index.html       |   6 +-
 content/docs/ja/standalone.html                    |  19 +-
 content/docs/ja/standalone/index.html              |  19 +-
 .../docs/latest/adaptors/PulsarSpark/index.html    |  10 +-
 .../docs/latest/adaptors/PulsarStorm/index.html    |   8 +-
 content/docs/latest/admin-api/overview/index.html  |  18 +-
 content/docs/latest/admin-api/tenants/index.html   |   4 +-
 content/docs/latest/clients/Cpp/index.html         |   8 +-
 content/docs/latest/clients/Java/index.html        |  16 +-
 content/docs/latest/clients/Python/index.html      |  10 +-
 content/docs/latest/clients/WebSocket/index.html   |   8 +-
 content/docs/latest/clients/go/index.html          |   6 +-
 .../docs/latest/cookbooks/Encryption/index.html    |   6 +-
 .../latest/cookbooks/PartitionedTopics/index.html  |  16 +-
 .../latest/cookbooks/RetentionExpiry/index.html    |  16 +-
 .../docs/latest/cookbooks/compaction/index.html    |   8 +-
 .../cookbooks/message-deduplication/index.html     |  12 +-
 .../docs/latest/cookbooks/message-queue/index.html |  16 +-
 .../latest/cookbooks/tiered-storage/index.html     |   6 +-
 .../docs/latest/deployment/Kubernetes/index.html   |   4 +-
 .../docs/latest/deployment/aws-cluster/index.html  |   6 +-
 content/docs/latest/deployment/cluster/index.html  |   6 +-
 content/docs/latest/deployment/instance/index.html |   6 +-
 .../ConceptsAndArchitecture/index.html             |   4 +-
 .../latest/getting-started/LocalCluster/index.html |   4 +-
 .../latest/getting-started/Pulsar-2.0/index.html   |   2 +-
 .../docs/latest/getting-started/docker/index.html  |   4 +-
 .../docs/latest/project/BinaryProtocol/index.html  |   4 +-
 content/docs/latest/project/CompileCpp/index.html  |   8 +-
 .../docs/latest/project/SimulationTools/index.html |   2 +-
 .../docs/latest/project/schema-storage/index.html  |   4 +-
 content/docs/latest/reference/CliTools/index.html  |  22 +-
 .../docs/latest/security/authorization/index.html  |  14 +-
 content/docs/latest/security/encryption/index.html |   6 +-
 .../docs/next/sql-deployment-configurations.html   |  13 +
 .../next/sql-deployment-configurations/index.html  |  13 +
 content/docs/next/sql-getting-started.html         |  13 +
 content/docs/next/sql-getting-started/index.html   |  13 +
 content/docs/next/sql-overview.html                |  13 +
 content/docs/next/sql-overview/index.html          |  13 +
 content/docs/zh-CN/adaptors-kafka.html             |  10 +-
 content/docs/zh-CN/adaptors-kafka/index.html       |  10 +-
 content/docs/zh-CN/adaptors-spark.html             |   8 +-
 content/docs/zh-CN/adaptors-spark/index.html       |   8 +-
 content/docs/zh-CN/adaptors-storm.html             |   8 +-
 content/docs/zh-CN/adaptors-storm/index.html       |   8 +-
 content/docs/zh-CN/admin-api-brokers.html          |   8 +-
 content/docs/zh-CN/admin-api-brokers/index.html    |   8 +-
 content/docs/zh-CN/admin-api-clusters.html         |   8 +-
 content/docs/zh-CN/admin-api-clusters/index.html   |   8 +-
 content/docs/zh-CN/admin-api-namespaces.html       |   8 +-
 content/docs/zh-CN/admin-api-namespaces/index.html |   8 +-
 .../zh-CN/admin-api-non-persistent-topics.html     |   8 +-
 .../admin-api-non-persistent-topics/index.html     |   8 +-
 content/docs/zh-CN/admin-api-overview.html         |  65 ++--
 content/docs/zh-CN/admin-api-overview/index.html   |  65 ++--
 .../docs/zh-CN/admin-api-partitioned-topics.html   |   8 +-
 .../zh-CN/admin-api-partitioned-topics/index.html  |   8 +-
 content/docs/zh-CN/admin-api-permissions.html      |   8 +-
 .../docs/zh-CN/admin-api-permissions/index.html    |   8 +-
 .../docs/zh-CN/admin-api-persistent-topics.html    |   8 +-
 .../zh-CN/admin-api-persistent-topics/index.html   |   8 +-
 content/docs/zh-CN/admin-api-schemas.html          |  10 +-
 content/docs/zh-CN/admin-api-schemas/index.html    |  10 +-
 content/docs/zh-CN/admin-api-tenants.html          |  12 +-
 content/docs/zh-CN/admin-api-tenants/index.html    |  12 +-
 content/docs/zh-CN/administration-dashboard.html   |   8 +-
 .../docs/zh-CN/administration-dashboard/index.html |   8 +-
 content/docs/zh-CN/administration-geo.html         |   8 +-
 content/docs/zh-CN/administration-geo/index.html   |   8 +-
 .../zh-CN/administration-load-distribution.html    |   8 +-
 .../administration-load-distribution/index.html    |   8 +-
 content/docs/zh-CN/administration-proxy.html       |   8 +-
 content/docs/zh-CN/administration-proxy/index.html |   8 +-
 content/docs/zh-CN/administration-stats.html       |   8 +-
 content/docs/zh-CN/administration-stats/index.html |   8 +-
 content/docs/zh-CN/administration-zk-bk.html       |   8 +-
 content/docs/zh-CN/administration-zk-bk/index.html |   8 +-
 content/docs/zh-CN/client-libraries-cpp.html       |  14 +-
 content/docs/zh-CN/client-libraries-cpp/index.html |  14 +-
 content/docs/zh-CN/client-libraries-go.html        |   8 +-
 content/docs/zh-CN/client-libraries-go/index.html  |   8 +-
 content/docs/zh-CN/client-libraries-java.html      | 161 +++++-----
 .../docs/zh-CN/client-libraries-java/index.html    | 161 +++++-----
 content/docs/zh-CN/client-libraries-python.html    |   8 +-
 .../docs/zh-CN/client-libraries-python/index.html  |   8 +-
 content/docs/zh-CN/client-libraries-websocket.html |   8 +-
 .../zh-CN/client-libraries-websocket/index.html    |   8 +-
 content/docs/zh-CN/client-libraries.html           |  54 ++--
 content/docs/zh-CN/client-libraries/index.html     |  54 ++--
 .../docs/zh-CN/concepts-architecture-overview.html |  10 +-
 .../concepts-architecture-overview/index.html      |  10 +-
 content/docs/zh-CN/concepts-architecture.html      |   6 +-
 .../docs/zh-CN/concepts-architecture/index.html    |   6 +-
 content/docs/zh-CN/concepts-authentication.html    |   8 +-
 .../docs/zh-CN/concepts-authentication/index.html  |   8 +-
 content/docs/zh-CN/concepts-clients.html           |  42 +--
 content/docs/zh-CN/concepts-clients/index.html     |  42 +--
 content/docs/zh-CN/concepts-messaging.html         |  18 +-
 content/docs/zh-CN/concepts-messaging/index.html   |  18 +-
 content/docs/zh-CN/concepts-multi-tenancy.html     |  10 +-
 .../docs/zh-CN/concepts-multi-tenancy/index.html   |  10 +-
 content/docs/zh-CN/concepts-overview.html          |  10 +-
 content/docs/zh-CN/concepts-overview/index.html    |  10 +-
 content/docs/zh-CN/concepts-replication.html       |  10 +-
 content/docs/zh-CN/concepts-replication/index.html |  10 +-
 content/docs/zh-CN/concepts-schema-registry.html   |  10 +-
 .../docs/zh-CN/concepts-schema-registry/index.html |  10 +-
 content/docs/zh-CN/concepts-tiered-storage.html    |   8 +-
 .../docs/zh-CN/concepts-tiered-storage/index.html  |   8 +-
 content/docs/zh-CN/concepts-topic-compaction.html  |  10 +-
 .../zh-CN/concepts-topic-compaction/index.html     |  10 +-
 content/docs/zh-CN/cookbooks-compaction.html       |   8 +-
 content/docs/zh-CN/cookbooks-compaction/index.html |   8 +-
 content/docs/zh-CN/cookbooks-deduplication.html    |   8 +-
 .../docs/zh-CN/cookbooks-deduplication/index.html  |   8 +-
 content/docs/zh-CN/cookbooks-encryption.html       |   8 +-
 content/docs/zh-CN/cookbooks-encryption/index.html |   8 +-
 content/docs/zh-CN/cookbooks-message-queue.html    |   8 +-
 .../docs/zh-CN/cookbooks-message-queue/index.html  |   8 +-
 content/docs/zh-CN/cookbooks-non-persistent.html   |   8 +-
 .../docs/zh-CN/cookbooks-non-persistent/index.html |   8 +-
 content/docs/zh-CN/cookbooks-partitioned.html      |   8 +-
 .../docs/zh-CN/cookbooks-partitioned/index.html    |   8 +-
 content/docs/zh-CN/cookbooks-retention-expiry.html |   8 +-
 .../zh-CN/cookbooks-retention-expiry/index.html    |   8 +-
 content/docs/zh-CN/cookbooks-tiered-storage.html   |   8 +-
 .../docs/zh-CN/cookbooks-tiered-storage/index.html |   8 +-
 content/docs/zh-CN/deploy-aws.html                 |   8 +-
 content/docs/zh-CN/deploy-aws/index.html           |   8 +-
 .../zh-CN/deploy-bare-metal-multi-cluster.html     |  10 +-
 .../deploy-bare-metal-multi-cluster/index.html     |  10 +-
 content/docs/zh-CN/deploy-bare-metal.html          |   8 +-
 content/docs/zh-CN/deploy-bare-metal/index.html    |   8 +-
 content/docs/zh-CN/deploy-dcos.html                |   8 +-
 content/docs/zh-CN/deploy-dcos/index.html          |   8 +-
 content/docs/zh-CN/deploy-kubernetes.html          |   8 +-
 content/docs/zh-CN/deploy-kubernetes/index.html    |   8 +-
 content/docs/zh-CN/deploy-monitoring.html          |   8 +-
 content/docs/zh-CN/deploy-monitoring/index.html    |   8 +-
 content/docs/zh-CN/develop-binary-protocol.html    |   8 +-
 .../docs/zh-CN/develop-binary-protocol/index.html  |   8 +-
 content/docs/zh-CN/develop-cpp.html                |   8 +-
 content/docs/zh-CN/develop-cpp/index.html          |   8 +-
 content/docs/zh-CN/develop-load-manager.html       |   8 +-
 content/docs/zh-CN/develop-load-manager/index.html |   8 +-
 content/docs/zh-CN/develop-schema.html             |  46 +--
 content/docs/zh-CN/develop-schema/index.html       |  46 +--
 content/docs/zh-CN/develop-tools.html              |   8 +-
 content/docs/zh-CN/develop-tools/index.html        |   8 +-
 content/docs/zh-CN/functions-api.html              |   8 +-
 content/docs/zh-CN/functions-api/index.html        |   8 +-
 content/docs/zh-CN/functions-deploying.html        |   8 +-
 content/docs/zh-CN/functions-deploying/index.html  |   8 +-
 content/docs/zh-CN/functions-guarantees.html       |   8 +-
 content/docs/zh-CN/functions-guarantees/index.html |   8 +-
 content/docs/zh-CN/functions-metrics.html          |   8 +-
 content/docs/zh-CN/functions-metrics/index.html    |   8 +-
 content/docs/zh-CN/functions-overview.html         |  10 +-
 content/docs/zh-CN/functions-overview/index.html   |  10 +-
 content/docs/zh-CN/functions-quickstart.html       |   8 +-
 content/docs/zh-CN/functions-quickstart/index.html |   8 +-
 content/docs/zh-CN/functions-state.html            |   8 +-
 content/docs/zh-CN/functions-state/index.html      |   8 +-
 content/docs/zh-CN/io-aerospike.html               |   6 +-
 content/docs/zh-CN/io-aerospike/index.html         |   6 +-
 content/docs/zh-CN/io-cassandra.html               |   6 +-
 content/docs/zh-CN/io-cassandra/index.html         |   6 +-
 content/docs/zh-CN/io-connectors.html              |  10 +-
 content/docs/zh-CN/io-connectors/index.html        |  10 +-
 content/docs/zh-CN/io-develop.html                 |   8 +-
 content/docs/zh-CN/io-develop/index.html           |   8 +-
 content/docs/zh-CN/io-kafka.html                   |   6 +-
 content/docs/zh-CN/io-kafka/index.html             |   6 +-
 content/docs/zh-CN/io-kinesis.html                 |   6 +-
 content/docs/zh-CN/io-kinesis/index.html           |   6 +-
 content/docs/zh-CN/io-managing.html                |   8 +-
 content/docs/zh-CN/io-managing/index.html          |   8 +-
 content/docs/zh-CN/io-overview.html                |  10 +-
 content/docs/zh-CN/io-overview/index.html          |  10 +-
 content/docs/zh-CN/io-quickstart.html              |  10 +-
 content/docs/zh-CN/io-quickstart/index.html        |  10 +-
 content/docs/zh-CN/io-rabbitmq.html                |   6 +-
 content/docs/zh-CN/io-rabbitmq/index.html          |   6 +-
 content/docs/zh-CN/io-twitter.html                 |   6 +-
 content/docs/zh-CN/io-twitter/index.html           |   6 +-
 content/docs/zh-CN/next/adaptors-kafka.html        |  10 +-
 content/docs/zh-CN/next/adaptors-kafka/index.html  |  10 +-
 content/docs/zh-CN/next/adaptors-spark.html        |   8 +-
 content/docs/zh-CN/next/adaptors-spark/index.html  |   8 +-
 content/docs/zh-CN/next/adaptors-storm.html        |   8 +-
 content/docs/zh-CN/next/adaptors-storm/index.html  |   8 +-
 content/docs/zh-CN/next/admin-api-brokers.html     |   8 +-
 .../docs/zh-CN/next/admin-api-brokers/index.html   |   8 +-
 content/docs/zh-CN/next/admin-api-clusters.html    |   8 +-
 .../docs/zh-CN/next/admin-api-clusters/index.html  |   8 +-
 content/docs/zh-CN/next/admin-api-namespaces.html  |   8 +-
 .../zh-CN/next/admin-api-namespaces/index.html     |   8 +-
 .../next/admin-api-non-persistent-topics.html      |   8 +-
 .../admin-api-non-persistent-topics/index.html     |   8 +-
 content/docs/zh-CN/next/admin-api-overview.html    |  65 ++--
 .../docs/zh-CN/next/admin-api-overview/index.html  |  65 ++--
 .../zh-CN/next/admin-api-partitioned-topics.html   |   8 +-
 .../next/admin-api-partitioned-topics/index.html   |   8 +-
 content/docs/zh-CN/next/admin-api-permissions.html |   8 +-
 .../zh-CN/next/admin-api-permissions/index.html    |   8 +-
 .../zh-CN/next/admin-api-persistent-topics.html    |   8 +-
 .../next/admin-api-persistent-topics/index.html    |   8 +-
 content/docs/zh-CN/next/admin-api-schemas.html     |  10 +-
 .../docs/zh-CN/next/admin-api-schemas/index.html   |  10 +-
 content/docs/zh-CN/next/admin-api-tenants.html     |  12 +-
 .../docs/zh-CN/next/admin-api-tenants/index.html   |  12 +-
 .../docs/zh-CN/next/administration-dashboard.html  |   8 +-
 .../zh-CN/next/administration-dashboard/index.html |   8 +-
 content/docs/zh-CN/next/administration-geo.html    |   8 +-
 .../docs/zh-CN/next/administration-geo/index.html  |   8 +-
 .../next/administration-load-distribution.html     |   8 +-
 .../administration-load-distribution/index.html    |   8 +-
 content/docs/zh-CN/next/administration-proxy.html  |   8 +-
 .../zh-CN/next/administration-proxy/index.html     |   8 +-
 content/docs/zh-CN/next/administration-stats.html  |   8 +-
 .../zh-CN/next/administration-stats/index.html     |   8 +-
 content/docs/zh-CN/next/administration-zk-bk.html  |   8 +-
 .../zh-CN/next/administration-zk-bk/index.html     |   8 +-
 content/docs/zh-CN/next/client-libraries-cpp.html  |  18 +-
 .../zh-CN/next/client-libraries-cpp/index.html     |  18 +-
 content/docs/zh-CN/next/client-libraries-go.html   |   8 +-
 .../docs/zh-CN/next/client-libraries-go/index.html |   8 +-
 content/docs/zh-CN/next/client-libraries-java.html | 159 +++++-----
 .../zh-CN/next/client-libraries-java/index.html    | 159 +++++-----
 .../docs/zh-CN/next/client-libraries-python.html   |   8 +-
 .../zh-CN/next/client-libraries-python/index.html  |   8 +-
 .../zh-CN/next/client-libraries-websocket.html     |   8 +-
 .../next/client-libraries-websocket/index.html     |   8 +-
 content/docs/zh-CN/next/client-libraries.html      |  56 ++--
 .../docs/zh-CN/next/client-libraries/index.html    |  56 ++--
 .../zh-CN/next/concepts-architecture-overview.html |   8 +-
 .../next/concepts-architecture-overview/index.html |   8 +-
 content/docs/zh-CN/next/concepts-architecture.html |   6 +-
 .../zh-CN/next/concepts-architecture/index.html    |   6 +-
 .../docs/zh-CN/next/concepts-authentication.html   |   8 +-
 .../zh-CN/next/concepts-authentication/index.html  |   8 +-
 content/docs/zh-CN/next/concepts-clients.html      |  40 +--
 .../docs/zh-CN/next/concepts-clients/index.html    |  40 +--
 content/docs/zh-CN/next/concepts-messaging.html    |  16 +-
 .../docs/zh-CN/next/concepts-messaging/index.html  |  16 +-
 .../docs/zh-CN/next/concepts-multi-tenancy.html    |   8 +-
 .../zh-CN/next/concepts-multi-tenancy/index.html   |   8 +-
 content/docs/zh-CN/next/concepts-overview.html     |   8 +-
 .../docs/zh-CN/next/concepts-overview/index.html   |   8 +-
 content/docs/zh-CN/next/concepts-replication.html  |  10 +-
 .../zh-CN/next/concepts-replication/index.html     |  10 +-
 .../docs/zh-CN/next/concepts-schema-registry.html  |   8 +-
 .../zh-CN/next/concepts-schema-registry/index.html |   8 +-
 .../docs/zh-CN/next/concepts-tiered-storage.html   |   8 +-
 .../zh-CN/next/concepts-tiered-storage/index.html  |   8 +-
 .../docs/zh-CN/next/concepts-topic-compaction.html |   8 +-
 .../next/concepts-topic-compaction/index.html      |   8 +-
 content/docs/zh-CN/next/cookbooks-compaction.html  |   8 +-
 .../zh-CN/next/cookbooks-compaction/index.html     |   8 +-
 .../docs/zh-CN/next/cookbooks-deduplication.html   |   8 +-
 .../zh-CN/next/cookbooks-deduplication/index.html  |   8 +-
 content/docs/zh-CN/next/cookbooks-encryption.html  |   8 +-
 .../zh-CN/next/cookbooks-encryption/index.html     |   8 +-
 .../docs/zh-CN/next/cookbooks-message-queue.html   |   8 +-
 .../zh-CN/next/cookbooks-message-queue/index.html  |   8 +-
 .../docs/zh-CN/next/cookbooks-non-persistent.html  |   8 +-
 .../zh-CN/next/cookbooks-non-persistent/index.html |   8 +-
 content/docs/zh-CN/next/cookbooks-partitioned.html |   8 +-
 .../zh-CN/next/cookbooks-partitioned/index.html    |   8 +-
 .../zh-CN/next/cookbooks-retention-expiry.html     |   8 +-
 .../next/cookbooks-retention-expiry/index.html     |   8 +-
 .../docs/zh-CN/next/cookbooks-tiered-storage.html  |   8 +-
 .../zh-CN/next/cookbooks-tiered-storage/index.html |   8 +-
 content/docs/zh-CN/next/deploy-aws.html            |   8 +-
 content/docs/zh-CN/next/deploy-aws/index.html      |   8 +-
 .../next/deploy-bare-metal-multi-cluster.html      |  10 +-
 .../deploy-bare-metal-multi-cluster/index.html     |  10 +-
 content/docs/zh-CN/next/deploy-bare-metal.html     |   9 +-
 .../docs/zh-CN/next/deploy-bare-metal/index.html   |   9 +-
 content/docs/zh-CN/next/deploy-dcos.html           |   8 +-
 content/docs/zh-CN/next/deploy-dcos/index.html     |   8 +-
 content/docs/zh-CN/next/deploy-kubernetes.html     |   8 +-
 .../docs/zh-CN/next/deploy-kubernetes/index.html   |   8 +-
 content/docs/zh-CN/next/deploy-monitoring.html     |   8 +-
 .../docs/zh-CN/next/deploy-monitoring/index.html   |   8 +-
 .../docs/zh-CN/next/develop-binary-protocol.html   |   8 +-
 .../zh-CN/next/develop-binary-protocol/index.html  |   8 +-
 content/docs/zh-CN/next/develop-cpp.html           |   8 +-
 content/docs/zh-CN/next/develop-cpp/index.html     |   8 +-
 content/docs/zh-CN/next/develop-load-manager.html  |   8 +-
 .../zh-CN/next/develop-load-manager/index.html     |   8 +-
 content/docs/zh-CN/next/develop-schema.html        |  46 +--
 content/docs/zh-CN/next/develop-schema/index.html  |  46 +--
 content/docs/zh-CN/next/develop-tools.html         |   8 +-
 content/docs/zh-CN/next/develop-tools/index.html   |   8 +-
 content/docs/zh-CN/next/functions-api.html         |   8 +-
 content/docs/zh-CN/next/functions-api/index.html   |   8 +-
 content/docs/zh-CN/next/functions-deploying.html   |   8 +-
 .../docs/zh-CN/next/functions-deploying/index.html |   8 +-
 content/docs/zh-CN/next/functions-guarantees.html  |   8 +-
 .../zh-CN/next/functions-guarantees/index.html     |   8 +-
 content/docs/zh-CN/next/functions-metrics.html     |   8 +-
 .../docs/zh-CN/next/functions-metrics/index.html   |   8 +-
 content/docs/zh-CN/next/functions-overview.html    |  10 +-
 .../docs/zh-CN/next/functions-overview/index.html  |  10 +-
 content/docs/zh-CN/next/functions-quickstart.html  |   8 +-
 .../zh-CN/next/functions-quickstart/index.html     |   8 +-
 content/docs/zh-CN/next/functions-state.html       |   8 +-
 content/docs/zh-CN/next/functions-state/index.html |   8 +-
 content/docs/zh-CN/next/io-aerospike.html          |  15 +-
 content/docs/zh-CN/next/io-aerospike/index.html    |  15 +-
 content/docs/zh-CN/next/io-cassandra.html          |   6 +-
 content/docs/zh-CN/next/io-cassandra/index.html    |   6 +-
 content/docs/zh-CN/next/io-connectors.html         |   9 +-
 content/docs/zh-CN/next/io-connectors/index.html   |   9 +-
 content/docs/zh-CN/next/io-develop.html            |   8 +-
 content/docs/zh-CN/next/io-develop/index.html      |   8 +-
 content/docs/zh-CN/next/io-kafka.html              |   8 +-
 content/docs/zh-CN/next/io-kafka/index.html        |   8 +-
 content/docs/zh-CN/next/io-kinesis.html            |   6 +-
 content/docs/zh-CN/next/io-kinesis/index.html      |   6 +-
 content/docs/zh-CN/next/io-managing.html           |   8 +-
 content/docs/zh-CN/next/io-managing/index.html     |   8 +-
 content/docs/zh-CN/next/io-overview.html           |  11 +-
 content/docs/zh-CN/next/io-overview/index.html     |  11 +-
 content/docs/zh-CN/next/io-quickstart.html         |  11 +-
 content/docs/zh-CN/next/io-quickstart/index.html   |  11 +-
 content/docs/zh-CN/next/io-rabbitmq.html           |   6 +-
 content/docs/zh-CN/next/io-rabbitmq/index.html     |   6 +-
 content/docs/zh-CN/next/io-twitter.html            |   6 +-
 content/docs/zh-CN/next/io-twitter/index.html      |   6 +-
 content/docs/zh-CN/next/pulsar-2.0.html            |   8 +-
 content/docs/zh-CN/next/pulsar-2.0/index.html      |   8 +-
 content/docs/zh-CN/next/pulsar-admin.html          |  15 +-
 content/docs/zh-CN/next/pulsar-admin/index.html    |  15 +-
 content/docs/zh-CN/next/reference-cli-tools.html   |   8 +-
 .../docs/zh-CN/next/reference-cli-tools/index.html |   8 +-
 .../docs/zh-CN/next/reference-configuration.html   |  18 +-
 .../zh-CN/next/reference-configuration/index.html  |  18 +-
 content/docs/zh-CN/next/reference-terminology.html |   8 +-
 .../zh-CN/next/reference-terminology/index.html    |   8 +-
 content/docs/zh-CN/next/security-athenz.html       |  10 +-
 content/docs/zh-CN/next/security-athenz/index.html |  10 +-
 .../docs/zh-CN/next/security-authorization.html    |   8 +-
 .../zh-CN/next/security-authorization/index.html   |   8 +-
 content/docs/zh-CN/next/security-encryption.html   |   8 +-
 .../docs/zh-CN/next/security-encryption/index.html |   8 +-
 content/docs/zh-CN/next/security-extending.html    |   8 +-
 .../docs/zh-CN/next/security-extending/index.html  |   8 +-
 content/docs/zh-CN/next/security-overview.html     |   8 +-
 .../docs/zh-CN/next/security-overview/index.html   |   8 +-
 .../zh-CN/next/security-tls-authentication.html    |  10 +-
 .../next/security-tls-authentication/index.html    |  10 +-
 .../docs/zh-CN/next/security-tls-transport.html    |  10 +-
 .../zh-CN/next/security-tls-transport/index.html   |  10 +-
 .../zh-CN/next/sql-deployment-configurations.html  | 202 ++++++++++++
 .../next/sql-deployment-configurations/index.html  | 202 ++++++++++++
 content/docs/zh-CN/next/sql-getting-started.html   | 216 +++++++++++++
 .../docs/zh-CN/next/sql-getting-started/index.html | 216 +++++++++++++
 content/docs/zh-CN/next/sql-overview.html          | 109 +++++++
 content/docs/zh-CN/next/sql-overview/index.html    | 109 +++++++
 content/docs/zh-CN/next/standalone-docker.html     |  42 +--
 .../docs/zh-CN/next/standalone-docker/index.html   |  42 +--
 content/docs/zh-CN/next/standalone.html            |  39 ++-
 content/docs/zh-CN/next/standalone/index.html      |  39 ++-
 content/docs/zh-CN/pulsar-2.0.html                 |   8 +-
 content/docs/zh-CN/pulsar-2.0/index.html           |   8 +-
 content/docs/zh-CN/pulsar-admin.html               |   8 +-
 content/docs/zh-CN/pulsar-admin/index.html         |   8 +-
 content/docs/zh-CN/reference-cli-tools.html        |   8 +-
 content/docs/zh-CN/reference-cli-tools/index.html  |   8 +-
 content/docs/zh-CN/reference-configuration.html    |  18 +-
 .../docs/zh-CN/reference-configuration/index.html  |  18 +-
 content/docs/zh-CN/reference-terminology.html      |  10 +-
 .../docs/zh-CN/reference-terminology/index.html    |  10 +-
 content/docs/zh-CN/security-athenz.html            |  10 +-
 content/docs/zh-CN/security-athenz/index.html      |  10 +-
 content/docs/zh-CN/security-authorization.html     |   8 +-
 .../docs/zh-CN/security-authorization/index.html   |   8 +-
 content/docs/zh-CN/security-encryption.html        |   8 +-
 content/docs/zh-CN/security-encryption/index.html  |   8 +-
 content/docs/zh-CN/security-extending.html         |   8 +-
 content/docs/zh-CN/security-extending/index.html   |   8 +-
 content/docs/zh-CN/security-overview.html          |  10 +-
 content/docs/zh-CN/security-overview/index.html    |  10 +-
 .../docs/zh-CN/security-tls-authentication.html    |  18 +-
 .../zh-CN/security-tls-authentication/index.html   |  18 +-
 content/docs/zh-CN/security-tls-transport.html     |  18 +-
 .../docs/zh-CN/security-tls-transport/index.html   |  18 +-
 content/docs/zh-CN/standalone-docker.html          |  42 +--
 content/docs/zh-CN/standalone-docker/index.html    |  42 +--
 content/docs/zh-CN/standalone.html                 |  29 +-
 content/docs/zh-CN/standalone/index.html           |  29 +-
 content/download.html                              |   6 +-
 content/download/index.html                        |   6 +-
 content/en/admin-rest-api.html                     |   2 +-
 content/en/admin-rest-api/index.html               |   2 +-
 content/en/contact.html                            |   2 +-
 content/en/contact/index.html                      |   2 +-
 content/en/contributing.html                       |  19 +-
 content/en/contributing/index.html                 |  19 +-
 content/en/download.html                           |   6 +-
 content/en/download/index.html                     |   6 +-
 content/en/events.html                             |   2 +-
 content/en/events/index.html                       |   2 +-
 content/en/index.html                              |   2 +-
 content/en/release-notes.html                      |   2 +-
 content/en/release-notes/index.html                |   2 +-
 content/en/resources.html                          |   4 +-
 content/en/resources/index.html                    |   4 +-
 content/en/team.html                               |   2 +-
 content/en/team/index.html                         |   2 +-
 content/en/versions.html                           |   2 +-
 content/en/versions/index.html                     |   2 +-
 content/events.html                                |   2 +-
 content/events/index.html                          |   2 +-
 content/fr/admin-rest-api.html                     |   2 +-
 content/fr/admin-rest-api/index.html               |   2 +-
 content/fr/contact.html                            |   2 +-
 content/fr/contact/index.html                      |   2 +-
 content/fr/contributing.html                       |  19 +-
 content/fr/contributing/index.html                 |  19 +-
 content/fr/download.html                           |   6 +-
 content/fr/download/index.html                     |   6 +-
 content/fr/events.html                             |   2 +-
 content/fr/events/index.html                       |   2 +-
 content/fr/index.html                              |   2 +-
 content/fr/release-notes.html                      |   2 +-
 content/fr/release-notes/index.html                |   2 +-
 content/fr/resources.html                          |   4 +-
 content/fr/resources/index.html                    |   4 +-
 content/fr/team.html                               |   2 +-
 content/fr/team/index.html                         |   2 +-
 content/fr/versions.html                           |   2 +-
 content/fr/versions/index.html                     |   2 +-
 content/index.html                                 |   5 +-
 content/ja/adaptors/PulsarSpark/index.html         |   8 +-
 content/ja/adaptors/PulsarStorm/index.html         |   6 +-
 content/ja/admin-rest-api.html                     |   2 +-
 content/ja/admin-rest-api/index.html               |   2 +-
 content/ja/admin/AdminInterface/index.html         |  12 +-
 content/ja/admin/Authz/index.html                  |  12 +-
 content/ja/admin/ClustersBrokers/index.html        |   6 +-
 content/ja/admin/PropertiesNamespaces/index.html   |   6 +-
 content/ja/advanced/PartitionedTopics/index.html   |  12 +-
 content/ja/advanced/RetentionExpiry/index.html     |  12 +-
 content/ja/clients/Cpp/index.html                  |   6 +-
 content/ja/clients/Java/index.html                 |   8 +-
 content/ja/clients/Python/index.html               |   8 +-
 content/ja/clients/WebSocket/index.html            |   8 +-
 content/ja/contact.html                            |   2 +-
 content/ja/contact/index.html                      |   2 +-
 content/ja/contributing.html                       |  19 +-
 content/ja/contributing/index.html                 |  19 +-
 content/ja/deployment/InstanceSetup/index.html     |   6 +-
 content/ja/deployment/Kubernetes/index.html        |   4 +-
 content/ja/download.html                           |   6 +-
 content/ja/download/index.html                     |   6 +-
 content/ja/events.html                             |   2 +-
 content/ja/events/index.html                       |   2 +-
 .../ConceptsAndArchitecture/index.html             |   2 +-
 content/ja/getting-started/LocalCluster/index.html |   4 +-
 content/ja/index.html                              |   2 +-
 content/ja/project/BinaryProtocol/index.html       |   4 +-
 content/ja/project/SimulationTools/index.html      |   2 +-
 content/ja/reference/CliTools/index.html           |  18 +-
 content/ja/release-notes.html                      |   2 +-
 content/ja/release-notes/index.html                |   2 +-
 content/ja/resources.html                          |   4 +-
 content/ja/resources/index.html                    |   4 +-
 content/ja/team.html                               |   2 +-
 content/ja/team/index.html                         |   2 +-
 content/ja/versions.html                           |   2 +-
 content/ja/versions/index.html                     |   2 +-
 content/release-notes.html                         |   2 +-
 content/release-notes/index.html                   |   2 +-
 content/resources.html                             |   4 +-
 content/resources/index.html                       |   4 +-
 content/sitemap.xml                                |   4 +
 content/swagger/swagger.json                       |  54 ++--
 content/team.html                                  |   2 +-
 content/team/index.html                            |   2 +-
 content/versions.html                              |   2 +-
 content/versions/index.html                        |   2 +-
 content/zh-CN/admin-rest-api.html                  |   2 +-
 content/zh-CN/admin-rest-api/index.html            |   2 +-
 content/zh-CN/contact.html                         |   4 +-
 content/zh-CN/contact/index.html                   |   4 +-
 content/zh-CN/contributing.html                    |  19 +-
 content/zh-CN/contributing/index.html              |  19 +-
 content/zh-CN/download.html                        |   6 +-
 content/zh-CN/download/index.html                  |   6 +-
 content/zh-CN/events.html                          |   2 +-
 content/zh-CN/events/index.html                    |   2 +-
 content/zh-CN/index.html                           |   2 +-
 content/zh-CN/release-notes.html                   |   2 +-
 content/zh-CN/release-notes/index.html             |   2 +-
 content/zh-CN/resources.html                       |   4 +-
 content/zh-CN/resources/index.html                 |   4 +-
 content/zh-CN/team.html                            |   4 +-
 content/zh-CN/team/index.html                      |   4 +-
 content/zh-CN/versions.html                        |   2 +-
 content/zh-CN/versions/index.html                  |   2 +-
 1602 files changed, 12423 insertions(+), 6907 deletions(-)

diff --git a/content/admin-rest-api.html b/content/admin-rest-api.html
index 6a9954c..7ec293b 100644
--- a/content/admin-rest-api.html
+++ b/content/admin-rest-api.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/en [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/en [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
diff --git a/content/admin-rest-api/index.html b/content/admin-rest-api/index.html
index 6a9954c..7ec293b 100644
--- a/content/admin-rest-api/index.html
+++ b/content/admin-rest-api/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/en [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/en [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
diff --git a/content/api/admin/index-all.html b/content/api/admin/index-all.html
index 9c80959..d40a66d 100644
--- a/content/api/admin/index-all.html
+++ b/content/api/admin/index-all.html
@@ -841,6 +841,10 @@
 <dd>
 <div class="block">Gets the current status of a function.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Functions.html#getFunctionStatus-java.lang.String-java.lang.String-java.lang.String-int-">getFunctionStatus(String, String, String, int)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Functions.html" title="interface in org.apache.pulsar.client.admin">Functions</a></dt>
+<dd>
+<div class="block">Gets the current status of a function instance.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/PulsarAdminException.html#getHttpError--">getHttpError()</a></span> - Method in exception org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Brokers.html#getInternalConfigurationData--">getInternalConfigurationData()</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Brokers.html" title="interface in org.apache.pulsar.client.admin">Brokers</a></dt>
diff --git a/content/api/admin/org/apache/pulsar/client/admin/Functions.html b/content/api/admin/org/apache/pulsar/client/admin/Functions.html
index 8d9f973..52295d3 100644
--- a/content/api/admin/org/apache/pulsar/client/admin/Functions.html
+++ b/content/api/admin/org/apache/pulsar/client/admin/Functions.html
@@ -17,7 +17,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -179,18 +179,27 @@ var activeTableTab = "activeTableTab";
 </td>
 </tr>
 <tr id="i8" class="altColor">
+<td class="colFirst"><code>FunctionStatus</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#getFunctionStatus-java.lang.String-java.lang.String-java.lang.String-int-">getFunctionStatus</a></span>(String&nbsp;tenant,
+                 String&nbsp;namespace,
+                 String&nbsp;function,
+                 int&nbsp;id)</code>
+<div class="block">Gets the current status of a function instance.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>Set&lt;String&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#getSinks--">getSinks</a></span>()</code>
 <div class="block">Fetches a list of supported Pulsar IO sinks currently running in cluster mode</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>Set&lt;String&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#getSources--">getSources</a></span>()</code>
 <div class="block">Fetches a list of supported Pulsar IO sources currently running in cluster mode</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#restartFunction-java.lang.String-java.lang.String-java.lang.String-">restartFunction</a></span>(String&nbsp;tenant,
                String&nbsp;namespace,
@@ -198,7 +207,7 @@ var activeTableTab = "activeTableTab";
 <div class="block">Restart all function instances</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#restartFunction-java.lang.String-java.lang.String-java.lang.String-int-">restartFunction</a></span>(String&nbsp;tenant,
                String&nbsp;namespace,
@@ -207,7 +216,7 @@ var activeTableTab = "activeTableTab";
 <div class="block">Restart function instance</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#stopFunction-java.lang.String-java.lang.String-java.lang.String-">stopFunction</a></span>(String&nbsp;tenant,
             String&nbsp;namespace,
@@ -215,7 +224,7 @@ var activeTableTab = "activeTableTab";
 <div class="block">Stop all function instances</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#stopFunction-java.lang.String-java.lang.String-java.lang.String-int-">stopFunction</a></span>(String&nbsp;tenant,
             String&nbsp;namespace,
@@ -224,7 +233,7 @@ var activeTableTab = "activeTableTab";
 <div class="block">Stop function instance</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>String</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#triggerFunction-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">triggerFunction</a></span>(String&nbsp;tenant,
                String&nbsp;namespace,
@@ -235,21 +244,21 @@ var activeTableTab = "activeTableTab";
 <div class="block">Triggers the function by writing to the input topic.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#updateFunction-FunctionDetails-java.lang.String-">updateFunction</a></span>(FunctionDetails&nbsp;functionDetails,
               String&nbsp;fileName)</code>
 <div class="block">Update the configuration for a function.</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#updateFunctionWithUrl-FunctionDetails-java.lang.String-">updateFunctionWithUrl</a></span>(FunctionDetails&nbsp;functionDetails,
                      String&nbsp;pkgUrl)</code>
 <div class="block">Update the configuration for a function.</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#uploadFunction-java.lang.String-java.lang.String-">uploadFunction</a></span>(String&nbsp;sourceFile,
               String&nbsp;path)</code>
@@ -464,6 +473,30 @@ var activeTableTab = "activeTableTab";
 </dl>
 </li>
 </ul>
+<a name="getFunctionStatus-java.lang.String-java.lang.String-java.lang.String-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFunctionStatus</h4>
+<pre>FunctionStatus&nbsp;getFunctionStatus(String&nbsp;tenant,
+                                 String&nbsp;namespace,
+                                 String&nbsp;function,
+                                 int&nbsp;id)
+                          throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Gets the current status of a function instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>function</code> - Function name</dd>
+<dd><code>id</code> - Function instance-id</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="restartFunction-java.lang.String-java.lang.String-java.lang.String-int-">
 <!--   -->
 </a>
diff --git a/content/api/client/allclasses-frame.html b/content/api/client/allclasses-frame.html
index d9eebfc..dee5dcd 100644
--- a/content/api/client/allclasses-frame.html
+++ b/content/api/client/allclasses-frame.html
@@ -23,6 +23,7 @@
 <li><a href="org/apache/pulsar/client/api/ConsumerConfiguration.html" title="class in org.apache.pulsar.client.api" target="classFrame">ConsumerConfiguration</a></li>
 <li><a href="org/apache/pulsar/client/api/ConsumerCryptoFailureAction.html" title="enum in org.apache.pulsar.client.api" target="classFrame">ConsumerCryptoFailureAction</a></li>
 <li><a href="org/apache/pulsar/client/api/ConsumerEventListener.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">ConsumerEventListener</span></a></li>
+<li><a href="org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">ConsumerInterceptor</span></a></li>
 <li><a href="org/apache/pulsar/client/api/ConsumerStats.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">ConsumerStats</span></a></li>
 <li><a href="org/apache/pulsar/client/api/CryptoKeyReader.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">CryptoKeyReader</span></a></li>
 <li><a href="org/apache/pulsar/client/api/url/DataURLStreamHandler.html" title="class in org.apache.pulsar.client.api.url" target="classFrame">DataURLStreamHandler</a></li>
@@ -41,6 +42,7 @@
 <li><a href="org/apache/pulsar/client/api/ProducerConfiguration.HashingScheme.html" title="enum in org.apache.pulsar.client.api" target="classFrame">ProducerConfiguration.HashingScheme</a></li>
 <li><a href="org/apache/pulsar/client/api/ProducerConfiguration.MessageRoutingMode.html" title="enum in org.apache.pulsar.client.api" target="classFrame">ProducerConfiguration.MessageRoutingMode</a></li>
 <li><a href="org/apache/pulsar/client/api/ProducerCryptoFailureAction.html" title="enum in org.apache.pulsar.client.api" target="classFrame">ProducerCryptoFailureAction</a></li>
+<li><a href="org/apache/pulsar/client/api/ProducerInterceptor.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">ProducerInterceptor</span></a></li>
 <li><a href="org/apache/pulsar/client/api/ProducerStats.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">ProducerStats</span></a></li>
 <li><a href="org/apache/pulsar/client/api/PulsarClient.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">PulsarClient</span></a></li>
 <li><a href="org/apache/pulsar/client/api/PulsarClientException.html" title="class in org.apache.pulsar.client.api" target="classFrame">PulsarClientException</a></li>
diff --git a/content/api/client/allclasses-noframe.html b/content/api/client/allclasses-noframe.html
index d612bdc..4154d55 100644
--- a/content/api/client/allclasses-noframe.html
+++ b/content/api/client/allclasses-noframe.html
@@ -23,6 +23,7 @@
 <li><a href="org/apache/pulsar/client/api/ConsumerConfiguration.html" title="class in org.apache.pulsar.client.api">ConsumerConfiguration</a></li>
 <li><a href="org/apache/pulsar/client/api/ConsumerCryptoFailureAction.html" title="enum in org.apache.pulsar.client.api">ConsumerCryptoFailureAction</a></li>
 <li><a href="org/apache/pulsar/client/api/ConsumerEventListener.html" title="interface in org.apache.pulsar.client.api"><span class="interfaceName">ConsumerEventListener</span></a></li>
+<li><a href="org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="interfaceName">ConsumerInterceptor</span></a></li>
 <li><a href="org/apache/pulsar/client/api/ConsumerStats.html" title="interface in org.apache.pulsar.client.api"><span class="interfaceName">ConsumerStats</span></a></li>
 <li><a href="org/apache/pulsar/client/api/CryptoKeyReader.html" title="interface in org.apache.pulsar.client.api"><span class="interfaceName">CryptoKeyReader</span></a></li>
 <li><a href="org/apache/pulsar/client/api/url/DataURLStreamHandler.html" title="class in org.apache.pulsar.client.api.url">DataURLStreamHandler</a></li>
@@ -41,6 +42,7 @@
 <li><a href="org/apache/pulsar/client/api/ProducerConfiguration.HashingScheme.html" title="enum in org.apache.pulsar.client.api">ProducerConfiguration.HashingScheme</a></li>
 <li><a href="org/apache/pulsar/client/api/ProducerConfiguration.MessageRoutingMode.html" title="enum in org.apache.pulsar.client.api">ProducerConfiguration.MessageRoutingMode</a></li>
 <li><a href="org/apache/pulsar/client/api/ProducerCryptoFailureAction.html" title="enum in org.apache.pulsar.client.api">ProducerCryptoFailureAction</a></li>
+<li><a href="org/apache/pulsar/client/api/ProducerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="interfaceName">ProducerInterceptor</span></a></li>
 <li><a href="org/apache/pulsar/client/api/ProducerStats.html" title="interface in org.apache.pulsar.client.api"><span class="interfaceName">ProducerStats</span></a></li>
 <li><a href="org/apache/pulsar/client/api/PulsarClient.html" title="interface in org.apache.pulsar.client.api"><span class="interfaceName">PulsarClient</span></a></li>
 <li><a href="org/apache/pulsar/client/api/PulsarClientException.html" title="class in org.apache.pulsar.client.api">PulsarClientException</a></li>
diff --git a/content/api/client/index-all.html b/content/api/client/index-all.html
index e0ec640..2f68dc9 100644
--- a/content/api/client/index-all.html
+++ b/content/api/client/index-all.html
@@ -182,6 +182,18 @@
 <dd>
 <div class="block">Notified when the consumer group is changed, and the consumer is still inactive or becomes inactive.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ConsumerInterceptor.html#beforeConsume-org.apache.pulsar.client.api.Consumer-org.apache.pulsar.client.api.Message-">beforeConsume(Consumer&lt;T&gt;, Message&lt;T&gt;)</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api">ConsumerInterceptor</a></dt>
+<dd>
+<div class="block">This is called just before the message is returned by
+ <a href="org/apache/pulsar/client/api/Consumer.html#receive--"><code>Consumer.receive()</code></a>, <a href="org/apache/pulsar/client/api/MessageListener.html#received-org.apache.pulsar.client.api.Consumer-org.apache.pulsar.client.api.Message-"><code>MessageListener.received(Consumer,
+ Message)</code></a> or the <code>CompletableFuture</code> returned by
+ <a href="org/apache/pulsar/client/api/Consumer.html#receiveAsync--"><code>Consumer.receiveAsync()</code></a> completes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ProducerInterceptor.html#beforeSend-org.apache.pulsar.client.api.Producer-org.apache.pulsar.client.api.Message-">beforeSend(Producer&lt;T&gt;, Message&lt;T&gt;)</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ProducerInterceptor.html" title="interface in org.apache.pulsar.client.api">ProducerInterceptor</a></dt>
+<dd>
+<div class="block">This is called from <a href="org/apache/pulsar/client/api/Producer.html#send-T-"><code>Producer.send(Object)</code></a> and <a href="org/apache/pulsar/client/api/Producer.html#sendAsync-T-"><code>Producer.sendAsync(Object)</code></a> methods, before
+ send the message to the brokers.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ProducerBuilder.html#blockIfQueueFull-boolean-">blockIfQueueFull(boolean)</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a></dt>
 <dd>
 <div class="block">Set whether the <a href="org/apache/pulsar/client/api/Producer.html#send-T-"><code>Producer.send(T)</code></a> and <a href="org/apache/pulsar/client/api/Producer.html#sendAsync-T-"><code>Producer.sendAsync(T)</code></a> operations should block when the outgoing
@@ -254,10 +266,18 @@
 <dd>
 <div class="block">Close the consumer and stop the broker to push more messages.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ConsumerInterceptor.html#close--">close()</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api">ConsumerInterceptor</a></dt>
+<dd>
+<div class="block">Close the interceptor.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/Producer.html#close--">close()</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/Producer.html" title="interface in org.apache.pulsar.client.api">Producer</a></dt>
 <dd>
 <div class="block">Close the producer and releases resources allocated.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ProducerInterceptor.html#close--">close()</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ProducerInterceptor.html" title="interface in org.apache.pulsar.client.api">ProducerInterceptor</a></dt>
+<dd>
+<div class="block">Close the interceptor.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/PulsarClient.html#close--">close()</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/PulsarClient.html" title="interface in org.apache.pulsar.client.api">PulsarClient</a></dt>
 <dd>
 <div class="block">Close the PulsarClient and release all the resources.</div>
@@ -336,6 +356,11 @@
 <dd>
 <div class="block">Listener on the consumer state changes.</div>
 </dd>
+<dt><a href="org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">ConsumerInterceptor</span></a>&lt;<a href="org/apache/pulsar/client/api/ConsumerInterceptor.html" title="type parameter in ConsumerInterceptor">T</a>&gt; - Interface in <a href="org/apache/pulsar/client/api/package-summary.html">org.apache.pulsar.client.api</a></dt>
+<dd>
+<div class="block">A plugin interface that allows you to intercept (and possibly mutate)
+ messages received by the consumer.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ConsumerBuilder.html#consumerName-java.lang.String-">consumerName(String)</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a></dt>
 <dd>
 <div class="block">Set the consumer name.</div>
@@ -592,6 +617,10 @@
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 &nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/Consumer.html#getConsumerName--">getConsumerName()</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/Consumer.html" title="interface in org.apache.pulsar.client.api">Consumer</a></dt>
+<dd>
+<div class="block">Get the name of consumer.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ConsumerConfiguration.html#getConsumerName--">getConsumerName()</a></span> - Method in class org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ConsumerConfiguration.html" title="class in org.apache.pulsar.client.api">ConsumerConfiguration</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
@@ -975,6 +1004,14 @@
 <dd>
 <div class="block">Set the baseline for the sequence ids for messages published by the producer.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ConsumerBuilder.html#intercept-org.apache.pulsar.client.api.ConsumerInterceptor...-">intercept(ConsumerInterceptor&lt;T&gt;...)</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a></dt>
+<dd>
+<div class="block">Intercept <a href="org/apache/pulsar/client/api/Consumer.html" title="interface in org.apache.pulsar.client.api"><code>Consumer</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ProducerBuilder.html#intercept-org.apache.pulsar.client.api.ProducerInterceptor...-">intercept(ProducerInterceptor&lt;T&gt;...)</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a></dt>
+<dd>
+<div class="block">Intercept <a href="org/apache/pulsar/client/api/Producer.html" title="interface in org.apache.pulsar.client.api"><code>Producer</code></a>.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/PulsarClientException.InvalidConfigurationException.html#InvalidConfigurationException-java.lang.String-">InvalidConfigurationException(String)</a></span> - Constructor for exception org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/PulsarClientException.InvalidConfigurationException.html" title="class in org.apache.pulsar.client.api">PulsarClientException.InvalidConfigurationException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/PulsarClientException.InvalidConfigurationException.html#InvalidConfigurationException-java.lang.Throwable-">InvalidConfigurationException(Throwable)</a></span> - Constructor for exception org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/PulsarClientException.InvalidConfigurationException.html" title="class in org.apache.pulsar.client.api">PulsarClientException.InvalidConfigurationException</a></dt>
@@ -1186,6 +1223,19 @@
 </a>
 <h2 class="title">O</h2>
 <dl>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ConsumerInterceptor.html#onAcknowledge-org.apache.pulsar.client.api.Consumer-org.apache.pulsar.client.api.MessageId-java.lang.Throwable-">onAcknowledge(Consumer&lt;T&gt;, MessageId, Throwable)</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api">ConsumerInterceptor</a></dt>
+<dd>
+<div class="block">This is called consumer sends the acknowledgment to the broker.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ConsumerInterceptor.html#onAcknowledgeCumulative-org.apache.pulsar.client.api.Consumer-org.apache.pulsar.client.api.MessageId-java.lang.Throwable-">onAcknowledgeCumulative(Consumer&lt;T&gt;, MessageId, Throwable)</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api">ConsumerInterceptor</a></dt>
+<dd>
+<div class="block">This is called consumer send the cumulative acknowledgment to the broker.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ProducerInterceptor.html#onSendAcknowledgement-org.apache.pulsar.client.api.Producer-org.apache.pulsar.client.api.Message-org.apache.pulsar.client.api.MessageId-java.lang.Throwable-">onSendAcknowledgement(Producer&lt;T&gt;, Message&lt;T&gt;, MessageId, Throwable)</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ProducerInterceptor.html" title="interface in org.apache. [...]
+<dd>
+<div class="block">This method is called when the message sent to the broker has been
+ acknowledged, or when sending the message fails.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/url/DataURLStreamHandler.html#openConnection-java.net.URL-">openConnection(URL)</a></span> - Method in class org.apache.pulsar.client.api.url.<a href="org/apache/pulsar/client/api/url/DataURLStreamHandler.html" title="class in org.apache.pulsar.client.api.url">DataURLStreamHandler</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/url/URL.html#openConnection--">openConnection()</a></span> - Method in class org.apache.pulsar.client.api.url.<a href="org/apache/pulsar/client/api/url/URL.html" title="class in org.apache.pulsar.client.api.url">URL</a></dt>
@@ -1247,6 +1297,12 @@
 </dd>
 <dt><a href="org/apache/pulsar/client/api/ProducerCryptoFailureAction.html" title="enum in org.apache.pulsar.client.api"><span class="typeNameLink">ProducerCryptoFailureAction</span></a> - Enum in <a href="org/apache/pulsar/client/api/package-summary.html">org.apache.pulsar.client.api</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/pulsar/client/api/ProducerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">ProducerInterceptor</span></a>&lt;<a href="org/apache/pulsar/client/api/ProducerInterceptor.html" title="type parameter in ProducerInterceptor">T</a>&gt; - Interface in <a href="org/apache/pulsar/client/api/package-summary.html">org.apache.pulsar.client.api</a></dt>
+<dd>
+<div class="block">A plugin interface that allows you to intercept (and possibly mutate) the
+ messages received by the producer before they are published to the Pulsar
+ brokers.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/api/ProducerBuilder.html#producerName-java.lang.String-">producerName(String)</a></span> - Method in interface org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a></dt>
 <dd>
 <div class="block">Specify a name for the producer</div>
diff --git a/content/api/client/org/apache/pulsar/client/api/Consumer.html b/content/api/client/org/apache/pulsar/client/api/Consumer.html
index bfcd77e..20f0cc0 100644
--- a/content/api/client/org/apache/pulsar/client/api/Consumer.html
+++ b/content/api/client/org/apache/pulsar/client/api/Consumer.html
@@ -17,7 +17,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -187,77 +187,83 @@ extends Closeable</pre>
 </td>
 </tr>
 <tr id="i10" class="altColor">
+<td class="colFirst"><code>String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Consumer.html#getConsumerName--">getConsumerName</a></span>()</code>
+<div class="block">Get the name of consumer.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerStats.html" title="interface in org.apache.pulsar.client.api">ConsumerStats</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Consumer.html#getStats--">getStats</a></span>()</code>
 <div class="block">Get statistics for the consumer.</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>String</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Consumer.html#getSubscription--">getSubscription</a></span>()</code>
 <div class="block">Get a subscription for the consumer</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>String</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Consumer.html#getTopic--">getTopic</a></span>()</code>
 <div class="block">Get a topic for the consumer</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Consumer.html#hasReachedEndOfTopic--">hasReachedEndOfTopic</a></span>()</code>
 <div class="block">Return true if the topic was terminated and this consumer has already consumed all the messages in the topic.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Consumer.html#isConnected--">isConnected</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/Message.html" title="interface in org.apache.pulsar.client.api">Message</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/Consumer.html" title="type parameter in Consumer">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Consumer.html#receive--">receive</a></span>()</code>
 <div class="block">Receives a single message.</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/Message.html" title="interface in org.apache.pulsar.client.api">Message</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/Consumer.html" title="type parameter in Consumer">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Consumer.html#receive-int-java.util.concurrent.TimeUnit-">receive</a></span>(int&nbsp;timeout,
        TimeUnit&nbsp;unit)</code>
 <div class="block">Receive a single message</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>CompletableFuture&lt;<a href="../../../../../org/apache/pulsar/client/api/Message.html" title="interface in org.apache.pulsar.client.api">Message</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/Consumer.html" title="type parameter in Consumer">T</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Consumer.html#receiveAsync--">receiveAsync</a></span>()</code>
 <div class="block">Receive a single message</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Consumer.html#redeliverUnacknowledgedMessages--">redeliverUnacknowledgedMessages</a></span>()</code>
 <div class="block">Redelivers all the unacknowledged messages.</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Consumer.html#seek-org.apache.pulsar.client.api.MessageId-">seek</a></span>(<a href="../../../../../org/apache/pulsar/client/api/MessageId.html" title="interface in org.apache.pulsar.client.api">MessageId</a>&nbsp;messageId)</code>
 <div class="block">Reset the subscription associated with this consumer to a specific message id.</div>
 </td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code>CompletableFuture&lt;Void&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Consumer.html#seekAsync-org.apache.pulsar.client.api.MessageId-">seekAsync</a></span>(<a href="../../../../../org/apache/pulsar/client/api/MessageId.html" title="interface in org.apache.pulsar.client.api">MessageId</a>&nbsp;messageId)</code>
 <div class="block">Reset the subscription associated with this consumer to a specific message id.</div>
 </td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Consumer.html#unsubscribe--">unsubscribe</a></span>()</code>
 <div class="block">Unsubscribe the consumer</div>
 </td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code>CompletableFuture&lt;Void&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/Consumer.html#unsubscribeAsync--">unsubscribeAsync</a></span>()</code>
 <div class="block">Asynchronously unsubscribe the consumer</div>
@@ -704,7 +710,7 @@ extends Closeable</pre>
 <a name="isConnected--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>isConnected</h4>
 <pre>boolean&nbsp;isConnected()</pre>
@@ -714,6 +720,20 @@ extends Closeable</pre>
 </dl>
 </li>
 </ul>
+<a name="getConsumerName--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getConsumerName</h4>
+<pre>String&nbsp;getConsumerName()</pre>
+<div class="block">Get the name of consumer.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>consumer name.</dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>
diff --git a/content/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html b/content/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html
index 26265cd..c3b8748 100644
--- a/content/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html
+++ b/content/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html
@@ -17,7 +17,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -176,110 +176,116 @@ extends Cloneable</pre>
 </tr>
 <tr id="i7" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#intercept-org.apache.pulsar.client.api.ConsumerInterceptor...-">intercept</a></span>(<a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api">ConsumerInterceptor</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a> [...]
+<div class="block">Intercept <a href="../../../../../org/apache/pulsar/client/api/Consumer.html" title="interface in org.apache.pulsar.client.api"><code>Consumer</code></a>.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#loadConf-java.util.Map-">loadConf</a></span>(Map&lt;String,Object&gt;&nbsp;config)</code>
 <div class="block">Load the configuration from provided <tt>config</tt> map.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#maxTotalReceiverQueueSizeAcrossPartitions-int-">maxTotalReceiverQueueSizeAcrossPartitions</a></span>(int&nbsp;maxTotalReceiverQueueSizeAcrossPartitions)</code>
 <div class="block">Set the max total receiver queue size across partitons.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#messageListener-org.apache.pulsar.client.api.MessageListener-">messageListener</a></span>(<a href="../../../../../org/apache/pulsar/client/api/MessageListener.html" title="interface in org.apache.pulsar.client.api">MessageListener</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt [...]
 <div class="block">Sets a <a href="../../../../../org/apache/pulsar/client/api/MessageListener.html" title="interface in org.apache.pulsar.client.api"><code>MessageListener</code></a> for the consumer</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#patternAutoDiscoveryPeriod-int-">patternAutoDiscoveryPeriod</a></span>(int&nbsp;periodInMinutes)</code>
 <div class="block">Set topics auto discovery period when using a pattern for topics consumer.</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#priorityLevel-int-">priorityLevel</a></span>(int&nbsp;priorityLevel)</code>
 <div class="block">Sets priority level for the shared subscription consumers to which broker gives more priority while dispatching
  messages.</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#properties-java.util.Map-">properties</a></span>(Map&lt;String,String&gt;&nbsp;properties)</code>
 <div class="block">Add all the properties in the provided map</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#property-java.lang.String-java.lang.String-">property</a></span>(String&nbsp;key,
         String&nbsp;value)</code>
 <div class="block">Set a name/value property with this consumer.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#readCompacted-boolean-">readCompacted</a></span>(boolean&nbsp;readCompacted)</code>
 <div class="block">If enabled, the consumer will read messages from the compacted topic rather than reading the full message backlog
  of the topic.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#receiverQueueSize-int-">receiverQueueSize</a></span>(int&nbsp;receiverQueueSize)</code>
 <div class="block">Sets the size of the consumer receive queue.</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/Consumer.html" title="interface in org.apache.pulsar.client.api">Consumer</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#subscribe--">subscribe</a></span>()</code>
 <div class="block">Finalize the <a href="../../../../../org/apache/pulsar/client/api/Consumer.html" title="interface in org.apache.pulsar.client.api"><code>Consumer</code></a> creation by subscribing to the topic.</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>CompletableFuture&lt;<a href="../../../../../org/apache/pulsar/client/api/Consumer.html" title="interface in org.apache.pulsar.client.api">Consumer</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#subscribeAsync--">subscribeAsync</a></span>()</code>
 <div class="block">Finalize the <a href="../../../../../org/apache/pulsar/client/api/Consumer.html" title="interface in org.apache.pulsar.client.api"><code>Consumer</code></a> creation by subscribing to the topic in asynchronous mode.</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionInitialPosition-org.apache.pulsar.client.api.SubscriptionInitialPosition-">subscriptionInitialPosition</a></span>(<a href="../../../../../org/apache/pulsar/client/api/SubscriptionInitialPosition.html" title="enum in org.apache.pulsar.client.api">SubscriptionInitialPosition</a>&nbsp;subscriptionInitialPosition)</code>
 <div class="block">Set subscriptionInitialPosition for the consumer</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionName-java.lang.String-">subscriptionName</a></span>(String&nbsp;subscriptionName)</code>
 <div class="block">Specify the subscription name for this consumer.</div>
 </td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionType-org.apache.pulsar.client.api.SubscriptionType-">subscriptionType</a></span>(<a href="../../../../../org/apache/pulsar/client/api/SubscriptionType.html" title="enum in org.apache.pulsar.client.api">SubscriptionType</a>&nbsp;subscriptionType)</code>
 <div class="block">Select the subscription type to be used when subscribing to the topic.</div>
 </td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#topic-java.lang.String...-">topic</a></span>(String...&nbsp;topicNames)</code>
 <div class="block">Specify the topics this consumer will subscribe on.</div>
 </td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#topics-java.util.List-">topics</a></span>(List&lt;String&gt;&nbsp;topicNames)</code>
 <div class="block">Specify a list of topics that this consumer will subscribe on.</div>
 </td>
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#topicsPattern-java.util.regex.Pattern-">topicsPattern</a></span>(java.util.regex.Pattern&nbsp;topicsPattern)</code>
 <div class="block">Specify a pattern for topics that this consumer will subscribe on.</div>
 </td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#topicsPattern-java.lang.String-">topicsPattern</a></span>(String&nbsp;topicsPattern)</code>
 <div class="block">Specify a pattern for topics that this consumer will subscribe on.</div>
@@ -756,13 +762,29 @@ extends Cloneable</pre>
 <a name="subscriptionInitialPosition-org.apache.pulsar.client.api.SubscriptionInitialPosition-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>subscriptionInitialPosition</h4>
 <pre><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;&nbsp;subscriptionInitialPosition(<a href="../../../../../org/apache/pulsar/client/api/SubscriptionInitialPosition.html" title="enum in org.apache.pulsar.client.api">SubscriptionInitialPosition</a>&nbsp;subscripti [...]
 <div class="block">Set subscriptionInitialPosition for the consumer</div>
 </li>
 </ul>
+<a name="intercept-org.apache.pulsar.client.api.ConsumerInterceptor...-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>intercept</h4>
+<pre><a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api">ConsumerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html" title="type parameter in ConsumerBuilder">T</a>&gt;&nbsp;intercept(<a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api">ConsumerInterceptor</a>&lt;<a href="../../../../../org/apache/pulsar [...]
+<div class="block">Intercept <a href="../../../../../org/apache/pulsar/client/api/Consumer.html" title="interface in org.apache.pulsar.client.api"><code>Consumer</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>interceptors</code> - the list of interceptors to intercept the consumer created by this builder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>consumer builder.</dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>
diff --git a/content/api/client/org/apache/pulsar/client/api/ConsumerEventListener.html b/content/api/client/org/apache/pulsar/client/api/ConsumerEventListener.html
index fc36fa8..f68c1d3 100644
--- a/content/api/client/org/apache/pulsar/client/api/ConsumerEventListener.html
+++ b/content/api/client/org/apache/pulsar/client/api/ConsumerEventListener.html
@@ -48,7 +48,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/pulsar/client/api/ConsumerCryptoFailureAction.html" title="enum in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/pulsar/client/api/ConsumerStats.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/pulsar/client/api/ConsumerEventListener.html" target="_top">Frames</a></li>
@@ -203,7 +203,7 @@ extends Serializable</pre>
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/pulsar/client/api/ConsumerCryptoFailureAction.html" title="enum in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/pulsar/client/api/ConsumerStats.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/pulsar/client/api/ConsumerEventListener.html" target="_top">Frames</a></li>
diff --git a/content/api/client/org/apache/pulsar/client/api/ConsumerInterceptor.html b/content/api/client/org/apache/pulsar/client/api/ConsumerInterceptor.html
new file mode 100644
index 0000000..1ffbed9
--- /dev/null
+++ b/content/api/client/org/apache/pulsar/client/api/ConsumerInterceptor.html
@@ -0,0 +1,351 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>ConsumerInterceptor (Pulsar Client Java API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConsumerInterceptor (Pulsar Client Java API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/pulsar/client/api/ConsumerEventListener.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/api/ConsumerStats.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/client/api/ConsumerInterceptor.html" target="_top">Frames</a></li>
+<li><a href="ConsumerInterceptor.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.pulsar.client.api</div>
+<h2 title="Interface ConsumerInterceptor" class="title">Interface ConsumerInterceptor&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd>AutoCloseable</dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ConsumerInterceptor&lt;T&gt;</span>
+extends AutoCloseable</pre>
+<div class="block">A plugin interface that allows you to intercept (and possibly mutate)
+ messages received by the consumer.
+ <p>
+ A primary use case is to hook into consumer applications for custom
+ monitoring, logging, etc.
+ <p>
+ Exceptions thrown by interceptor methods will be caught, logged, but
+ not propagated further.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/Message.html" title="interface in org.apache.pulsar.client.api">Message</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="type parameter in ConsumerInterceptor">T</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html#beforeConsume-org.apache.pulsar.client.api.Consumer-org.apache.pulsar.client.api.Message-">beforeConsume</a></span>(<a href="../../../../../org/apache/pulsar/client/api/Consumer.html" title="interface in org.apache.pulsar.client.api">Consumer</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="type parameter in Consu [...]
+             <a href="../../../../../org/apache/pulsar/client/api/Message.html" title="interface in org.apache.pulsar.client.api">Message</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="type parameter in ConsumerInterceptor">T</a>&gt;&nbsp;message)</code>
+<div class="block">This is called just before the message is returned by
+ <a href="../../../../../org/apache/pulsar/client/api/Consumer.html#receive--"><code>Consumer.receive()</code></a>, <a href="../../../../../org/apache/pulsar/client/api/MessageListener.html#received-org.apache.pulsar.client.api.Consumer-org.apache.pulsar.client.api.Message-"><code>MessageListener.received(Consumer,
+ Message)</code></a> or the <code>CompletableFuture</code> returned by
+ <a href="../../../../../org/apache/pulsar/client/api/Consumer.html#receiveAsync--"><code>Consumer.receiveAsync()</code></a> completes.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html#close--">close</a></span>()</code>
+<div class="block">Close the interceptor.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html#onAcknowledge-org.apache.pulsar.client.api.Consumer-org.apache.pulsar.client.api.MessageId-java.lang.Throwable-">onAcknowledge</a></span>(<a href="../../../../../org/apache/pulsar/client/api/Consumer.html" title="interface in org.apache.pulsar.client.api">Consumer</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="t [...]
+             <a href="../../../../../org/apache/pulsar/client/api/MessageId.html" title="interface in org.apache.pulsar.client.api">MessageId</a>&nbsp;messageId,
+             Throwable&nbsp;exception)</code>
+<div class="block">This is called consumer sends the acknowledgment to the broker.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html#onAcknowledgeCumulative-org.apache.pulsar.client.api.Consumer-org.apache.pulsar.client.api.MessageId-java.lang.Throwable-">onAcknowledgeCumulative</a></span>(<a href="../../../../../org/apache/pulsar/client/api/Consumer.html" title="interface in org.apache.pulsar.client.api">Consumer</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerInterc [...]
+                       <a href="../../../../../org/apache/pulsar/client/api/MessageId.html" title="interface in org.apache.pulsar.client.api">MessageId</a>&nbsp;messageId,
+                       Throwable&nbsp;exception)</code>
+<div class="block">This is called consumer send the cumulative acknowledgment to the broker.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>void&nbsp;close()</pre>
+<div class="block">Close the interceptor.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>close</code>&nbsp;in interface&nbsp;<code>AutoCloseable</code></dd>
+</dl>
+</li>
+</ul>
+<a name="beforeConsume-org.apache.pulsar.client.api.Consumer-org.apache.pulsar.client.api.Message-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>beforeConsume</h4>
+<pre><a href="../../../../../org/apache/pulsar/client/api/Message.html" title="interface in org.apache.pulsar.client.api">Message</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="type parameter in ConsumerInterceptor">T</a>&gt;&nbsp;beforeConsume(<a href="../../../../../org/apache/pulsar/client/api/Consumer.html" title="interface in org.apache.pulsar.client.api">Consumer</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerInterc [...]
+                         <a href="../../../../../org/apache/pulsar/client/api/Message.html" title="interface in org.apache.pulsar.client.api">Message</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="type parameter in ConsumerInterceptor">T</a>&gt;&nbsp;message)</pre>
+<div class="block">This is called just before the message is returned by
+ <a href="../../../../../org/apache/pulsar/client/api/Consumer.html#receive--"><code>Consumer.receive()</code></a>, <a href="../../../../../org/apache/pulsar/client/api/MessageListener.html#received-org.apache.pulsar.client.api.Consumer-org.apache.pulsar.client.api.Message-"><code>MessageListener.received(Consumer,
+ Message)</code></a> or the <code>CompletableFuture</code> returned by
+ <a href="../../../../../org/apache/pulsar/client/api/Consumer.html#receiveAsync--"><code>Consumer.receiveAsync()</code></a> completes.
+ <p>
+ This method is allowed to modify message, in which case the new message
+ will be returned.
+ <p>
+ Any exception thrown by this method will be caught by the caller, logged,
+ but not propagated to client.
+ <p>
+ Since the consumer may run multiple interceptors, a particular
+ interceptor's
+ <tt>beforeConsume</tt> callback will be called in the order specified by
+ <a href="../../../../../org/apache/pulsar/client/api/ConsumerBuilder.html#intercept-org.apache.pulsar.client.api.ConsumerInterceptor...-"><code>ConsumerBuilder.intercept(ConsumerInterceptor[])</code></a>. The first
+ interceptor in the list gets the consumed message, the following
+ interceptor will be passed
+ the message returned by the previous interceptor, and so on. Since
+ interceptors are allowed to modify message, interceptors may potentially
+ get the messages already modified by other interceptors. However building a
+ pipeline of mutable
+ interceptors that depend on the output of the previous interceptor is
+ discouraged, because of potential side-effects caused by interceptors
+ potentially failing to modify the message and throwing an exception.
+ if one of interceptors in the list throws an exception from
+ <tt>beforeConsume</tt>, the exception is caught, logged,
+ and the next interceptor is called with the message returned by the last
+ successful interceptor in the list, or otherwise the original consumed
+ message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>consumer</code> - the consumer which contains the interceptor</dd>
+<dd><code>message</code> - the message to be consumed by the client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>message that is either modified by the interceptor or same message
+         passed into the method.</dd>
+</dl>
+</li>
+</ul>
+<a name="onAcknowledge-org.apache.pulsar.client.api.Consumer-org.apache.pulsar.client.api.MessageId-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onAcknowledge</h4>
+<pre>void&nbsp;onAcknowledge(<a href="../../../../../org/apache/pulsar/client/api/Consumer.html" title="interface in org.apache.pulsar.client.api">Consumer</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="type parameter in ConsumerInterceptor">T</a>&gt;&nbsp;consumer,
+                   <a href="../../../../../org/apache/pulsar/client/api/MessageId.html" title="interface in org.apache.pulsar.client.api">MessageId</a>&nbsp;messageId,
+                   Throwable&nbsp;exception)</pre>
+<div class="block">This is called consumer sends the acknowledgment to the broker.
+
+ <p>Any exception thrown by this method will be ignored by the caller.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>consumer</code> - the consumer which contains the interceptor</dd>
+<dd><code>messageId</code> - message to ack, null if acknowledge fail.</dd>
+<dd><code>exception</code> - the exception on acknowledge.</dd>
+</dl>
+</li>
+</ul>
+<a name="onAcknowledgeCumulative-org.apache.pulsar.client.api.Consumer-org.apache.pulsar.client.api.MessageId-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onAcknowledgeCumulative</h4>
+<pre>void&nbsp;onAcknowledgeCumulative(<a href="../../../../../org/apache/pulsar/client/api/Consumer.html" title="interface in org.apache.pulsar.client.api">Consumer</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="type parameter in ConsumerInterceptor">T</a>&gt;&nbsp;consumer,
+                             <a href="../../../../../org/apache/pulsar/client/api/MessageId.html" title="interface in org.apache.pulsar.client.api">MessageId</a>&nbsp;messageId,
+                             Throwable&nbsp;exception)</pre>
+<div class="block">This is called consumer send the cumulative acknowledgment to the broker.
+
+ <p>Any exception thrown by this method will be ignored by the caller.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>consumer</code> - the consumer which contains the interceptor</dd>
+<dd><code>messageId</code> - message to ack, null if acknowledge fail.</dd>
+<dd><code>exception</code> - the exception on acknowledge.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/pulsar/client/api/ConsumerEventListener.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/api/ConsumerStats.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/client/api/ConsumerInterceptor.html" target="_top">Frames</a></li>
+<li><a href="ConsumerInterceptor.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/client/org/apache/pulsar/client/api/ConsumerStats.html b/content/api/client/org/apache/pulsar/client/api/ConsumerStats.html
index 17f1b6e..beafa51 100644
--- a/content/api/client/org/apache/pulsar/client/api/ConsumerStats.html
+++ b/content/api/client/org/apache/pulsar/client/api/ConsumerStats.html
@@ -47,7 +47,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/pulsar/client/api/ConsumerEventListener.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/pulsar/client/api/CryptoKeyReader.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -373,7 +373,7 @@ extends Serializable</pre>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/pulsar/client/api/ConsumerEventListener.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/pulsar/client/api/CryptoKeyReader.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/content/api/client/org/apache/pulsar/client/api/ProducerBuilder.html b/content/api/client/org/apache/pulsar/client/api/ProducerBuilder.html
index 9081341..53f2ca0 100644
--- a/content/api/client/org/apache/pulsar/client/api/ProducerBuilder.html
+++ b/content/api/client/org/apache/pulsar/client/api/ProducerBuilder.html
@@ -17,7 +17,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -211,61 +211,67 @@ extends Cloneable</pre>
 </tr>
 <tr id="i13" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="type parameter in ProducerBuilder">T</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html#intercept-org.apache.pulsar.client.api.ProducerInterceptor...-">intercept</a></span>(<a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="interface in org.apache.pulsar.client.api">ProducerInterceptor</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="type parameter in ProducerBuilder">T</a> [...]
+<div class="block">Intercept <a href="../../../../../org/apache/pulsar/client/api/Producer.html" title="interface in org.apache.pulsar.client.api"><code>Producer</code></a>.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="type parameter in ProducerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html#loadConf-java.util.Map-">loadConf</a></span>(Map&lt;String,Object&gt;&nbsp;config)</code>
 <div class="block">Load the configuration from provided <tt>config</tt> map.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="type parameter in ProducerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html#maxPendingMessages-int-">maxPendingMessages</a></span>(int&nbsp;maxPendingMessages)</code>
 <div class="block">Set the max size of the queue holding the messages pending to receive an acknowledgment from the broker.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="type parameter in ProducerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html#maxPendingMessagesAcrossPartitions-int-">maxPendingMessagesAcrossPartitions</a></span>(int&nbsp;maxPendingMessagesAcrossPartitions)</code>
 <div class="block">Set the number of max pending messages across all the partitions</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="type parameter in ProducerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html#messageRouter-org.apache.pulsar.client.api.MessageRouter-">messageRouter</a></span>(<a href="../../../../../org/apache/pulsar/client/api/MessageRouter.html" title="interface in org.apache.pulsar.client.api">MessageRouter</a>&nbsp;messageRouter)</code>
 <div class="block">Set a custom message routing policy by passing an implementation of MessageRouter</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="type parameter in ProducerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html#messageRoutingMode-org.apache.pulsar.client.api.MessageRoutingMode-">messageRoutingMode</a></span>(<a href="../../../../../org/apache/pulsar/client/api/MessageRoutingMode.html" title="enum in org.apache.pulsar.client.api">MessageRoutingMode</a>&nbsp;messageRoutingMode)</code>
 <div class="block">Set the message routing mode for the partitioned producer.</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="type parameter in ProducerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html#producerName-java.lang.String-">producerName</a></span>(String&nbsp;producerName)</code>
 <div class="block">Specify a name for the producer</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="type parameter in ProducerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html#properties-java.util.Map-">properties</a></span>(Map&lt;String,String&gt;&nbsp;properties)</code>
 <div class="block">Add all the properties in the provided map</div>
 </td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="type parameter in ProducerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html#property-java.lang.String-java.lang.String-">property</a></span>(String&nbsp;key,
         String&nbsp;value)</code>
 <div class="block">Set a name/value property with this producer.</div>
 </td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="type parameter in ProducerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html#sendTimeout-int-java.util.concurrent.TimeUnit-">sendTimeout</a></span>(int&nbsp;sendTimeout,
            TimeUnit&nbsp;unit)</code>
 <div class="block">Set the send timeout <i>(default: 30 seconds)</i></div>
 </td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="type parameter in ProducerBuilder">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html#topic-java.lang.String-">topic</a></span>(String&nbsp;topicName)</code>
 <div class="block">Specify the topic this producer will be publishing on.</div>
@@ -714,7 +720,7 @@ extends Cloneable</pre>
 <a name="properties-java.util.Map-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>properties</h4>
 <pre><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="type parameter in ProducerBuilder">T</a>&gt;&nbsp;properties(Map&lt;String,String&gt;&nbsp;properties)</pre>
@@ -726,6 +732,22 @@ extends Cloneable</pre>
 </dl>
 </li>
 </ul>
+<a name="intercept-org.apache.pulsar.client.api.ProducerInterceptor...-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>intercept</h4>
+<pre><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="type parameter in ProducerBuilder">T</a>&gt;&nbsp;intercept(<a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="interface in org.apache.pulsar.client.api">ProducerInterceptor</a>&lt;<a href="../../../../../org/apache/pulsar [...]
+<div class="block">Intercept <a href="../../../../../org/apache/pulsar/client/api/Producer.html" title="interface in org.apache.pulsar.client.api"><code>Producer</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>interceptors</code> - the list of interceptors to intercept the producer created by this builder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>producer builder.</dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>
diff --git a/content/api/client/org/apache/pulsar/client/api/ProducerCryptoFailureAction.html b/content/api/client/org/apache/pulsar/client/api/ProducerCryptoFailureAction.html
index ba7b44b..0cbec74 100644
--- a/content/api/client/org/apache/pulsar/client/api/ProducerCryptoFailureAction.html
+++ b/content/api/client/org/apache/pulsar/client/api/ProducerCryptoFailureAction.html
@@ -48,7 +48,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/pulsar/client/api/ProducerConfiguration.MessageRoutingMode.html" title="enum in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/pulsar/client/api/ProducerStats.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/pulsar/client/api/ProducerCryptoFailureAction.html" target="_top">Frames</a></li>
@@ -294,7 +294,7 @@ not permitted.)</div>
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/pulsar/client/api/ProducerConfiguration.MessageRoutingMode.html" title="enum in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/pulsar/client/api/ProducerStats.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/pulsar/client/api/ProducerCryptoFailureAction.html" target="_top">Frames</a></li>
diff --git a/content/api/client/org/apache/pulsar/client/api/ProducerInterceptor.html b/content/api/client/org/apache/pulsar/client/api/ProducerInterceptor.html
new file mode 100644
index 0000000..58ef10e
--- /dev/null
+++ b/content/api/client/org/apache/pulsar/client/api/ProducerInterceptor.html
@@ -0,0 +1,328 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>ProducerInterceptor (Pulsar Client Java API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ProducerInterceptor (Pulsar Client Java API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/pulsar/client/api/ProducerCryptoFailureAction.html" title="enum in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/api/ProducerStats.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/client/api/ProducerInterceptor.html" target="_top">Frames</a></li>
+<li><a href="ProducerInterceptor.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.pulsar.client.api</div>
+<h2 title="Interface ProducerInterceptor" class="title">Interface ProducerInterceptor&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd>AutoCloseable</dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ProducerInterceptor&lt;T&gt;</span>
+extends AutoCloseable</pre>
+<div class="block">A plugin interface that allows you to intercept (and possibly mutate) the
+ messages received by the producer before they are published to the Pulsar
+ brokers.
+ <p>
+ Exceptions thrown by ProducerInterceptor methods will be caught, logged, but
+ not propagated further.
+ <p>
+ ProducerInterceptor callbacks may be called from multiple threads. Interceptor
+ implementation must ensure thread-safety, if needed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/api/Message.html" title="interface in org.apache.pulsar.client.api">Message</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="type parameter in ProducerInterceptor">T</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html#beforeSend-org.apache.pulsar.client.api.Producer-org.apache.pulsar.client.api.Message-">beforeSend</a></span>(<a href="../../../../../org/apache/pulsar/client/api/Producer.html" title="interface in org.apache.pulsar.client.api">Producer</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="type parameter in ProducerInt [...]
+          <a href="../../../../../org/apache/pulsar/client/api/Message.html" title="interface in org.apache.pulsar.client.api">Message</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="type parameter in ProducerInterceptor">T</a>&gt;&nbsp;message)</code>
+<div class="block">This is called from <a href="../../../../../org/apache/pulsar/client/api/Producer.html#send-T-"><code>Producer.send(Object)</code></a> and <a href="../../../../../org/apache/pulsar/client/api/Producer.html#sendAsync-T-"><code>Producer.sendAsync(Object)</code></a> methods, before
+ send the message to the brokers.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html#close--">close</a></span>()</code>
+<div class="block">Close the interceptor.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html#onSendAcknowledgement-org.apache.pulsar.client.api.Producer-org.apache.pulsar.client.api.Message-org.apache.pulsar.client.api.MessageId-java.lang.Throwable-">onSendAcknowledgement</a></span>(<a href="../../../../../org/apache/pulsar/client/api/Producer.html" title="interface in org.apache.pulsar.client.api">Producer</a>&lt;<a href="../../../../../org/apache [...]
+                     <a href="../../../../../org/apache/pulsar/client/api/Message.html" title="interface in org.apache.pulsar.client.api">Message</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="type parameter in ProducerInterceptor">T</a>&gt;&nbsp;message,
+                     <a href="../../../../../org/apache/pulsar/client/api/MessageId.html" title="interface in org.apache.pulsar.client.api">MessageId</a>&nbsp;msgId,
+                     Throwable&nbsp;exception)</code>
+<div class="block">This method is called when the message sent to the broker has been
+ acknowledged, or when sending the message fails.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>void&nbsp;close()</pre>
+<div class="block">Close the interceptor.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>close</code>&nbsp;in interface&nbsp;<code>AutoCloseable</code></dd>
+</dl>
+</li>
+</ul>
+<a name="beforeSend-org.apache.pulsar.client.api.Producer-org.apache.pulsar.client.api.Message-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>beforeSend</h4>
+<pre><a href="../../../../../org/apache/pulsar/client/api/Message.html" title="interface in org.apache.pulsar.client.api">Message</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="type parameter in ProducerInterceptor">T</a>&gt;&nbsp;beforeSend(<a href="../../../../../org/apache/pulsar/client/api/Producer.html" title="interface in org.apache.pulsar.client.api">Producer</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerIntercept [...]
+                      <a href="../../../../../org/apache/pulsar/client/api/Message.html" title="interface in org.apache.pulsar.client.api">Message</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="type parameter in ProducerInterceptor">T</a>&gt;&nbsp;message)</pre>
+<div class="block">This is called from <a href="../../../../../org/apache/pulsar/client/api/Producer.html#send-T-"><code>Producer.send(Object)</code></a> and <a href="../../../../../org/apache/pulsar/client/api/Producer.html#sendAsync-T-"><code>Producer.sendAsync(Object)</code></a> methods, before
+ send the message to the brokers. This method is allowed to modify the
+ record, in which case, the new record
+ will be returned.
+ <p>
+ Any exception thrown by this method will be caught by the caller and
+ logged, but not propagated further.
+ <p>
+ Since the producer may run multiple interceptors, a particular
+ interceptor's <a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html#beforeSend-org.apache.pulsar.client.api.Producer-org.apache.pulsar.client.api.Message-"><code>beforeSend(Producer, Message)</code></a> callback will be called in the
+ order specified by
+ <a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html#intercept-org.apache.pulsar.client.api.ProducerInterceptor...-"><code>ProducerBuilder.intercept(ProducerInterceptor[])</code></a>.
+ <p>
+ The first interceptor in the list gets the message passed from the client,
+ the following interceptor will be passed the message returned by the
+ previous interceptor, and so on. Since interceptors are allowed to modify
+ messages, interceptors may potentially get the message already modified by
+ other interceptors. However, building a pipeline of mutable interceptors
+ that depend on the output of the previous interceptor is discouraged,
+ because of potential side-effects caused by interceptors potentially
+ failing to modify the message and throwing an exception. If one of the
+ interceptors in the list throws an exception from
+ , the exception is caught, logged, and the next
+ interceptor is called with the message returned by the last successful
+ interceptor in the list, or otherwise the client.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>producer</code> - the producer which contains the interceptor.</dd>
+<dd><code>message</code> - message to send</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the intercepted message</dd>
+</dl>
+</li>
+</ul>
+<a name="onSendAcknowledgement-org.apache.pulsar.client.api.Producer-org.apache.pulsar.client.api.Message-org.apache.pulsar.client.api.MessageId-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onSendAcknowledgement</h4>
+<pre>void&nbsp;onSendAcknowledgement(<a href="../../../../../org/apache/pulsar/client/api/Producer.html" title="interface in org.apache.pulsar.client.api">Producer</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="type parameter in ProducerInterceptor">T</a>&gt;&nbsp;producer,
+                           <a href="../../../../../org/apache/pulsar/client/api/Message.html" title="interface in org.apache.pulsar.client.api">Message</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="type parameter in ProducerInterceptor">T</a>&gt;&nbsp;message,
+                           <a href="../../../../../org/apache/pulsar/client/api/MessageId.html" title="interface in org.apache.pulsar.client.api">MessageId</a>&nbsp;msgId,
+                           Throwable&nbsp;exception)</pre>
+<div class="block">This method is called when the message sent to the broker has been
+ acknowledged, or when sending the message fails.
+ This method is generally called just before the user callback is
+ called, and in additional cases when an exception on the producer side.
+ <p>
+ Any exception thrown by this method will be ignored by the caller.
+ <p>
+ This method will generally execute in the background I/O thread, so the
+ implementation should be reasonably fast. Otherwise, sending of messages
+ from other threads could be delayed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>producer</code> - the producer which contains the interceptor.</dd>
+<dd><code>message</code> - the message that application sends</dd>
+<dd><code>msgId</code> - the message id that assigned by the broker; null if send failed.</dd>
+<dd><code>exception</code> - the exception on sending messages, null indicates send has succeed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/pulsar/client/api/ProducerCryptoFailureAction.html" title="enum in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/api/ProducerStats.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/client/api/ProducerInterceptor.html" target="_top">Frames</a></li>
+<li><a href="ProducerInterceptor.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/client/org/apache/pulsar/client/api/ProducerStats.html b/content/api/client/org/apache/pulsar/client/api/ProducerStats.html
index 2a18f10..ca8c5af 100644
--- a/content/api/client/org/apache/pulsar/client/api/ProducerStats.html
+++ b/content/api/client/org/apache/pulsar/client/api/ProducerStats.html
@@ -47,7 +47,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/pulsar/client/api/ProducerCryptoFailureAction.html" title="enum in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/pulsar/client/api/PulsarClient.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -441,7 +441,7 @@ extends Serializable</pre>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/pulsar/client/api/ProducerCryptoFailureAction.html" title="enum in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/pulsar/client/api/PulsarClient.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/content/api/client/org/apache/pulsar/client/api/package-frame.html b/content/api/client/org/apache/pulsar/client/api/package-frame.html
index b77bfe7..ed1e683 100644
--- a/content/api/client/org/apache/pulsar/client/api/package-frame.html
+++ b/content/api/client/org/apache/pulsar/client/api/package-frame.html
@@ -18,6 +18,7 @@
 <li><a href="Consumer.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">Consumer</span></a></li>
 <li><a href="ConsumerBuilder.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">ConsumerBuilder</span></a></li>
 <li><a href="ConsumerEventListener.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">ConsumerEventListener</span></a></li>
+<li><a href="ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">ConsumerInterceptor</span></a></li>
 <li><a href="ConsumerStats.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">ConsumerStats</span></a></li>
 <li><a href="CryptoKeyReader.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">CryptoKeyReader</span></a></li>
 <li><a href="EncodedAuthenticationParameterSupport.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">EncodedAuthenticationParameterSupport</span></a></li>
@@ -28,6 +29,7 @@
 <li><a href="MessageRouter.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">MessageRouter</span></a></li>
 <li><a href="Producer.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">Producer</span></a></li>
 <li><a href="ProducerBuilder.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">ProducerBuilder</span></a></li>
+<li><a href="ProducerInterceptor.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">ProducerInterceptor</span></a></li>
 <li><a href="ProducerStats.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">ProducerStats</span></a></li>
 <li><a href="PulsarClient.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">PulsarClient</span></a></li>
 <li><a href="Reader.html" title="interface in org.apache.pulsar.client.api" target="classFrame"><span class="interfaceName">Reader</span></a></li>
diff --git a/content/api/client/org/apache/pulsar/client/api/package-summary.html b/content/api/client/org/apache/pulsar/client/api/package-summary.html
index bb46f4c..107111f 100644
--- a/content/api/client/org/apache/pulsar/client/api/package-summary.html
+++ b/content/api/client/org/apache/pulsar/client/api/package-summary.html
@@ -115,32 +115,39 @@
 </td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api">ConsumerInterceptor</a>&lt;T&gt;</td>
+<td class="colLast">
+<div class="block">A plugin interface that allows you to intercept (and possibly mutate)
+ messages received by the consumer.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/pulsar/client/api/ConsumerStats.html" title="interface in org.apache.pulsar.client.api">ConsumerStats</a></td>
 <td class="colLast">
 <div class="block">Consumer statistics recorded by client.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/pulsar/client/api/CryptoKeyReader.html" title="interface in org.apache.pulsar.client.api">CryptoKeyReader</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/pulsar/client/api/EncodedAuthenticationParameterSupport.html" title="interface in org.apache.pulsar.client.api">EncodedAuthenticationParameterSupport</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/pulsar/client/api/Message.html" title="interface in org.apache.pulsar.client.api">Message</a>&lt;T&gt;</td>
 <td class="colLast">
 <div class="block">The message abstraction used in Pulsar.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/pulsar/client/api/MessageBuilder.html" title="interface in org.apache.pulsar.client.api">MessageBuilder</a>&lt;T&gt;</td>
 <td class="colLast">Deprecated
 <div class="block"><span class="deprecationComment">since 2.0.</span></div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/pulsar/client/api/MessageId.html" title="interface in org.apache.pulsar.client.api">MessageId</a></td>
 <td class="colLast">
 <div class="block">Opaque unique identifier of a single message
@@ -149,28 +156,36 @@
  the message content in memory for an extended period of time.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/pulsar/client/api/MessageListener.html" title="interface in org.apache.pulsar.client.api">MessageListener</a>&lt;T&gt;</td>
 <td class="colLast">
 <div class="block">A listener that will be called in order for every message received.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/pulsar/client/api/MessageRouter.html" title="interface in org.apache.pulsar.client.api">MessageRouter</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/pulsar/client/api/Producer.html" title="interface in org.apache.pulsar.client.api">Producer</a>&lt;T&gt;</td>
 <td class="colLast">
 <div class="block">Producer object.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api">ProducerBuilder</a>&lt;T&gt;</td>
 <td class="colLast">
 <div class="block"><a href="../../../../../org/apache/pulsar/client/api/ProducerBuilder.html" title="interface in org.apache.pulsar.client.api"><code>ProducerBuilder</code></a> is used to configure and create instances of <a href="../../../../../org/apache/pulsar/client/api/Producer.html" title="interface in org.apache.pulsar.client.api"><code>Producer</code></a>.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="interface in org.apache.pulsar.client.api">ProducerInterceptor</a>&lt;T&gt;</td>
+<td class="colLast">
+<div class="block">A plugin interface that allows you to intercept (and possibly mutate) the
+ messages received by the producer before they are published to the Pulsar
+ brokers.</div>
+</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/pulsar/client/api/ProducerStats.html" title="interface in org.apache.pulsar.client.api">ProducerStats</a></td>
 <td class="colLast">
diff --git a/content/api/client/org/apache/pulsar/client/api/package-tree.html b/content/api/client/org/apache/pulsar/client/api/package-tree.html
index 54e6b9f..7f516bf 100644
--- a/content/api/client/org/apache/pulsar/client/api/package-tree.html
+++ b/content/api/client/org/apache/pulsar/client/api/package-tree.html
@@ -147,6 +147,8 @@
 <li type="circle">org.apache.pulsar.client.api.<a href="../../../../../org/apache/pulsar/client/api/Reader.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Reader</span></a>&lt;T&gt;</li>
 </ul>
 </li>
+<li type="circle">org.apache.pulsar.client.api.<a href="../../../../../org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">ConsumerInterceptor</span></a>&lt;T&gt;</li>
+<li type="circle">org.apache.pulsar.client.api.<a href="../../../../../org/apache/pulsar/client/api/ProducerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">ProducerInterceptor</span></a>&lt;T&gt;</li>
 </ul>
 </li>
 <li type="circle">Cloneable
diff --git a/content/api/client/overview-tree.html b/content/api/client/overview-tree.html
index f10ac07..af7a45a 100644
--- a/content/api/client/overview-tree.html
+++ b/content/api/client/overview-tree.html
@@ -155,6 +155,8 @@
 <li type="circle">org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/Reader.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">Reader</span></a>&lt;T&gt;</li>
 </ul>
 </li>
+<li type="circle">org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ConsumerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">ConsumerInterceptor</span></a>&lt;T&gt;</li>
+<li type="circle">org.apache.pulsar.client.api.<a href="org/apache/pulsar/client/api/ProducerInterceptor.html" title="interface in org.apache.pulsar.client.api"><span class="typeNameLink">ProducerInterceptor</span></a>&lt;T&gt;</li>
 </ul>
 </li>
 <li type="circle">Cloneable
diff --git a/content/api/cpp/classpulsar_1_1_auth_athenz-members.html b/content/api/cpp/classpulsar_1_1_auth_athenz-members.html
index d37ac45..aeae08e 100644
--- a/content/api/cpp/classpulsar_1_1_auth_athenz-members.html
+++ b/content/api/cpp/classpulsar_1_1_auth_athenz-members.html
@@ -102,8 +102,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>create</b>(const std::string &amp;authParamsString) (defined in <a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>getAuthData</b>(AuthenticationDataPtr &amp;authDataAthenz) const  (defined in <a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getAuthMethodName</b>() const  (defined in <a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>~AuthAthenz</b>() (defined in <a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>parseDefaultFormatAuthParams</b>(const std::string &amp;authParamsString) (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~AuthAthenz</b>() (defined in <a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>~Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/content/api/cpp/classpulsar_1_1_auth_athenz.html b/content/api/cpp/classpulsar_1_1_auth_athenz.html
index 522a81a..e06535e 100644
--- a/content/api/cpp/classpulsar_1_1_auth_athenz.html
+++ b/content/api/cpp/classpulsar_1_1_auth_athenz.html
@@ -128,6 +128,10 @@ static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><b>c
 <tr class="memitem:afd40a525e1d8d61fc97880c2c8a958fe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afd40a525e1d8d61fc97880c2c8a958fe"></a>
 static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><b>create</b> (const std::string &amp;authParamsString)</td></tr>
 <tr class="separator:afd40a525e1d8d61fc97880c2c8a958fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_static_methods_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classpulsar_1_1_authentication')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td></tr>
+<tr class="memitem:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0ff47251bd4184cd0e9155e76a5c35bb"></a>
+static ParamMap&#160;</td><td class="memItemRight" valign="bottom"><b>parseDefaultFormatAuthParams</b> (const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
diff --git a/content/api/cpp/classpulsar_1_1_auth_tls-members.html b/content/api/cpp/classpulsar_1_1_auth_tls-members.html
index 02a2eda..4ed208b 100644
--- a/content/api/cpp/classpulsar_1_1_auth_tls-members.html
+++ b/content/api/cpp/classpulsar_1_1_auth_tls-members.html
@@ -99,9 +99,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <tr bgcolor="#f0f0f0"><td class="entry"><b>Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AuthTls</b>(AuthenticationDataPtr &amp;) (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>create</b>(ParamMap &amp;params) (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>create</b>(const std::string &amp;certificatePath, const std::string &amp;privateKeyPath) (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>getAuthData</b>(AuthenticationDataPtr &amp;authDataTls) const  (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getAuthMethodName</b>() const  (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>create</b>(const std::string &amp;authParamsString) (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>create</b>(const std::string &amp;certificatePath, const std::string &amp;privateKeyPath) (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getAuthData</b>(AuthenticationDataPtr &amp;authDataTls) const  (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getAuthMethodName</b>() const  (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>parseDefaultFormatAuthParams</b>(const std::string &amp;authParamsString) (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>~Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~AuthTls</b>() (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
diff --git a/content/api/cpp/classpulsar_1_1_auth_tls.html b/content/api/cpp/classpulsar_1_1_auth_tls.html
index 745c205..44689e5 100644
--- a/content/api/cpp/classpulsar_1_1_auth_tls.html
+++ b/content/api/cpp/classpulsar_1_1_auth_tls.html
@@ -125,9 +125,16 @@ Static Public Member Functions</h2></td></tr>
 <tr class="memitem:a3a2603a8be94cdde4845c941dc8871cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a2603a8be94cdde4845c941dc8871cc"></a>
 static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><b>create</b> (ParamMap &amp;params)</td></tr>
 <tr class="separator:a3a2603a8be94cdde4845c941dc8871cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a19312c7b58d94aa05927ee33922731de"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a19312c7b58d94aa05927ee33922731de"></a>
+static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><b>create</b> (const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:a19312c7b58d94aa05927ee33922731de"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac32274cb7d7095cfcd35fcebcf277d5b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac32274cb7d7095cfcd35fcebcf277d5b"></a>
 static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><b>create</b> (const std::string &amp;certificatePath, const std::string &amp;privateKeyPath)</td></tr>
 <tr class="separator:ac32274cb7d7095cfcd35fcebcf277d5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_static_methods_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classpulsar_1_1_authentication')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td></tr>
+<tr class="memitem:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0ff47251bd4184cd0e9155e76a5c35bb"></a>
+static ParamMap&#160;</td><td class="memItemRight" valign="bottom"><b>parseDefaultFormatAuthParams</b> (const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
diff --git a/content/api/cpp/classpulsar_1_1_authentication-members.html b/content/api/cpp/classpulsar_1_1_authentication-members.html
index e3a7db5..e36463d 100644
--- a/content/api/cpp/classpulsar_1_1_authentication-members.html
+++ b/content/api/cpp/classpulsar_1_1_authentication-members.html
@@ -100,7 +100,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ClientConfiguration</b> (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>getAuthData</b>(AuthenticationDataPtr &amp;authDataContent) const  (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getAuthMethodName</b>() const =0 (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>~Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>parseDefaultFormatAuthParams</b>(const std::string &amp;authParamsString) (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/content/api/cpp/classpulsar_1_1_authentication.html b/content/api/cpp/classpulsar_1_1_authentication.html
index f108000..a3c1892 100644
--- a/content/api/cpp/classpulsar_1_1_authentication.html
+++ b/content/api/cpp/classpulsar_1_1_authentication.html
@@ -90,6 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="header">
   <div class="summary">
 <a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
 <a href="#pro-attribs">Protected Attributes</a> &#124;
 <a href="#friends">Friends</a> &#124;
 <a href="classpulsar_1_1_authentication-members.html">List of all members</a>  </div>
@@ -117,6 +118,12 @@ virtual const std::string&#160;</td><td class="memItemRight" valign="bottom"><b>
 virtual <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getAuthData</b> (AuthenticationDataPtr &amp;authDataContent) const </td></tr>
 <tr class="separator:a8f2c6c29a3cb293c5c5dbd6e43b5634e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a0ff47251bd4184cd0e9155e76a5c35bb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0ff47251bd4184cd0e9155e76a5c35bb"></a>
+static ParamMap&#160;</td><td class="memItemRight" valign="bottom"><b>parseDefaultFormatAuthParams</b> (const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:a0ff47251bd4184cd0e9155e76a5c35bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
 Protected Attributes</h2></td></tr>
 <tr class="memitem:abac33d5c492826fb8a4bea05512c9f7c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abac33d5c492826fb8a4bea05512c9f7c"></a>
diff --git a/content/api/cpp/classpulsar_1_1_producer_configuration.html b/content/api/cpp/classpulsar_1_1_producer_configuration.html
index bf7e21c..3144480 100644
--- a/content/api/cpp/classpulsar_1_1_producer_configuration.html
+++ b/content/api/cpp/classpulsar_1_1_producer_configuration.html
@@ -313,7 +313,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>PulsarWrapper</b></t
         </tr>
       </table>
 </div><div class="memdoc">
-<p>Check whether the message has a specific property attached.</p>
+<p>Check whether the producer has a specific property attached.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">name</td><td>the name of the property to check </td></tr>
@@ -390,7 +390,7 @@ false if the property is not defined </dd></dl>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>Sets a new property on a message. </p><dl class="params"><dt>Parameters</dt><dd>
+<p>Sets a new property on the producer</p><dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">name</td><td>the name of the property </td></tr>
     <tr><td class="paramname">value</td><td>the associated value </td></tr>
diff --git a/content/api/cpp/consumer__configuration_8h_source.html b/content/api/cpp/consumer__configuration_8h_source.html
index 3c65832..d9538b4 100644
--- a/content/api/cpp/consumer__configuration_8h_source.html
+++ b/content/api/cpp/consumer__configuration_8h_source.html
@@ -89,7 +89,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="title">consumer_configuration.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00022">< [...]
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00022">< [...]
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
diff --git a/content/api/cpp/producer__configuration_8h_source.html b/content/api/cpp/producer__configuration_8h_source.html
index 02b3c44..c7e660f 100644
--- a/content/api/cpp/producer__configuration_8h_source.html
+++ b/content/api/cpp/producer__configuration_8h_source.html
@@ -89,7 +89,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="title">producer_configuration.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l0 [...]
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l0 [...]
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
diff --git a/content/blog/2018/08/06/Apache-Pulsar-2-1-0.html b/content/blog/2018/08/06/Apache-Pulsar-2-1-0.html
index 9fba6a2..9a3ac61 100644
--- a/content/blog/2018/08/06/Apache-Pulsar-2-1-0.html
+++ b/content/blog/2018/08/06/Apache-Pulsar-2-1-0.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
diff --git a/content/blog/2018/08/06/Apache-Pulsar-2-1-0/index.html b/content/blog/2018/08/06/Apache-Pulsar-2-1-0/index.html
index 9fba6a2..9a3ac61 100644
--- a/content/blog/2018/08/06/Apache-Pulsar-2-1-0/index.html
+++ b/content/blog/2018/08/06/Apache-Pulsar-2-1-0/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
diff --git a/content/blog/index.html b/content/blog/index.html
index 51b7d3c..63385c0 100644
--- a/content/blog/index.html
+++ b/content/blog/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="blog"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="blog"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
diff --git a/content/contact.html b/content/contact.html
index 6124919..66e68ab 100644
--- a/content/contact.html
+++ b/content/contact.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/en [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/en [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
diff --git a/content/contact/index.html b/content/contact/index.html
index 6124919..66e68ab 100644
--- a/content/contact/index.html
+++ b/content/contact/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/en [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/en [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
diff --git a/content/contributing.html b/content/contributing.html
index a0c806b..685341a 100644
--- a/content/contributing.html
+++ b/content/contributing.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/en [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/en [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -151,6 +151,23 @@ $ git checkout -b &lt;my-branch&gt; apache/master
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="testing"></a><a href="#testing" 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>All code should have appropriate unit testing coverage. New code should have new tests in the same contribution. Bug fixes should include a regression test to prevent the issue from reoccurring.</p>
+<h3><a class="anchor" aria-hidden="true" id="licensing"></a><a href="#licensing" 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>All code contributed to Pulsar will be licensed under <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License V2</a>. You need to ensure every new files you are adding have the right
+license header. You can add license header to your files by running following command:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> mvn license:format</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="develop-c-python-client"></a><a href="#develop-c-python-client" 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>Currently C++ and Python client are developed under <code>pulsar-client-cpp</code> directory. You can use following commands to build and test your c++ or python code changes.</p>
+<h4><a class="anchor" aria-hidden="true" id="build-c-python-client"></a><a href="#build-c-python-client" 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 [...]
+<pre><code class="hljs"><span class="hljs-meta">$</span><span class="bash"> ./pulsar-client-cpp/docker-build.sh</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="run-c-python-client-tests"></a><a href="#run-c-python-client-tests" 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 [...]
+<pre><code class="hljs"><span class="hljs-meta">$</span><span class="bash"> ./pulsar-client-cpp/docker-test.sh</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="checkstyle"></a><a href="#checkstyle" 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>Before you push the C++/Python changes for review, you should format the files to apply the checkstyle rule Pulsar is using for C++/Python code.</p>
+<pre><code class="hljs"><span class="hljs-meta">$</span><span class="bash"> ./pulsar-client-cpp/docker-format.sh</span>
+</code></pre>
 <h2><a class="anchor" aria-hidden="true" id="review"></a><a href="#review" 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. [...]
 <p>Once the initial code is complete and the tests pass, it’s time to start the code review process. We review and discuss all code, no matter who authors it. It’s a great way to build community, since you can learn from other developers, and they become familiar with your contribution. It also builds a strong project by encouraging a high quality bar and keeping code consistent throughout the project.</p>
 <h3><a class="anchor" aria-hidden="true" id="create-a-pull-request"></a><a href="#create-a-pull-request" 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 [...]
diff --git a/content/contributing/index.html b/content/contributing/index.html
index a0c806b..685341a 100644
--- a/content/contributing/index.html
+++ b/content/contributing/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/en [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/en [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -151,6 +151,23 @@ $ git checkout -b &lt;my-branch&gt; apache/master
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="testing"></a><a href="#testing" 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>All code should have appropriate unit testing coverage. New code should have new tests in the same contribution. Bug fixes should include a regression test to prevent the issue from reoccurring.</p>
+<h3><a class="anchor" aria-hidden="true" id="licensing"></a><a href="#licensing" 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>All code contributed to Pulsar will be licensed under <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License V2</a>. You need to ensure every new files you are adding have the right
+license header. You can add license header to your files by running following command:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> mvn license:format</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="develop-c-python-client"></a><a href="#develop-c-python-client" 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>Currently C++ and Python client are developed under <code>pulsar-client-cpp</code> directory. You can use following commands to build and test your c++ or python code changes.</p>
+<h4><a class="anchor" aria-hidden="true" id="build-c-python-client"></a><a href="#build-c-python-client" 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 [...]
+<pre><code class="hljs"><span class="hljs-meta">$</span><span class="bash"> ./pulsar-client-cpp/docker-build.sh</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="run-c-python-client-tests"></a><a href="#run-c-python-client-tests" 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 [...]
+<pre><code class="hljs"><span class="hljs-meta">$</span><span class="bash"> ./pulsar-client-cpp/docker-test.sh</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="checkstyle"></a><a href="#checkstyle" 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>Before you push the C++/Python changes for review, you should format the files to apply the checkstyle rule Pulsar is using for C++/Python code.</p>
+<pre><code class="hljs"><span class="hljs-meta">$</span><span class="bash"> ./pulsar-client-cpp/docker-format.sh</span>
+</code></pre>
 <h2><a class="anchor" aria-hidden="true" id="review"></a><a href="#review" 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. [...]
 <p>Once the initial code is complete and the tests pass, it’s time to start the code review process. We review and discuss all code, no matter who authors it. It’s a great way to build community, since you can learn from other developers, and they become familiar with your contribution. It also builds a strong project by encouraging a high quality bar and keeping code consistent throughout the project.</p>
 <h3><a class="anchor" aria-hidden="true" id="create-a-pull-request"></a><a href="#create-a-pull-request" 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 [...]
diff --git a/content/css/main.css b/content/css/main.css
index 0b5ba7e..0a2da7c 100644
--- a/content/css/main.css
+++ b/content/css/main.css
@@ -1 +1 @@
-a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}b [...]
\ No newline at end of file
+a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}b [...]
\ No newline at end of file
diff --git a/content/docs/assets/pulsar-sql-arch-1.png b/content/docs/assets/pulsar-sql-arch-1.png
new file mode 100755
index 0000000..0441d34
Binary files /dev/null and b/content/docs/assets/pulsar-sql-arch-1.png differ
diff --git a/content/docs/assets/pulsar-sql-arch-2.png b/content/docs/assets/pulsar-sql-arch-2.png
new file mode 100755
index 0000000..36a136d
Binary files /dev/null and b/content/docs/assets/pulsar-sql-arch-2.png differ
diff --git a/content/docs/en/adaptors-kafka.html b/content/docs/en/adaptors-kafka.html
index 10b54ab..eb6eedc 100644
--- a/content/docs/en/adaptors-kafka.html
+++ b/content/docs/en/adaptors-kafka.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-kafka.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Kafka</h1></header><article><div><span><p>Pulsar provides an easy option for applications that are currently written using the <a hr [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-kafka.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Kafka</h1></header><article><div><span><p>Pulsar provides an easy option for applications that are currently writte [...]
 <h2><a class="anchor" aria-hidden="true" id="using-the-pulsar-kafka-compatibility-wrapper"></a><a href="#using-the-pulsar-kafka-compatibility-wrapper" 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-1v [...]
 <p>In an existing application, change the regular Kafka client dependency and replace it with the Pulsar Kafka wrapper. Remove:</p>
 <pre><code class="hljs css language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
@@ -286,7 +286,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-schemas">← Managing Schemas</a><a class="docs-next button" href="/docs/en/adaptors-spark">Pulsar adaptor for Apache Spark →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li><a href="#using-the-pulsar-kafka-compatibility-wrapper-together-with-exis [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/adaptors-spark"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/adaptors-kafka/index.html b/content/docs/en/adaptors-kafka/index.html
index 10b54ab..eb6eedc 100644
--- a/content/docs/en/adaptors-kafka/index.html
+++ b/content/docs/en/adaptors-kafka/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-kafka.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Kafka</h1></header><article><div><span><p>Pulsar provides an easy option for applications that are currently written using the <a hr [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-kafka.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Kafka</h1></header><article><div><span><p>Pulsar provides an easy option for applications that are currently writte [...]
 <h2><a class="anchor" aria-hidden="true" id="using-the-pulsar-kafka-compatibility-wrapper"></a><a href="#using-the-pulsar-kafka-compatibility-wrapper" 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-1v [...]
 <p>In an existing application, change the regular Kafka client dependency and replace it with the Pulsar Kafka wrapper. Remove:</p>
 <pre><code class="hljs css language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
@@ -286,7 +286,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-schemas">← Managing Schemas</a><a class="docs-next button" href="/docs/en/adaptors-spark">Pulsar adaptor for Apache Spark →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li><a href="#using-the-pulsar-kafka-compatibility-wrapper-together-with-exis [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/adaptors-spark"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/adaptors-spark.html b/content/docs/en/adaptors-spark.html
index b236790..22b4035 100644
--- a/content/docs/en/adaptors-spark.html
+++ b/content/docs/en/adaptors-spark.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-spark.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Spark</h1></header><article><div><span><p>The Spark Streaming receiver for Pulsar is a custom receiver that enables Apache <a href=" [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-spark.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Spark</h1></header><article><div><span><p>The Spark Streaming receiver for Pulsar is a custom receiver that enables [...]
 <p>An application can receive data in <a href="https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds">Resilient Distributed Dataset</a> (RDD) format via the Spark Streaming Pulsar receiver and can process it in a variety of ways.</p>
 <h2><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>To use the receiver, include a dependency for the <code>pulsar-spark</code> library in your Java configuration.</p>
@@ -86,7 +86,7 @@ JavaReceiverInputDStream&lt;<span class="hljs-keyword">byte</span>[]&gt; msgs =
 <h2><a class="anchor" aria-hidden="true" id="example"></a><a href="#example" 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>You can find a complete example <a href="https://github.com/apache/incubator-pulsar/tree/master/pulsar-spark/src/test/java/org/apache/pulsar/spark/example/SparkStreamingPulsarReceiverExample.java">here</a>.
 In this example, the number of messages which contain the string &quot;Pulsar&quot; in received messages is counted.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/adaptors-kafka">← Pulsar adaptor for Apache Kafka</a><a class="docs-next button" href="/docs/en/adaptors-storm">Pulsar adaptor for Apache Storm →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href="#gradle">Gradle</a></li></ul></li><li><a href="#usage">Usag [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/adaptors-kafka"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/adaptors-storm"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</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/en/adaptors-spark/index.html b/content/docs/en/adaptors-spark/index.html
index b236790..22b4035 100644
--- a/content/docs/en/adaptors-spark/index.html
+++ b/content/docs/en/adaptors-spark/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-spark.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Spark</h1></header><article><div><span><p>The Spark Streaming receiver for Pulsar is a custom receiver that enables Apache <a href=" [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-spark.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Spark</h1></header><article><div><span><p>The Spark Streaming receiver for Pulsar is a custom receiver that enables [...]
 <p>An application can receive data in <a href="https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds">Resilient Distributed Dataset</a> (RDD) format via the Spark Streaming Pulsar receiver and can process it in a variety of ways.</p>
 <h2><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>To use the receiver, include a dependency for the <code>pulsar-spark</code> library in your Java configuration.</p>
@@ -86,7 +86,7 @@ JavaReceiverInputDStream&lt;<span class="hljs-keyword">byte</span>[]&gt; msgs =
 <h2><a class="anchor" aria-hidden="true" id="example"></a><a href="#example" 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>You can find a complete example <a href="https://github.com/apache/incubator-pulsar/tree/master/pulsar-spark/src/test/java/org/apache/pulsar/spark/example/SparkStreamingPulsarReceiverExample.java">here</a>.
 In this example, the number of messages which contain the string &quot;Pulsar&quot; in received messages is counted.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/adaptors-kafka">← Pulsar adaptor for Apache Kafka</a><a class="docs-next button" href="/docs/en/adaptors-storm">Pulsar adaptor for Apache Storm →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href="#gradle">Gradle</a></li></ul></li><li><a href="#usage">Usag [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/adaptors-kafka"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/adaptors-storm"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</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/en/adaptors-storm.html b/content/docs/en/adaptors-storm.html
index efb49a6..51a6f89 100644
--- a/content/docs/en/adaptors-storm.html
+++ b/content/docs/en/adaptors-storm.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-storm.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Storm</h1></header><article><div><span><p>Pulsar Storm is an adaptor for integrating with <a href="http://storm.apache.org/">Apache  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-storm.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Storm</h1></header><article><div><span><p>Pulsar Storm is an adaptor for integrating with <a href="http://storm.apa [...]
 <p>An application can inject data into a Storm topology via a generic Pulsar spout, as well as consume data from a Storm topology via a generic Pulsar bolt.</p>
 <h2><a class="anchor" aria-hidden="true" id="using-the-pulsar-storm-adaptor"></a><a href="#using-the-pulsar-storm-adaptor" 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 1 [...]
 <p>Include dependency for Pulsar Storm Adaptor:</p>
@@ -126,7 +126,7 @@ PulsarBolt bolt = <span class="hljs-keyword">new</span> PulsarBolt(boltConf, cli
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="example"></a><a href="#example" 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>You can find a complete example <a href="https://github.com/apache/incubator-pulsar/tree/master/pulsar-storm/src/test/java/org/apache/pulsar/storm/example/StormExample.java">here</a>.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/adaptors-spark">← Pulsar adaptor for Apache Spark</a><a class="docs-next button" href="/docs/en/cookbooks-tiered-storage">Tiered Storage →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-storm-adaptor">Using the Pulsar Storm Adaptor</a></li><li><a href="#pulsar-spout">Pulsar Spout</a></li><li><a href="#pulsar-bolt">Pulsar Bolt</a></li><li> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/adaptors-spark"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-tiered-storage"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-storm-adaptor">Using the Pulsar Storm Adaptor</a></li><li><a href="#pulsar-spout">Pu [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/adaptors-storm/index.html b/content/docs/en/adaptors-storm/index.html
index efb49a6..51a6f89 100644
--- a/content/docs/en/adaptors-storm/index.html
+++ b/content/docs/en/adaptors-storm/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-storm.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Storm</h1></header><article><div><span><p>Pulsar Storm is an adaptor for integrating with <a href="http://storm.apache.org/">Apache  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-storm.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Storm</h1></header><article><div><span><p>Pulsar Storm is an adaptor for integrating with <a href="http://storm.apa [...]
 <p>An application can inject data into a Storm topology via a generic Pulsar spout, as well as consume data from a Storm topology via a generic Pulsar bolt.</p>
 <h2><a class="anchor" aria-hidden="true" id="using-the-pulsar-storm-adaptor"></a><a href="#using-the-pulsar-storm-adaptor" 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 1 [...]
 <p>Include dependency for Pulsar Storm Adaptor:</p>
@@ -126,7 +126,7 @@ PulsarBolt bolt = <span class="hljs-keyword">new</span> PulsarBolt(boltConf, cli
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="example"></a><a href="#example" 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>You can find a complete example <a href="https://github.com/apache/incubator-pulsar/tree/master/pulsar-storm/src/test/java/org/apache/pulsar/storm/example/StormExample.java">here</a>.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/adaptors-spark">← Pulsar adaptor for Apache Spark</a><a class="docs-next button" href="/docs/en/cookbooks-tiered-storage">Tiered Storage →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-storm-adaptor">Using the Pulsar Storm Adaptor</a></li><li><a href="#pulsar-spout">Pulsar Spout</a></li><li><a href="#pulsar-bolt">Pulsar Bolt</a></li><li> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/adaptors-spark"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-tiered-storage"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-storm-adaptor">Using the Pulsar Storm Adaptor</a></li><li><a href="#pulsar-spout">Pu [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-brokers.html b/content/docs/en/admin-api-brokers.html
index 3dbfab4..a7d9448 100644
--- a/content/docs/en/admin-api-brokers.html
+++ b/content/docs/en/admin-api-brokers.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-brokers.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Brokers</h1></header><article><div><span><p>Pulsar brokers consist of two components:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-brokers.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Brokers</h1></header><article><div><span><p>Pulsar brokers consist of two components:</p>
 <ol>
 <li>An HTTP server exposing a <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
  interface administration and <a href="/docs/en/reference-terminology#topic">topic</a> lookup.</li>
@@ -140,7 +140,7 @@ brokerShutdownTimeoutMs:100
 <h4><a class="anchor" aria-hidden="true" id="java-4"></a><a href="#java-4" 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. [...]
 <pre><code class="hljs css language-java">admin.brokers().getAllDynamicConfigurations();
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-tenants">← Managing Tenants</a><a class="docs-next button" href="/docs/en/admin-api-namespaces">Managing Namespaces →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#brokers-resources">Brokers resources</a><ul class="toc-headings"><li><a href="#list-active-brokers">List active brokers</a></li><li><a href="#dynamic-broker-configuration">Dynamic br [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-tenants"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-namespaces"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers-resources">Brokers resources</a><ul class="toc-headings"><li><a href="#list-active-brokers">Li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-brokers/index.html b/content/docs/en/admin-api-brokers/index.html
index 3dbfab4..a7d9448 100644
--- a/content/docs/en/admin-api-brokers/index.html
+++ b/content/docs/en/admin-api-brokers/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-brokers.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Brokers</h1></header><article><div><span><p>Pulsar brokers consist of two components:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-brokers.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Brokers</h1></header><article><div><span><p>Pulsar brokers consist of two components:</p>
 <ol>
 <li>An HTTP server exposing a <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
  interface administration and <a href="/docs/en/reference-terminology#topic">topic</a> lookup.</li>
@@ -140,7 +140,7 @@ brokerShutdownTimeoutMs:100
 <h4><a class="anchor" aria-hidden="true" id="java-4"></a><a href="#java-4" 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. [...]
 <pre><code class="hljs css language-java">admin.brokers().getAllDynamicConfigurations();
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-tenants">← Managing Tenants</a><a class="docs-next button" href="/docs/en/admin-api-namespaces">Managing Namespaces →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#brokers-resources">Brokers resources</a><ul class="toc-headings"><li><a href="#list-active-brokers">List active brokers</a></li><li><a href="#dynamic-broker-configuration">Dynamic br [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-tenants"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-namespaces"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers-resources">Brokers resources</a><ul class="toc-headings"><li><a href="#list-active-brokers">Li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-clusters.html b/content/docs/en/admin-api-clusters.html
index 7df31a7..b35a7ff 100644
--- a/content/docs/en/admin-api-clusters.html
+++ b/content/docs/en/admin-api-clusters.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-clusters.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar clusters consist of one or more Pulsar <a href="/docs/en/reference-terminology#broker">broker [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-clusters.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar clusters consist of one or more Pulsar <a href="/docs/en/reference-terminolo [...]
 servers (aka <a href="/docs/en/reference-terminology#bookie">bookies</a>), and a <a href="https://zookeeper.apache.org">ZooKeeper</a> cluster that provides configuration and coordination management.</p>
 <p>Clusters can be managed via:</p>
 <ul>
@@ -184,7 +184,7 @@ cluster-2
 <h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" 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. [...]
 <pre><code class="hljs css language-java">admin.clusters().updatePeerClusterNames(clusterName, peerClusterList);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-overview">← The Pulsar admin interface</a><a class="docs-next button" href="/docs/en/admin-api-tenants">Managing Tenants →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#clusters-resources">Clusters resources</a><ul class="toc-headings"><li><a href="#provision">Provision</a></li><li><a href="#initialize-cluster-metadata">Initialize cluster metad [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-overview"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-tenants"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#clusters-resources">Clusters resources</a><ul class="toc-headings"><li><a href="#provision">Provision</a [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-clusters/index.html b/content/docs/en/admin-api-clusters/index.html
index 7df31a7..b35a7ff 100644
--- a/content/docs/en/admin-api-clusters/index.html
+++ b/content/docs/en/admin-api-clusters/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-clusters.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar clusters consist of one or more Pulsar <a href="/docs/en/reference-terminology#broker">broker [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-clusters.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar clusters consist of one or more Pulsar <a href="/docs/en/reference-terminolo [...]
 servers (aka <a href="/docs/en/reference-terminology#bookie">bookies</a>), and a <a href="https://zookeeper.apache.org">ZooKeeper</a> cluster that provides configuration and coordination management.</p>
 <p>Clusters can be managed via:</p>
 <ul>
@@ -184,7 +184,7 @@ cluster-2
 <h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" 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. [...]
 <pre><code class="hljs css language-java">admin.clusters().updatePeerClusterNames(clusterName, peerClusterList);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-overview">← The Pulsar admin interface</a><a class="docs-next button" href="/docs/en/admin-api-tenants">Managing Tenants →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#clusters-resources">Clusters resources</a><ul class="toc-headings"><li><a href="#provision">Provision</a></li><li><a href="#initialize-cluster-metadata">Initialize cluster metad [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-overview"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-tenants"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#clusters-resources">Clusters resources</a><ul class="toc-headings"><li><a href="#provision">Provision</a [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-namespaces.html b/content/docs/en/admin-api-namespaces.html
index 5fa17b5..bfec40e 100644
--- a/content/docs/en/admin-api-namespaces.html
+++ b/content/docs/en/admin-api-namespaces.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-namespaces.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Namespaces</h1></header><article><div><span><p>Pulsar <a href="/docs/en/reference-terminology#namespace">namespaces</a> are logical groupings o [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-namespaces.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Namespaces</h1></header><article><div><span><p>Pulsar <a href="/docs/en/reference-terminology#namespace">namespaces</a> are lo [...]
 <p>Namespaces can be managed via:</p>
 <ul>
 <li>The <a href="/docs/en/pulsar-admin#clusters"><code>namespaces</code></a> command of the <a href="/docs/en/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
@@ -393,7 +393,7 @@ disables the throttling.</p>
 </code></pre>
 <h4><a class="anchor" aria-hidden="true" id="rest-api-3"></a><a href="#rest-api-3" 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 [...]
 <h4><a class="anchor" aria-hidden="true" id="java-22"></a><a href="#java-22" 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- [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-brokers">← Managing Brokers</a><a class="docs-next button" href="/docs/en/admin-api-permissions">Managing permissions →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#namespaces-resources">Namespaces resources</a><ul class="toc-headings"><li><a href="#create">Create</a></li><li><a href="#get-policies">Get policies</a></li><li><a href="#list-name [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-brokers"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-permissions"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#namespaces-resources">Namespaces resources</a><ul class="toc-headings"><li><a href="#create">Create</ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-namespaces/index.html b/content/docs/en/admin-api-namespaces/index.html
index 5fa17b5..bfec40e 100644
--- a/content/docs/en/admin-api-namespaces/index.html
+++ b/content/docs/en/admin-api-namespaces/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-namespaces.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Namespaces</h1></header><article><div><span><p>Pulsar <a href="/docs/en/reference-terminology#namespace">namespaces</a> are logical groupings o [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-namespaces.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Namespaces</h1></header><article><div><span><p>Pulsar <a href="/docs/en/reference-terminology#namespace">namespaces</a> are lo [...]
 <p>Namespaces can be managed via:</p>
 <ul>
 <li>The <a href="/docs/en/pulsar-admin#clusters"><code>namespaces</code></a> command of the <a href="/docs/en/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
@@ -393,7 +393,7 @@ disables the throttling.</p>
 </code></pre>
 <h4><a class="anchor" aria-hidden="true" id="rest-api-3"></a><a href="#rest-api-3" 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 [...]
 <h4><a class="anchor" aria-hidden="true" id="java-22"></a><a href="#java-22" 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- [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-brokers">← Managing Brokers</a><a class="docs-next button" href="/docs/en/admin-api-permissions">Managing permissions →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#namespaces-resources">Namespaces resources</a><ul class="toc-headings"><li><a href="#create">Create</a></li><li><a href="#get-policies">Get policies</a></li><li><a href="#list-name [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-brokers"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-permissions"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#namespaces-resources">Namespaces resources</a><ul class="toc-headings"><li><a href="#create">Create</ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-non-persistent-topics.html b/content/docs/en/admin-api-non-persistent-topics.html
index b23f9cf..232e68e 100644
--- a/content/docs/en/admin-api-non-persistent-topics.html
+++ b/content/docs/en/admin-api-non-persistent-topics.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-non-persistent-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing non-persistent topics</h1></header><article><div><span><p>Non-persistent can be used in applications that only want to consume real  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-non-persistent-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing non-persistent topics</h1></header><article><div><span><p>Non-persistent can be used in applications that only want [...]
 do not need persistent guarantee that can also reduce message-publish latency by removing overhead of
 persisting messages.</p>
 <p>In all of the instructions and commands below, the topic name structure is:</p>
@@ -219,7 +219,7 @@ admin.nonPersistentTopics().getPartitionedTopicMetadata(topicName);
 <pre><code class="hljs css language-java">String topic = <span class="hljs-string">"non-persistent://my-tenantmy-namespace/my-topic"</span>;
 admin.nonPersistentTopics().unload(topic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-persistent-topics">← Managing persistent topics</a><a class="docs-next button" href="/docs/en/admin-api-partitioned-topics">Managing partitioned topics →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#non-persistent-topics-resources">Non-persistent topics resources</a><ul class="toc-headings"><li><a href="#get-stats">Get stats</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-persistent-topics"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-partitioned-topics"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#non-persistent-topics-resources">Non-persistent topics resources</a><ul class="toc-h [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-non-persistent-topics/index.html b/content/docs/en/admin-api-non-persistent-topics/index.html
index b23f9cf..232e68e 100644
--- a/content/docs/en/admin-api-non-persistent-topics/index.html
+++ b/content/docs/en/admin-api-non-persistent-topics/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-non-persistent-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing non-persistent topics</h1></header><article><div><span><p>Non-persistent can be used in applications that only want to consume real  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-non-persistent-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing non-persistent topics</h1></header><article><div><span><p>Non-persistent can be used in applications that only want [...]
 do not need persistent guarantee that can also reduce message-publish latency by removing overhead of
 persisting messages.</p>
 <p>In all of the instructions and commands below, the topic name structure is:</p>
@@ -219,7 +219,7 @@ admin.nonPersistentTopics().getPartitionedTopicMetadata(topicName);
 <pre><code class="hljs css language-java">String topic = <span class="hljs-string">"non-persistent://my-tenantmy-namespace/my-topic"</span>;
 admin.nonPersistentTopics().unload(topic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-persistent-topics">← Managing persistent topics</a><a class="docs-next button" href="/docs/en/admin-api-partitioned-topics">Managing partitioned topics →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#non-persistent-topics-resources">Non-persistent topics resources</a><ul class="toc-headings"><li><a href="#get-stats">Get stats</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-persistent-topics"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-partitioned-topics"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#non-persistent-topics-resources">Non-persistent topics resources</a><ul class="toc-h [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-overview.html b/content/docs/en/admin-api-overview.html
index 58bea66..4cd6260 100644
--- a/content/docs/en/admin-api-overview.html
+++ b/content/docs/en/admin-api-overview.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar admin interface</h1></header><article><div><span><p>The Pulsar admin interface enables you to manage all of the important entities in a Pulsar  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar admin interface</h1></header><article><div><span><p>The Pulsar admin interface enables you to manage all of the important enti [...]
 <p>You can currently interact with the admin interface via:</p>
 <ul>
 <li>Making HTTP calls against the admin <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
@@ -108,7 +108,7 @@ config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
 
 PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-websocket">← Pulsar&#x27;s WebSocket API</a><a class="docs-next button" href="/docs/en/admin-api-clusters">Managing Clusters →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#admin-setup">Admin setup</a><ul class="toc-headings"><li><a href="#pulsar-admin">pulsar-admin</a></li><li><a href="#rest-api">REST API</a></li><li><a href="#java-admi [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-websocket"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-clusters"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#admin-setup">Admin setup</a><ul class="toc-headings"><li><a href="#pulsar-admin">pulsar-admin</ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-overview/index.html b/content/docs/en/admin-api-overview/index.html
index 58bea66..4cd6260 100644
--- a/content/docs/en/admin-api-overview/index.html
+++ b/content/docs/en/admin-api-overview/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar admin interface</h1></header><article><div><span><p>The Pulsar admin interface enables you to manage all of the important entities in a Pulsar  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar admin interface</h1></header><article><div><span><p>The Pulsar admin interface enables you to manage all of the important enti [...]
 <p>You can currently interact with the admin interface via:</p>
 <ul>
 <li>Making HTTP calls against the admin <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
@@ -108,7 +108,7 @@ config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
 
 PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-websocket">← Pulsar&#x27;s WebSocket API</a><a class="docs-next button" href="/docs/en/admin-api-clusters">Managing Clusters →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#admin-setup">Admin setup</a><ul class="toc-headings"><li><a href="#pulsar-admin">pulsar-admin</a></li><li><a href="#rest-api">REST API</a></li><li><a href="#java-admi [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-websocket"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-clusters"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#admin-setup">Admin setup</a><ul class="toc-headings"><li><a href="#pulsar-admin">pulsar-admin</ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-partitioned-topics.html b/content/docs/en/admin-api-partitioned-topics.html
index d17cefc..406ec9e 100644
--- a/content/docs/en/admin-api-partitioned-topics.html
+++ b/content/docs/en/admin-api-partitioned-topics.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-partitioned-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing partitioned topics</h1></header><article><div><span><p>You can use Pulsar's <a href="/docs/en/admin-api-overview">admin API</a> to crea [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-partitioned-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing partitioned topics</h1></header><article><div><span><p>You can use Pulsar's <a href="/docs/en/admin-api-overview">admi [...]
 <p>In all of the instructions and commands below, the topic name structure is:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
@@ -302,7 +302,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-non-persistent-topics">← Managing non-persistent topics</a><a class="docs-next button" href="/docs/en/admin-api-schemas">Managing Schemas →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-headings"><li><a href="#create">Create</a></li><li><a href="#get-metadata">Get meta [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-headings"><li> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-partitioned-topics/index.html b/content/docs/en/admin-api-partitioned-topics/index.html
index d17cefc..406ec9e 100644
--- a/content/docs/en/admin-api-partitioned-topics/index.html
+++ b/content/docs/en/admin-api-partitioned-topics/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-partitioned-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing partitioned topics</h1></header><article><div><span><p>You can use Pulsar's <a href="/docs/en/admin-api-overview">admin API</a> to crea [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-partitioned-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing partitioned topics</h1></header><article><div><span><p>You can use Pulsar's <a href="/docs/en/admin-api-overview">admi [...]
 <p>In all of the instructions and commands below, the topic name structure is:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
@@ -302,7 +302,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-non-persistent-topics">← Managing non-persistent topics</a><a class="docs-next button" href="/docs/en/admin-api-schemas">Managing Schemas →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-headings"><li><a href="#create">Create</a></li><li><a href="#get-metadata">Get meta [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-headings"><li> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-permissions.html b/content/docs/en/admin-api-permissions.html
index e2bcfb0..da4a717 100644
--- a/content/docs/en/admin-api-permissions.html
+++ b/content/docs/en/admin-api-permissions.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-permissions.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing permissions</h1></header><article><div><span><p>Permissions in Pulsar are managed at the <a href="/docs/en/reference-terminology#namespace">na [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-permissions.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing permissions</h1></header><article><div><span><p>Permissions in Pulsar are managed at the <a href="/docs/en/reference-terminol [...]
 (that is, within <a href="/docs/en/reference-terminology#tenant">tenants</a> and <a href="/docs/en/reference-terminology#cluster">clusters</a>).</p>
 <h2><a class="anchor" aria-hidden="true" id="grant-permissions"></a><a href="#grant-permissions" 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- [...]
 <p>You can grant permissions to specific roles for lists of operations such as <code>produce</code> and <code>consume</code>.</p>
@@ -112,7 +112,7 @@ Roles <code>my.1.role</code>, <code>my.2.role</code>, <code>my.foo.role</code>,
 <h3><a class="anchor" aria-hidden="true" id="java-2"></a><a href="#java-2" 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. [...]
 <pre><code class="hljs css language-java">admin.namespaces().revokePermissionsOnNamespace(namespace, role);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-namespaces">← Managing Namespaces</a><a class="docs-next button" href="/docs/en/admin-api-persistent-topics">Managing persistent topics →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#grant-permissions">Grant permissions</a><ul class="toc-headings"><li><a href="#pulsar-admin">pulsar-admin</a></li><li><a href="#rest-api">REST API</a></li><li><a  [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-namespaces"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-persistent-topics"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#grant-permissions">Grant permissions</a><ul class="toc-headings"><li><a href="#pulsar-admin" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-permissions/index.html b/content/docs/en/admin-api-permissions/index.html
index e2bcfb0..da4a717 100644
--- a/content/docs/en/admin-api-permissions/index.html
+++ b/content/docs/en/admin-api-permissions/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-permissions.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing permissions</h1></header><article><div><span><p>Permissions in Pulsar are managed at the <a href="/docs/en/reference-terminology#namespace">na [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-permissions.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing permissions</h1></header><article><div><span><p>Permissions in Pulsar are managed at the <a href="/docs/en/reference-terminol [...]
 (that is, within <a href="/docs/en/reference-terminology#tenant">tenants</a> and <a href="/docs/en/reference-terminology#cluster">clusters</a>).</p>
 <h2><a class="anchor" aria-hidden="true" id="grant-permissions"></a><a href="#grant-permissions" 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- [...]
 <p>You can grant permissions to specific roles for lists of operations such as <code>produce</code> and <code>consume</code>.</p>
@@ -112,7 +112,7 @@ Roles <code>my.1.role</code>, <code>my.2.role</code>, <code>my.foo.role</code>,
 <h3><a class="anchor" aria-hidden="true" id="java-2"></a><a href="#java-2" 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. [...]
 <pre><code class="hljs css language-java">admin.namespaces().revokePermissionsOnNamespace(namespace, role);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-namespaces">← Managing Namespaces</a><a class="docs-next button" href="/docs/en/admin-api-persistent-topics">Managing persistent topics →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#grant-permissions">Grant permissions</a><ul class="toc-headings"><li><a href="#pulsar-admin">pulsar-admin</a></li><li><a href="#rest-api">REST API</a></li><li><a  [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-namespaces"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-persistent-topics"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#grant-permissions">Grant permissions</a><ul class="toc-headings"><li><a href="#pulsar-admin" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-persistent-topics.html b/content/docs/en/admin-api-persistent-topics.html
index 267641f..0f1a96e 100644
--- a/content/docs/en/admin-api-persistent-topics.html
+++ b/content/docs/en/admin-api-persistent-topics.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-persistent-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing persistent topics</h1></header><article><div><span><p>Persistent helps to access topic which is a logical endpoint for publishing and co [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-persistent-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing persistent topics</h1></header><article><div><span><p>Persistent helps to access topic which is a logical endpoint for  [...]
 <p>In all of the instructions and commands below, the topic name structure is:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
@@ -428,7 +428,7 @@ admin.persistentTopics().getSubscriptions(topic);
 String subscriptionName = <span class="hljs-string">"my-subscription"</span>;
 admin.persistentTopics().deleteSubscription(topic, subscriptionName);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-permissions">← Managing permissions</a><a class="docs-next button" href="/docs/en/admin-api-non-persistent-topics">Managing non-persistent topics →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#persistent-topics-resources">Persistent topics resources</a><ul class="toc-headings"><li><a href="#list-of-topics">List of topics</a></li><li><a href="# [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-permissions"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-non-persistent-topics"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#persistent-topics-resources">Persistent topics resources</a><ul class="toc-headings"><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-persistent-topics/index.html b/content/docs/en/admin-api-persistent-topics/index.html
index 267641f..0f1a96e 100644
--- a/content/docs/en/admin-api-persistent-topics/index.html
+++ b/content/docs/en/admin-api-persistent-topics/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-persistent-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing persistent topics</h1></header><article><div><span><p>Persistent helps to access topic which is a logical endpoint for publishing and co [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-persistent-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing persistent topics</h1></header><article><div><span><p>Persistent helps to access topic which is a logical endpoint for  [...]
 <p>In all of the instructions and commands below, the topic name structure is:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
@@ -428,7 +428,7 @@ admin.persistentTopics().getSubscriptions(topic);
 String subscriptionName = <span class="hljs-string">"my-subscription"</span>;
 admin.persistentTopics().deleteSubscription(topic, subscriptionName);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-permissions">← Managing permissions</a><a class="docs-next button" href="/docs/en/admin-api-non-persistent-topics">Managing non-persistent topics →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#persistent-topics-resources">Persistent topics resources</a><ul class="toc-headings"><li><a href="#list-of-topics">List of topics</a></li><li><a href="# [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-permissions"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-non-persistent-topics"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#persistent-topics-resources">Persistent topics resources</a><ul class="toc-headings"><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-schemas.html b/content/docs/en/admin-api-schemas.html
index 98d1a7e..8780656 100644
--- a/content/docs/en/admin-api-schemas.html
+++ b/content/docs/en/admin-api-schemas.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-schemas.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Schemas</h1></header><article><div><span><p>Schemas, like other entities in Pulsar, can be managed using the <a href="/docs/en/admin-api-overview" [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-schemas.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Schemas</h1></header><article><div><span><p>Schemas, like other entities in Pulsar, can be managed using the <a href="/docs/en/ad [...]
 <h2><a class="anchor" aria-hidden="true" id="schema-resources"></a><a href="#schema-resources" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
@@ -102,14 +102,14 @@ might be the Git hash associated with the schema, an environment string like <co
 <p><a href="https://pulsar.incubator.apache.org/en/admin-rest-api#operation/getSchema"><b>GET</b> <i>/admin/v2/schemas/:tenant/:namespace/:topic/schema/:version</i></a>
 </p>
 <h3><a class="anchor" aria-hidden="true" id="delete-schema"></a><a href="#delete-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-.8 [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-adnin"></a><a href="#pulsar-adnin" 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. [...]
+<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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>You can delete a schema using the <a href="/docs/en/pulsar-admin#delete-8"><code>delete</code></a> subcommand.</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin schemas delete &lt;topic-name&gt;</span>
 </code></pre>
 <h4><a class="anchor" aria-hidden="true" id="rest-api-1"></a><a href="#rest-api-1" 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><a href="https://pulsar.incubator.apache.org/en/admin-rest-api#operation/deleteSchema"><b>DELETE</b> <i>/admin/v2/schemas/:tenant/:namespace/:topic/schema</i></a>
 </p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-partitioned-topics">← Managing partitioned topics</a><a class="docs-next button" href="/docs/en/adaptors-kafka">Pulsar adaptor for Apache Kafka →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#schema-resources">Schema resources</a><ul class="toc-headings"><li><a href="#upload-schema">Upload Schema</a></li><li><a href="#get-schema">Get Schema</a> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-partitioned-topics"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/adaptors-kafka"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#schema-resources">Schema resources</a><ul class="toc-headings"><li><a href="#upload-schema">Uploa [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-schemas/index.html b/content/docs/en/admin-api-schemas/index.html
index 98d1a7e..8780656 100644
--- a/content/docs/en/admin-api-schemas/index.html
+++ b/content/docs/en/admin-api-schemas/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-schemas.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Schemas</h1></header><article><div><span><p>Schemas, like other entities in Pulsar, can be managed using the <a href="/docs/en/admin-api-overview" [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-schemas.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Schemas</h1></header><article><div><span><p>Schemas, like other entities in Pulsar, can be managed using the <a href="/docs/en/ad [...]
 <h2><a class="anchor" aria-hidden="true" id="schema-resources"></a><a href="#schema-resources" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
@@ -102,14 +102,14 @@ might be the Git hash associated with the schema, an environment string like <co
 <p><a href="https://pulsar.incubator.apache.org/en/admin-rest-api#operation/getSchema"><b>GET</b> <i>/admin/v2/schemas/:tenant/:namespace/:topic/schema/:version</i></a>
 </p>
 <h3><a class="anchor" aria-hidden="true" id="delete-schema"></a><a href="#delete-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-.8 [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-adnin"></a><a href="#pulsar-adnin" 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. [...]
+<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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>You can delete a schema using the <a href="/docs/en/pulsar-admin#delete-8"><code>delete</code></a> subcommand.</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin schemas delete &lt;topic-name&gt;</span>
 </code></pre>
 <h4><a class="anchor" aria-hidden="true" id="rest-api-1"></a><a href="#rest-api-1" 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><a href="https://pulsar.incubator.apache.org/en/admin-rest-api#operation/deleteSchema"><b>DELETE</b> <i>/admin/v2/schemas/:tenant/:namespace/:topic/schema</i></a>
 </p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-partitioned-topics">← Managing partitioned topics</a><a class="docs-next button" href="/docs/en/adaptors-kafka">Pulsar adaptor for Apache Kafka →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#schema-resources">Schema resources</a><ul class="toc-headings"><li><a href="#upload-schema">Upload Schema</a></li><li><a href="#get-schema">Get Schema</a> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-partitioned-topics"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/adaptors-kafka"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#schema-resources">Schema resources</a><ul class="toc-headings"><li><a href="#upload-schema">Uploa [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-tenants.html b/content/docs/en/admin-api-tenants.html
index 4d0df0b..6f1025d 100644
--- a/content/docs/en/admin-api-tenants.html
+++ b/content/docs/en/admin-api-tenants.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-tenants.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Tenants</h1></header><article><div><span><p>Tenants, like namespaces, can be managed using the <a href="/docs/en/admin-api-overview">admin API</a> [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-tenants.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Tenants</h1></header><article><div><span><p>Tenants, like namespaces, can be managed using the <a href="/docs/en/admin-api-overvi [...]
 <ul>
 <li>Admin roles</li>
 <li>Allowed clusters</li>
@@ -88,14 +88,14 @@ $</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
 }
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="delete"></a><a href="#delete" 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. [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-adnin"></a><a href="#pulsar-adnin" 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. [...]
+<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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>You can delete a tenant using the <a href="/docs/en/pulsar-admin#tenants-delete"><code>delete</code></a> subcommand and specifying the tenant name:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="updating"></a><a href="#updating" 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  [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
+<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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>You can update a tenant's configuration using the <a href="/docs/en/pulsar-admin#tenants-update"><code>update</code></a> subcommand</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-clusters">← Managing Clusters</a><a class="docs-next button" href="/docs/en/admin-api-brokers">Managing Brokers →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#tenant-resources">Tenant resources</a><ul class="toc-headings"><li><a href="#list">List</a></li><li><a href="#create">Create</a></li><li><a href="#get-configuration">Get configuration</a [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-clusters"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-brokers"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#tenant-resources">Tenant resources</a><ul class="toc-headings"><li><a href="#list">List</a></li><li><a h [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-tenants/index.html b/content/docs/en/admin-api-tenants/index.html
index 4d0df0b..6f1025d 100644
--- a/content/docs/en/admin-api-tenants/index.html
+++ b/content/docs/en/admin-api-tenants/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-tenants.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Tenants</h1></header><article><div><span><p>Tenants, like namespaces, can be managed using the <a href="/docs/en/admin-api-overview">admin API</a> [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-tenants.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Tenants</h1></header><article><div><span><p>Tenants, like namespaces, can be managed using the <a href="/docs/en/admin-api-overvi [...]
 <ul>
 <li>Admin roles</li>
 <li>Allowed clusters</li>
@@ -88,14 +88,14 @@ $</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
 }
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="delete"></a><a href="#delete" 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. [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-adnin"></a><a href="#pulsar-adnin" 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. [...]
+<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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>You can delete a tenant using the <a href="/docs/en/pulsar-admin#tenants-delete"><code>delete</code></a> subcommand and specifying the tenant name:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="updating"></a><a href="#updating" 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  [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
+<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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>You can update a tenant's configuration using the <a href="/docs/en/pulsar-admin#tenants-update"><code>update</code></a> subcommand</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-clusters">← Managing Clusters</a><a class="docs-next button" href="/docs/en/admin-api-brokers">Managing Brokers →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#tenant-resources">Tenant resources</a><ul class="toc-headings"><li><a href="#list">List</a></li><li><a href="#create">Create</a></li><li><a href="#get-configuration">Get configuration</a [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-clusters"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-brokers"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#tenant-resources">Tenant resources</a><ul class="toc-headings"><li><a href="#list">List</a></li><li><a h [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/administration-dashboard.html b/content/docs/en/administration-dashboard.html
index 81822b0..ea5cf3d 100644
--- a/content/docs/en/administration-dashboard.html
+++ b/content/docs/en/administration-dashboard.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-dashboard.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar dashboard</h1></header><article><div><span><p>The Pulsar dashboard is a web application that enables users to monitor current stats for a [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-dashboard.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar dashboard</h1></header><article><div><span><p>The Pulsar dashboard is a web application that enables users to monitor cu [...]
 <p>The dashboard is a data collector that polls stats from all the brokers in a Pulsar instance (across multiple clusters) and stores all the information in a <a href="https://www.postgresql.org/">PostgreSQL</a> database.</p>
 <p>A <a href="https://www.djangoproject.com">Django</a> web app is used to render the collected data.</p>
 <h2><a class="anchor" aria-hidden="true" id="install"></a><a href="#install" 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- [...]
@@ -73,7 +73,7 @@ explicitely set the advertise address to the host IP. For example:</p>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="known-issues"></a><a href="#known-issues" 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. [...]
 <p>Pulsar <a href="/docs/en/security-overview#authentication-providers">authentication</a> is not supported at this point. The dashboard's data collector does not pass any authentication-related data and will be denied access if the Pulsar broker requires authentication.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-geo">← Pulsar geo-replication</a><a class="docs-next button" href="/docs/en/administration-stats">Pulsar stats →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#install">Install</a><ul class="toc-headings"><li><a href="#known-issues">Known issues</a></li></ul></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyri [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-geo"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/administration-stats"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#install">Install</a><ul class="toc-headings"><li><a href="#known-issues">Known issues</a></li></ul></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/administration-dashboard/index.html b/content/docs/en/administration-dashboard/index.html
index 81822b0..ea5cf3d 100644
--- a/content/docs/en/administration-dashboard/index.html
+++ b/content/docs/en/administration-dashboard/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-dashboard.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar dashboard</h1></header><article><div><span><p>The Pulsar dashboard is a web application that enables users to monitor current stats for a [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-dashboard.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar dashboard</h1></header><article><div><span><p>The Pulsar dashboard is a web application that enables users to monitor cu [...]
 <p>The dashboard is a data collector that polls stats from all the brokers in a Pulsar instance (across multiple clusters) and stores all the information in a <a href="https://www.postgresql.org/">PostgreSQL</a> database.</p>
 <p>A <a href="https://www.djangoproject.com">Django</a> web app is used to render the collected data.</p>
 <h2><a class="anchor" aria-hidden="true" id="install"></a><a href="#install" 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- [...]
@@ -73,7 +73,7 @@ explicitely set the advertise address to the host IP. For example:</p>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="known-issues"></a><a href="#known-issues" 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. [...]
 <p>Pulsar <a href="/docs/en/security-overview#authentication-providers">authentication</a> is not supported at this point. The dashboard's data collector does not pass any authentication-related data and will be denied access if the Pulsar broker requires authentication.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-geo">← Pulsar geo-replication</a><a class="docs-next button" href="/docs/en/administration-stats">Pulsar stats →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#install">Install</a><ul class="toc-headings"><li><a href="#known-issues">Known issues</a></li></ul></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyri [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-geo"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/administration-stats"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#install">Install</a><ul class="toc-headings"><li><a href="#known-issues">Known issues</a></li></ul></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/administration-geo.html b/content/docs/en/administration-geo.html
index 7bc6d9b..fd8017b 100644
--- a/content/docs/en/administration-geo.html
+++ b/content/docs/en/administration-geo.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-geo.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar geo-replication</h1></header><article><div><span><p><em>Geo-replication</em> is the replication of persistently stored message data across multiple [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-geo.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar geo-replication</h1></header><article><div><span><p><em>Geo-replication</em> is the replication of persistently stored message dat [...]
 <h2><a class="anchor" aria-hidden="true" id="how-it-works"></a><a href="#how-it-works" 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. [...]
 <p>The diagram below illustrates the process of geo-replication across Pulsar clusters:</p>
 <p><img src="/docs/assets/geo-replication.png" alt="Replication Diagram"></p>
@@ -120,7 +120,7 @@ producer.newMessage()
 <p>In Pulsar, a topic is automatically deleted when it's no longer used, that is to say, when no producers or consumers are connected <em>and</em> there are no subscriptions <em>and</em> no more messages are kept for retention. For global topics, each region will use a fault-tolerant mechanism to decide when it's safe to delete the topic locally.</p>
 <p>You can explicitly disable topic garbage collection by setting <code>brokerDeleteInactiveTopicsEnabled</code> to <code>false</code> in your <a href="reference-configuration#broker">broker configuration</a>.</p>
 <p>To delete a global topic, close all producers and consumers on the topic and delete all its local subscriptions in every replication cluster. When Pulsar determines that no valid subscription for the topic remains across the system, it will garbage collect the topic.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-zk-bk">← ZooKeeper and BookKeeper administration</a><a class="docs-next button" href="/docs/en/administration-dashboard">The Pulsar dashboard →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#geo-replication-and-pulsar-properties">Geo-replication and Pulsar properties</a></li><li><a href="#loc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-zk-bk"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/administration-dashboard"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#geo-replication-and-pulsar-properties">Geo-rep [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/administration-geo/index.html b/content/docs/en/administration-geo/index.html
index 7bc6d9b..fd8017b 100644
--- a/content/docs/en/administration-geo/index.html
+++ b/content/docs/en/administration-geo/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-geo.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar geo-replication</h1></header><article><div><span><p><em>Geo-replication</em> is the replication of persistently stored message data across multiple [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-geo.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar geo-replication</h1></header><article><div><span><p><em>Geo-replication</em> is the replication of persistently stored message dat [...]
 <h2><a class="anchor" aria-hidden="true" id="how-it-works"></a><a href="#how-it-works" 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. [...]
 <p>The diagram below illustrates the process of geo-replication across Pulsar clusters:</p>
 <p><img src="/docs/assets/geo-replication.png" alt="Replication Diagram"></p>
@@ -120,7 +120,7 @@ producer.newMessage()
 <p>In Pulsar, a topic is automatically deleted when it's no longer used, that is to say, when no producers or consumers are connected <em>and</em> there are no subscriptions <em>and</em> no more messages are kept for retention. For global topics, each region will use a fault-tolerant mechanism to decide when it's safe to delete the topic locally.</p>
 <p>You can explicitly disable topic garbage collection by setting <code>brokerDeleteInactiveTopicsEnabled</code> to <code>false</code> in your <a href="reference-configuration#broker">broker configuration</a>.</p>
 <p>To delete a global topic, close all producers and consumers on the topic and delete all its local subscriptions in every replication cluster. When Pulsar determines that no valid subscription for the topic remains across the system, it will garbage collect the topic.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-zk-bk">← ZooKeeper and BookKeeper administration</a><a class="docs-next button" href="/docs/en/administration-dashboard">The Pulsar dashboard →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#geo-replication-and-pulsar-properties">Geo-replication and Pulsar properties</a></li><li><a href="#loc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-zk-bk"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/administration-dashboard"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#geo-replication-and-pulsar-properties">Geo-rep [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/administration-load-distribution.html b/content/docs/en/administration-load-distribution.html
index 99f59f2..fe26151 100644
--- a/content/docs/en/administration-load-distribution.html
+++ b/content/docs/en/administration-load-distribution.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-load-distribution.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar load distribution</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="load-distribution-across-pulsar-broke [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-load-distribution.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar load distribution</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="load-distribution-ac [...]
 <p>Pulsar is an horizontally scalable messaging system, so it is a core requirement that the traffic
 in a logical cluster must be spread across all the available Pulsar brokers, as evenly as possible.</p>
 <p>In most cases, this is true out of the box and one shouldn't worry about it. There are, though,
@@ -190,7 +190,7 @@ being slowed down.</p>
 loadBalancerOverrideBrokerNicSpeedGbps=
 </code></pre>
 <p>When the value is empty, Pulsar will use the value reported by the OS.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-stats">← Pulsar stats</a><a class="docs-next button" href="/docs/en/administration-proxy">The Pulsar proxy →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#load-distribution-across-pulsar-brokers">Load distribution across Pulsar brokers</a></li><li><a href="#pulsar-load-manager-architecture">Pulsar load manager architecture</a><ul class="to [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-stats"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/administration-proxy"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#load-distribution-across-pulsar-brokers">Load distribution across Pulsar brokers</a></li><li><a hre [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/administration-load-distribution/index.html b/content/docs/en/administration-load-distribution/index.html
index 99f59f2..fe26151 100644
--- a/content/docs/en/administration-load-distribution/index.html
+++ b/content/docs/en/administration-load-distribution/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-load-distribution.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar load distribution</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="load-distribution-across-pulsar-broke [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-load-distribution.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar load distribution</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="load-distribution-ac [...]
 <p>Pulsar is an horizontally scalable messaging system, so it is a core requirement that the traffic
 in a logical cluster must be spread across all the available Pulsar brokers, as evenly as possible.</p>
 <p>In most cases, this is true out of the box and one shouldn't worry about it. There are, though,
@@ -190,7 +190,7 @@ being slowed down.</p>
 loadBalancerOverrideBrokerNicSpeedGbps=
 </code></pre>
 <p>When the value is empty, Pulsar will use the value reported by the OS.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-stats">← Pulsar stats</a><a class="docs-next button" href="/docs/en/administration-proxy">The Pulsar proxy →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#load-distribution-across-pulsar-brokers">Load distribution across Pulsar brokers</a></li><li><a href="#pulsar-load-manager-architecture">Pulsar load manager architecture</a><ul class="to [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-stats"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/administration-proxy"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#load-distribution-across-pulsar-brokers">Load distribution across Pulsar brokers</a></li><li><a hre [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/administration-proxy.html b/content/docs/en/administration-proxy.html
index 8e99aa8..6975055 100644
--- a/content/docs/en/administration-proxy.html
+++ b/content/docs/en/administration-proxy.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-proxy.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar proxy</h1></header><article><div><span><p>The <a href="/docs/en/concepts-architecture-overview#pulsar-proxy">Pulsar proxy</a> is an optional  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-proxy.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar proxy</h1></header><article><div><span><p>The <a href="/docs/en/concepts-architecture-overview#pulsar-proxy">Pulsar proxy</a [...]
 <h2><a class="anchor" aria-hidden="true" id="running-the-proxy"></a><a href="#running-the-proxy" 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- [...]
 <p>In order to run the Pulsar proxy, you need to have both a local <a href="https://zookeeper.apache.org">ZooKeeper</a> and configuration store quorum set up for use by your Pulsar cluster. For instructions, see <a href="/docs/en/deploy-bare-metal">this document</a>. Once you have ZooKeeper set up and have connection strings for both ZooKeeper quorums, you can use the <a href="/docs/en/reference-cli-tools#pulsar-proxy"><code>proxy</code></a> command of the <a href="/docs/en/reference-cli [...]
 <p>To start the proxy:</p>
@@ -96,7 +96,7 @@ $ bin/pulsar proxy \
 <tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-load-distribution">← Pulsar load distribution</a><a class="docs-next button" href="/docs/en/security-overview">Pulsar Security Overview →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#running-the-proxy">Running the proxy</a></li><li><a href="#stopping-the-proxy">Stopping the proxy</a></li><li><a href="#proxy-frontends">Proxy frontends</a>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-load-distribution"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/security-overview"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#running-the-proxy">Running the proxy</a></li><li><a href="#stopping-the-proxy">Stopping th [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/administration-proxy/index.html b/content/docs/en/administration-proxy/index.html
index 8e99aa8..6975055 100644
--- a/content/docs/en/administration-proxy/index.html
+++ b/content/docs/en/administration-proxy/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-proxy.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar proxy</h1></header><article><div><span><p>The <a href="/docs/en/concepts-architecture-overview#pulsar-proxy">Pulsar proxy</a> is an optional  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-proxy.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar proxy</h1></header><article><div><span><p>The <a href="/docs/en/concepts-architecture-overview#pulsar-proxy">Pulsar proxy</a [...]
 <h2><a class="anchor" aria-hidden="true" id="running-the-proxy"></a><a href="#running-the-proxy" 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- [...]
 <p>In order to run the Pulsar proxy, you need to have both a local <a href="https://zookeeper.apache.org">ZooKeeper</a> and configuration store quorum set up for use by your Pulsar cluster. For instructions, see <a href="/docs/en/deploy-bare-metal">this document</a>. Once you have ZooKeeper set up and have connection strings for both ZooKeeper quorums, you can use the <a href="/docs/en/reference-cli-tools#pulsar-proxy"><code>proxy</code></a> command of the <a href="/docs/en/reference-cli [...]
 <p>To start the proxy:</p>
@@ -96,7 +96,7 @@ $ bin/pulsar proxy \
 <tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-load-distribution">← Pulsar load distribution</a><a class="docs-next button" href="/docs/en/security-overview">Pulsar Security Overview →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#running-the-proxy">Running the proxy</a></li><li><a href="#stopping-the-proxy">Stopping the proxy</a></li><li><a href="#proxy-frontends">Proxy frontends</a>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-load-distribution"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/security-overview"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#running-the-proxy">Running the proxy</a></li><li><a href="#stopping-the-proxy">Stopping th [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/administration-stats.html b/content/docs/en/administration-stats.html
index b9922b0..9d0b846 100644
--- a/content/docs/en/administration-stats.html
+++ b/content/docs/en/administration-stats.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-stats.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar stats</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="partitioned-topics"></a><a href="#partitioned-topics" aria-hi [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-stats.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar stats</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="partitioned-topics"></a><a href="#partitione [...]
 <table>
 <thead>
 <tr><th>Stat</th><th>Description</th></tr>
@@ -108,7 +108,7 @@
 <tr><td>lastLedgerSwitchTimestamp</td><td>The last time the cursor ledger was rolled over</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-dashboard">← The Pulsar dashboard</a><a class="docs-next button" href="/docs/en/administration-load-distribution">Pulsar load distribution →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics">Partitioned topics</a></li><li><a href="#topics">Topics</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-dashboard"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/administration-load-distribution"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics">Partitioned topics</a></li><li><a href="#topics">Topics</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/administration-stats/index.html b/content/docs/en/administration-stats/index.html
index b9922b0..9d0b846 100644
--- a/content/docs/en/administration-stats/index.html
+++ b/content/docs/en/administration-stats/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-stats.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar stats</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="partitioned-topics"></a><a href="#partitioned-topics" aria-hi [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-stats.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar stats</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="partitioned-topics"></a><a href="#partitione [...]
 <table>
 <thead>
 <tr><th>Stat</th><th>Description</th></tr>
@@ -108,7 +108,7 @@
 <tr><td>lastLedgerSwitchTimestamp</td><td>The last time the cursor ledger was rolled over</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-dashboard">← The Pulsar dashboard</a><a class="docs-next button" href="/docs/en/administration-load-distribution">Pulsar load distribution →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics">Partitioned topics</a></li><li><a href="#topics">Topics</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/administration-dashboard"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/administration-load-distribution"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics">Partitioned topics</a></li><li><a href="#topics">Topics</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/administration-zk-bk.html b/content/docs/en/administration-zk-bk.html
index 3395136..05e27be 100644
--- a/content/docs/en/administration-zk-bk.html
+++ b/content/docs/en/administration-zk-bk.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-zk-bk.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">ZooKeeper and BookKeeper administration</h1></header><article><div><span><p>Pulsar relies on two external systems for essential tasks:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-zk-bk.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">ZooKeeper and BookKeeper administration</h1></header><article><div><span><p>Pulsar relies on two external systems for essential tasks:</p>
 <ul>
 <li><a href="https://zookeeper.apache.org/">ZooKeeper</a> is responsible for a wide variety of configuration- and coordination-related tasks.</li>
 <li><a href="http://bookkeeper.apache.org/">BookKeeper</a> is responsible for <a href="/docs/en/concepts-architecture-overview#persistent-storage">persistent storage</a> of message data.</li>
@@ -267,7 +267,7 @@ admin.namespaces().setPersistence(namespace, policies);
 <p>This diagram illustrates the role of ZooKeeper and BookKeeper in a Pulsar cluster:</p>
 <p><img src="/docs/assets/pulsar-system-architecture.png" alt="ZooKeeper and BookKeeper"></p>
 <p>Each Pulsar cluster consists of one or more message brokers. Each broker relies on an ensemble of bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-monitoring">← Monitoring</a><a class="docs-next button" href="/docs/en/administration-geo">Pulsar geo-replication →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#zookeeper">ZooKeeper</a><ul class="toc-headings"><li><a href="#deploying-local-zookeeper">Deploying local ZooKeeper</a></li><li><a href="#deploying-the-configuration-store-configuration-s [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-monitoring"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/administration-geo"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#zookeeper">ZooKeeper</a><ul class="toc-headings"><li><a href="#deploying-local-zookeeper">Deploying loca [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/administration-zk-bk/index.html b/content/docs/en/administration-zk-bk/index.html
index 3395136..05e27be 100644
--- a/content/docs/en/administration-zk-bk/index.html
+++ b/content/docs/en/administration-zk-bk/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-zk-bk.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">ZooKeeper and BookKeeper administration</h1></header><article><div><span><p>Pulsar relies on two external systems for essential tasks:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-zk-bk.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">ZooKeeper and BookKeeper administration</h1></header><article><div><span><p>Pulsar relies on two external systems for essential tasks:</p>
 <ul>
 <li><a href="https://zookeeper.apache.org/">ZooKeeper</a> is responsible for a wide variety of configuration- and coordination-related tasks.</li>
 <li><a href="http://bookkeeper.apache.org/">BookKeeper</a> is responsible for <a href="/docs/en/concepts-architecture-overview#persistent-storage">persistent storage</a> of message data.</li>
@@ -267,7 +267,7 @@ admin.namespaces().setPersistence(namespace, policies);
 <p>This diagram illustrates the role of ZooKeeper and BookKeeper in a Pulsar cluster:</p>
 <p><img src="/docs/assets/pulsar-system-architecture.png" alt="ZooKeeper and BookKeeper"></p>
 <p>Each Pulsar cluster consists of one or more message brokers. Each broker relies on an ensemble of bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-monitoring">← Monitoring</a><a class="docs-next button" href="/docs/en/administration-geo">Pulsar geo-replication →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#zookeeper">ZooKeeper</a><ul class="toc-headings"><li><a href="#deploying-local-zookeeper">Deploying local ZooKeeper</a></li><li><a href="#deploying-the-configuration-store-configuration-s [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-monitoring"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/administration-geo"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#zookeeper">ZooKeeper</a><ul class="toc-headings"><li><a href="#deploying-local-zookeeper">Deploying loca [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/client-libraries-cpp.html b/content/docs/en/client-libraries-cpp.html
index e5d0fa2..878dba5 100644
--- a/content/docs/en/client-libraries-cpp.html
+++ b/content/docs/en/client-libraries-cpp.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-cpp.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar C++ client</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="supported-platforms"></a><a href="#supported-platfor [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-cpp.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar C++ client</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="supported-platforms"></a><a href="# [...]
 <p>The Pulsar C++ client has been successfully tested on <strong>MacOS</strong> and <strong>Linux</strong>.</p>
 <h2><a class="anchor" aria-hidden="true" id="linux"></a><a href="#linux" 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 [...]
 <h3><a class="anchor" aria-hidden="true" id="install"></a><a href="#install" 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- [...]
@@ -59,9 +59,9 @@ and install those packages instead of building them yourself.</p>
 <tr><th>Link</th><th>Crypto files</th></tr>
 </thead>
 <tbody>
-<tr><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-2.1.0-1_incubating.x86_64.rpm">client</a></td><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-2.1.0-1_incubating.x86_64.rpm.asc">asc</a>, <a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pul [...]
-<tr><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-debuginfo-2.1.0-1_incubating.x86_64.rpm">client-debuginfo</a></td><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-debuginfo-2.1.0-1_incubating.x86_64.rpm.asc">asc</a>, <a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=d [...]
-<tr><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-devel-2.1.0-1_incubating.x86_64.rpm">client-devel</a></td><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-devel-2.1.0-1_incubating.x86_64.rpm.asc">asc</a>, <a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&file [...]
+<tr><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-2.1.0-1_incubating.x86_64.rpm">client</a></td><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-2.1.0-1_incubating.x86_64.rpm.asc">asc</a>, <a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pul [...]
+<tr><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-debuginfo-2.1.0-1_incubating.x86_64.rpm">client-debuginfo</a></td><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-debuginfo-2.1.0-1_incubating.x86_64.rpm.asc">asc</a>,  <a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action= [...]
+<tr><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-devel-2.1.0-1_incubating.x86_64.rpm">client-devel</a></td><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-devel-2.1.0-1_incubating.x86_64.rpm.asc">asc</a>,  <a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&fil [...]
 </tbody>
 </table>
 <p>To install a RPM package, down the RPM packages and install them using following command:</p>
@@ -189,7 +189,7 @@ config.setAuth(pulsar::AuthTls::create(
 
 <span class="hljs-function">Client <span class="hljs-title">client</span><span class="hljs-params">(<span class="hljs-string">"pulsar+ssl://my-broker.com:6651"</span>, config)</span></span>;
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-python">← The Pulsar Python client</a><a class="docs-next button" href="/docs/en/client-libraries-websocket">Pulsar&#x27;s WebSocket API →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#supported-platforms">Supported platforms</a></li><li><a href="#linux">Linux</a><ul class="toc-headings"><li><a href="#install">Install</a></li><li><a href [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-python"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/client-libraries-websocket"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#supported-platforms">Supported platforms</a></li><li><a href="#linux">Linux</a><ul class=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/client-libraries-cpp/index.html b/content/docs/en/client-libraries-cpp/index.html
index e5d0fa2..878dba5 100644
--- a/content/docs/en/client-libraries-cpp/index.html
+++ b/content/docs/en/client-libraries-cpp/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-cpp.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar C++ client</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="supported-platforms"></a><a href="#supported-platfor [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-cpp.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar C++ client</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="supported-platforms"></a><a href="# [...]
 <p>The Pulsar C++ client has been successfully tested on <strong>MacOS</strong> and <strong>Linux</strong>.</p>
 <h2><a class="anchor" aria-hidden="true" id="linux"></a><a href="#linux" 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 [...]
 <h3><a class="anchor" aria-hidden="true" id="install"></a><a href="#install" 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- [...]
@@ -59,9 +59,9 @@ and install those packages instead of building them yourself.</p>
 <tr><th>Link</th><th>Crypto files</th></tr>
 </thead>
 <tbody>
-<tr><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-2.1.0-1_incubating.x86_64.rpm">client</a></td><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-2.1.0-1_incubating.x86_64.rpm.asc">asc</a>, <a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pul [...]
-<tr><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-debuginfo-2.1.0-1_incubating.x86_64.rpm">client-debuginfo</a></td><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-debuginfo-2.1.0-1_incubating.x86_64.rpm.asc">asc</a>, <a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=d [...]
-<tr><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-devel-2.1.0-1_incubating.x86_64.rpm">client-devel</a></td><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-devel-2.1.0-1_incubating.x86_64.rpm.asc">asc</a>, <a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&file [...]
+<tr><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-2.1.0-1_incubating.x86_64.rpm">client</a></td><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-2.1.0-1_incubating.x86_64.rpm.asc">asc</a>, <a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pul [...]
+<tr><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-debuginfo-2.1.0-1_incubating.x86_64.rpm">client-debuginfo</a></td><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-debuginfo-2.1.0-1_incubating.x86_64.rpm.asc">asc</a>,  <a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action= [...]
+<tr><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-devel-2.1.0-1_incubating.x86_64.rpm">client-devel</a></td><td><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.1.0-incubating/RPMS/apache-pulsar-client-devel-2.1.0-1_incubating.x86_64.rpm.asc">asc</a>,  <a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&fil [...]
 </tbody>
 </table>
 <p>To install a RPM package, down the RPM packages and install them using following command:</p>
@@ -189,7 +189,7 @@ config.setAuth(pulsar::AuthTls::create(
 
 <span class="hljs-function">Client <span class="hljs-title">client</span><span class="hljs-params">(<span class="hljs-string">"pulsar+ssl://my-broker.com:6651"</span>, config)</span></span>;
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-python">← The Pulsar Python client</a><a class="docs-next button" href="/docs/en/client-libraries-websocket">Pulsar&#x27;s WebSocket API →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#supported-platforms">Supported platforms</a></li><li><a href="#linux">Linux</a><ul class="toc-headings"><li><a href="#install">Install</a></li><li><a href [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-python"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/client-libraries-websocket"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#supported-platforms">Supported platforms</a></li><li><a href="#linux">Linux</a><ul class=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/client-libraries-go.html b/content/docs/en/client-libraries-go.html
index 76fe925..dd5f901 100644
--- a/content/docs/en/client-libraries-go.html
+++ b/content/docs/en/client-libraries-go.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-go.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Go client</h1></header><article><div><span><p>The Pulsar Go client can be used to create Pulsar <a href="#producers">producers</a>, <a href="# [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-go.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Go client</h1></header><article><div><span><p>The Pulsar Go client can be used to create Pulsar <a href="#producers">producer [...]
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="api-docs-available-as-well"></a><a href="#api-docs-available-as-well" 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 12H [...]
 <p>For standard API docs, consult the <a href="https://godoc.org/github.com/apache/incubator-pulsar/pulsar-client-go/pulsar">Godoc</a>.</p>
@@ -460,7 +460,7 @@ reader, err := client.CreateReader(pulsar.ReaderOptions{
     Authentication: NewAuthenticationTLS(<span class="hljs-string">"my-cert.pem"</span>, <span class="hljs-string">"my-key.pem"</span>),
 }
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-java">← The Pulsar Java client</a><a class="docs-next button" href="/docs/en/client-libraries-python">The Pulsar Python client →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#requirements">Requirements</a></li><li><a href="#installing-go-package">Installing go package</ [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-java"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/client-libraries-python"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#requirements">Requirements [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/client-libraries-go/index.html b/content/docs/en/client-libraries-go/index.html
index 76fe925..dd5f901 100644
--- a/content/docs/en/client-libraries-go/index.html
+++ b/content/docs/en/client-libraries-go/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-go.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Go client</h1></header><article><div><span><p>The Pulsar Go client can be used to create Pulsar <a href="#producers">producers</a>, <a href="# [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-go.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Go client</h1></header><article><div><span><p>The Pulsar Go client can be used to create Pulsar <a href="#producers">producer [...]
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="api-docs-available-as-well"></a><a href="#api-docs-available-as-well" 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 12H [...]
 <p>For standard API docs, consult the <a href="https://godoc.org/github.com/apache/incubator-pulsar/pulsar-client-go/pulsar">Godoc</a>.</p>
@@ -460,7 +460,7 @@ reader, err := client.CreateReader(pulsar.ReaderOptions{
     Authentication: NewAuthenticationTLS(<span class="hljs-string">"my-cert.pem"</span>, <span class="hljs-string">"my-key.pem"</span>),
 }
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-java">← The Pulsar Java client</a><a class="docs-next button" href="/docs/en/client-libraries-python">The Pulsar Python client →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#requirements">Requirements</a></li><li><a href="#installing-go-package">Installing go package</ [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-java"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/client-libraries-python"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#requirements">Requirements [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/client-libraries-java.html b/content/docs/en/client-libraries-java.html
index cb7361b..22a1f53 100644
--- a/content/docs/en/client-libraries-java.html
+++ b/content/docs/en/client-libraries-java.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-java.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Java client</h1></header><article><div><span><p>The Pulsar Java client can be used both to create Java producers, consumers, and <a href="#r [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-java.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Java client</h1></header><article><div><span><p>The Pulsar Java client can be used both to create Java producers, consumers [...]
 <p>Javadoc for the Pulsar client is divided up into two domains, by package:</p>
 <table>
 <thead>
@@ -401,7 +401,7 @@ PulsarClient client = PulsarClient.builder()
 <li><code>data:application/x-pem-file;base64,&lt;base64-encoded value&gt;</code></li>
 </ul>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/security-extending">← Extending Authentication and Authorization in Pulsar</a><a class="docs-next button" href="/docs/en/client-libraries-go">The Pulsar Go client →</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="#gradle">Gradle</a></li></ul></li><li><a h [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/security-extending"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/client-libraries-go"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><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/en/client-libraries-java/index.html b/content/docs/en/client-libraries-java/index.html
index cb7361b..22a1f53 100644
--- a/content/docs/en/client-libraries-java/index.html
+++ b/content/docs/en/client-libraries-java/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-java.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Java client</h1></header><article><div><span><p>The Pulsar Java client can be used both to create Java producers, consumers, and <a href="#r [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-java.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Java client</h1></header><article><div><span><p>The Pulsar Java client can be used both to create Java producers, consumers [...]
 <p>Javadoc for the Pulsar client is divided up into two domains, by package:</p>
 <table>
 <thead>
@@ -401,7 +401,7 @@ PulsarClient client = PulsarClient.builder()
 <li><code>data:application/x-pem-file;base64,&lt;base64-encoded value&gt;</code></li>
 </ul>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/security-extending">← Extending Authentication and Authorization in Pulsar</a><a class="docs-next button" href="/docs/en/client-libraries-go">The Pulsar Go client →</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="#gradle">Gradle</a></li></ul></li><li><a h [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/security-extending"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/client-libraries-go"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><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/en/client-libraries-python.html b/content/docs/en/client-libraries-python.html
index 1675de4..49b50b4 100644
--- a/content/docs/en/client-libraries-python.html
+++ b/content/docs/en/client-libraries-python.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-python.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Python client</h1></header><article><div><span><p>The Pulsar Python client library is a wrapper over the existing <a href="/docs/en/client [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-python.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Python client</h1></header><article><div><span><p>The Pulsar Python client library is a wrapper over the existing <a href [...]
 <h2><a class="anchor" aria-hidden="true" id="installation"></a><a href="#installation" 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. [...]
 <p>You can install the <a href="https://pypi.python.org/pypi/pulsar-client"><code>pulsar-client</code></a> library either via <a href="https://pypi.python.org/pypi">PyPi</a>, using <a href="#installation-using-pip">pip</a>, or by building the library from source.</p>
 <h3><a class="anchor" aria-hidden="true" id="installation-using-pip"></a><a href="#installation-using-pip" 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 [...]
@@ -109,7 +109,7 @@ reader = client.create_reader(<span class="hljs-string">'my-topic'</span>, msg_i
     print(<span class="hljs-string">"Received message '{}' id='{}'"</span>.format(msg.data(), msg.message_id()))
     <span class="hljs-comment"># No acknowledgment</span>
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-go">← The Pulsar Go client</a><a class="docs-next button" href="/docs/en/client-libraries-cpp">The Pulsar C++ client →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#installation-using-pip">Installation using pip</a></li><li><a href="#installing-from-source">Installing f [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-go"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/client-libraries-cpp"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#installation-using-pip">Install [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/client-libraries-python/index.html b/content/docs/en/client-libraries-python/index.html
index 1675de4..49b50b4 100644
--- a/content/docs/en/client-libraries-python/index.html
+++ b/content/docs/en/client-libraries-python/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-python.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Python client</h1></header><article><div><span><p>The Pulsar Python client library is a wrapper over the existing <a href="/docs/en/client [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-python.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Python client</h1></header><article><div><span><p>The Pulsar Python client library is a wrapper over the existing <a href [...]
 <h2><a class="anchor" aria-hidden="true" id="installation"></a><a href="#installation" 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. [...]
 <p>You can install the <a href="https://pypi.python.org/pypi/pulsar-client"><code>pulsar-client</code></a> library either via <a href="https://pypi.python.org/pypi">PyPi</a>, using <a href="#installation-using-pip">pip</a>, or by building the library from source.</p>
 <h3><a class="anchor" aria-hidden="true" id="installation-using-pip"></a><a href="#installation-using-pip" 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 [...]
@@ -109,7 +109,7 @@ reader = client.create_reader(<span class="hljs-string">'my-topic'</span>, msg_i
     print(<span class="hljs-string">"Received message '{}' id='{}'"</span>.format(msg.data(), msg.message_id()))
     <span class="hljs-comment"># No acknowledgment</span>
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-go">← The Pulsar Go client</a><a class="docs-next button" href="/docs/en/client-libraries-cpp">The Pulsar C++ client →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#installation-using-pip">Installation using pip</a></li><li><a href="#installing-from-source">Installing f [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-go"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/client-libraries-cpp"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a><ul class="toc-headings"><li><a href="#installation-using-pip">Install [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/client-libraries-websocket.html b/content/docs/en/client-libraries-websocket.html
index a6c7d74..6856d30 100644
--- a/content/docs/en/client-libraries-websocket.html
+++ b/content/docs/en/client-libraries-websocket.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-websocket.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar&#x27;s WebSocket API</h1></header><article><div><span><p>Pulsar's <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API" [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-websocket.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar&#x27;s WebSocket API</h1></header><article><div><span><p>Pulsar's <a href="https://developer.mozilla.org/en-US/docs/Web/AP [...]
 <blockquote>
 <p>You can use Pulsar's WebSocket API with any WebSocket client library. See examples for Python and Node.js <a href="#client-examples">below</a>.</p>
 </blockquote>
@@ -393,7 +393,7 @@ ws.on(<span class="hljs-string">'message'</span>, <span class="hljs-function"><s
     ws.send(<span class="hljs-built_in">JSON</span>.stringify(ackMsg));
 });
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-cpp">← The Pulsar C++ client</a><a class="docs-next button" href="/docs/en/admin-api-overview">The Pulsar admin interface →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#running-the-websocket-service">Running the WebSocket service</a><ul class="toc-headings"><li><a href="#embedded-with-a-pulsar-broker">Embedded with a Pulsar broker</a></ [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-cpp"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-overview"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#running-the-websocket-service">Running the WebSocket service</a><ul class="toc-headings"><li><a href= [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/client-libraries-websocket/index.html b/content/docs/en/client-libraries-websocket/index.html
index a6c7d74..6856d30 100644
--- a/content/docs/en/client-libraries-websocket/index.html
+++ b/content/docs/en/client-libraries-websocket/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-websocket.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar&#x27;s WebSocket API</h1></header><article><div><span><p>Pulsar's <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API" [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/client-libraries-websocket.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar&#x27;s WebSocket API</h1></header><article><div><span><p>Pulsar's <a href="https://developer.mozilla.org/en-US/docs/Web/AP [...]
 <blockquote>
 <p>You can use Pulsar's WebSocket API with any WebSocket client library. See examples for Python and Node.js <a href="#client-examples">below</a>.</p>
 </blockquote>
@@ -393,7 +393,7 @@ ws.on(<span class="hljs-string">'message'</span>, <span class="hljs-function"><s
     ws.send(<span class="hljs-built_in">JSON</span>.stringify(ackMsg));
 });
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-cpp">← The Pulsar C++ client</a><a class="docs-next button" href="/docs/en/admin-api-overview">The Pulsar admin interface →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#running-the-websocket-service">Running the WebSocket service</a><ul class="toc-headings"><li><a href="#embedded-with-a-pulsar-broker">Embedded with a Pulsar broker</a></ [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries-cpp"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/admin-api-overview"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#running-the-websocket-service">Running the WebSocket service</a><ul class="toc-headings"><li><a href= [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/client-libraries.html b/content/docs/en/client-libraries.html
index a45c22a..57e7ca0 100644
--- a/content/docs/en/client-libraries.html
+++ b/content/docs/en/client-libraries.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/getting-started-clients.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar client libraries</h1></header><article><div><span><p>Pulsar currently has client libraries available for following languages:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/getting-started-clients.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar client libraries</h1></header><article><div><span><p>Pulsar currently has client libraries available for following languages:</p>
 <ul>
 <li><a href="#java-client">Java</a></li>
 <li><a href="#go-client">Go</a></li>
@@ -112,7 +112,7 @@
 <tr><td>Scala</td><td><a href="https://github.com/sksamuel/pulsar4s">pulsar4s</a></td><td><a href="https://github.com/sksamuel">sksamuel</a></td><td><a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="License"></a></td><td>Idomatic, typesafe, and reactive Scala client for Apache Pulsar</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/standalone-docker">← Start a standalone cluster with Docker</a><a class="docs-next button" href="/docs/en/concepts-overview">Pulsar Overview →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#java-client">Java client</a></li><li><a href="#go-client">Go client</a></li><li><a href="#python-client">Python client</a></li><li><a href="#c-client">C++ client</a></ [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/standalone-docker"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-overview"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#java-client">Java client</a></li><li><a href="#go-client">Go client</a></li><li><a href="#python-client"> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/client-libraries/index.html b/content/docs/en/client-libraries/index.html
index a45c22a..57e7ca0 100644
--- a/content/docs/en/client-libraries/index.html
+++ b/content/docs/en/client-libraries/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/getting-started-clients.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar client libraries</h1></header><article><div><span><p>Pulsar currently has client libraries available for following languages:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/getting-started-clients.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar client libraries</h1></header><article><div><span><p>Pulsar currently has client libraries available for following languages:</p>
 <ul>
 <li><a href="#java-client">Java</a></li>
 <li><a href="#go-client">Go</a></li>
@@ -112,7 +112,7 @@
 <tr><td>Scala</td><td><a href="https://github.com/sksamuel/pulsar4s">pulsar4s</a></td><td><a href="https://github.com/sksamuel">sksamuel</a></td><td><a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="License"></a></td><td>Idomatic, typesafe, and reactive Scala client for Apache Pulsar</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/standalone-docker">← Start a standalone cluster with Docker</a><a class="docs-next button" href="/docs/en/concepts-overview">Pulsar Overview →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#java-client">Java client</a></li><li><a href="#go-client">Go client</a></li><li><a href="#python-client">Python client</a></li><li><a href="#c-client">C++ client</a></ [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/standalone-docker"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-overview"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#java-client">Java client</a></li><li><a href="#go-client">Go client</a></li><li><a href="#python-client"> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-architecture-overview.html b/content/docs/en/concepts-architecture-overview.html
index d94e212..0185a91 100644
--- a/content/docs/en/concepts-architecture-overview.html
+++ b/content/docs/en/concepts-architecture-overview.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-architecture-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Architecture Overview</h1></header><article><div><span><p>At the highest level, a Pulsar instance is composed of one or more Pulsar clusters.  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-architecture-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Architecture Overview</h1></header><article><div><span><p>At the highest level, a Pulsar instance is composed of one or more  [...]
 <p>In a Pulsar cluster:</p>
 <ul>
 <li>One or more brokers handles and load balances incoming messages from producers, dispatches messages to consumers, communicates with the Pulsar configuration store to handle various coordination tasks, stores messages in BookKeeper instances (aka bookies), relies on a cluster-specific ZooKeeper cluster for certain tasks, and more.</li>
@@ -154,7 +154,7 @@
 
 client = Client(<span class="hljs-string">'pulsar://pulsar-cluster.acme.com:6650'</span>)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-messaging">← Messaging Concepts</a><a class="docs-next button" href="/docs/en/concepts-clients">Pulsar Clients →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#clusters">Clusters</a></li><li><a href="#metadata-store">Metadata store</a></li><li><a href="#persistent-storage">Persistent storage</a><ul class="to [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-messaging"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-clients"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#clusters">Clusters</a></li><li><a href="#metadata-store">Metadata  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-architecture-overview/index.html b/content/docs/en/concepts-architecture-overview/index.html
index d94e212..0185a91 100644
--- a/content/docs/en/concepts-architecture-overview/index.html
+++ b/content/docs/en/concepts-architecture-overview/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-architecture-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Architecture Overview</h1></header><article><div><span><p>At the highest level, a Pulsar instance is composed of one or more Pulsar clusters.  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-architecture-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Architecture Overview</h1></header><article><div><span><p>At the highest level, a Pulsar instance is composed of one or more  [...]
 <p>In a Pulsar cluster:</p>
 <ul>
 <li>One or more brokers handles and load balances incoming messages from producers, dispatches messages to consumers, communicates with the Pulsar configuration store to handle various coordination tasks, stores messages in BookKeeper instances (aka bookies), relies on a cluster-specific ZooKeeper cluster for certain tasks, and more.</li>
@@ -154,7 +154,7 @@
 
 client = Client(<span class="hljs-string">'pulsar://pulsar-cluster.acme.com:6650'</span>)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-messaging">← Messaging Concepts</a><a class="docs-next button" href="/docs/en/concepts-clients">Pulsar Clients →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#clusters">Clusters</a></li><li><a href="#metadata-store">Metadata store</a></li><li><a href="#persistent-storage">Persistent storage</a><ul class="to [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-messaging"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-clients"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#clusters">Clusters</a></li><li><a href="#metadata-store">Metadata  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-architecture.html b/content/docs/en/concepts-architecture.html
index aa29b86..3ff2a65 100644
--- a/content/docs/en/concepts-architecture.html
+++ b/content/docs/en/concepts-architecture.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/getting-started-concepts-and- [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/getting-star [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-architecture/index.html b/content/docs/en/concepts-architecture/index.html
index aa29b86..3ff2a65 100644
--- a/content/docs/en/concepts-architecture/index.html
+++ b/content/docs/en/concepts-architecture/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/getting-started-concepts-and- [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/getting-star [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-authentication.html b/content/docs/en/concepts-authentication.html
index 286b9e2..f206dfb 100644
--- a/content/docs/en/concepts-authentication.html
+++ b/content/docs/en/concepts-authentication.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,8 +45,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-authentication.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar supports a pluggable <a href="/docs/en/security-overview">authentication< [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-multi-tenancy">← Multi Tenancy</a><a class="docs-next button" href="/docs/en/concepts-topic-compaction">Topic Compaction →</a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of T [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-authentication.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar supports a pluggable <a href="/docs/en/security-overview [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-multi-tenancy"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-topic-compaction"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-authentication/index.html b/content/docs/en/concepts-authentication/index.html
index 286b9e2..f206dfb 100644
--- a/content/docs/en/concepts-authentication/index.html
+++ b/content/docs/en/concepts-authentication/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,8 +45,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-authentication.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar supports a pluggable <a href="/docs/en/security-overview">authentication< [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-multi-tenancy">← Multi Tenancy</a><a class="docs-next button" href="/docs/en/concepts-topic-compaction">Topic Compaction →</a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of T [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-authentication.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar supports a pluggable <a href="/docs/en/security-overview [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-multi-tenancy"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-topic-compaction"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-clients.html b/content/docs/en/concepts-clients.html
index 1e7da42..f215074 100644
--- a/content/docs/en/concepts-clients.html
+++ b/content/docs/en/concepts-clients.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-clients.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Clients</h1></header><article><div><span><p>Pulsar exposes a client API with language bindings for <a href="/docs/en/client-libraries-java">Java</a>  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-clients.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Clients</h1></header><article><div><span><p>Pulsar exposes a client API with language bindings for <a href="/docs/en/client-librarie [...]
 <p>Under the hood, the current official Pulsar client libraries support transparent reconnection and/or connection failover to brokers, queuing of messages until acknowledged by the broker, and heuristics such as connection retries with backoff.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="custom-client-libraries"></a><a href="#custom-client-libraries" 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 [...]
@@ -103,7 +103,7 @@ Reader&lt;<span class="hljs-keyword">byte</span>[]&gt; reader = pulsarClient.new
     .startMessageId(id)
     .create();
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-architecture-overview">← Architecture Overview</a><a class="docs-next button" href="/docs/en/concepts-replication">Geo Replication →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#client-setup-phase">Client setup phase</a></li><li><a href="#reader-interface">Reader interface</a><ul class="toc-headings"><li><a href="#non-partitioned-topics-only">N [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-architecture-overview"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-replication"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#client-setup-phase">Client setup phase</a></li><li><a href="#reader-interface">Reader int [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-clients/index.html b/content/docs/en/concepts-clients/index.html
index 1e7da42..f215074 100644
--- a/content/docs/en/concepts-clients/index.html
+++ b/content/docs/en/concepts-clients/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-clients.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Clients</h1></header><article><div><span><p>Pulsar exposes a client API with language bindings for <a href="/docs/en/client-libraries-java">Java</a>  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-clients.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Clients</h1></header><article><div><span><p>Pulsar exposes a client API with language bindings for <a href="/docs/en/client-librarie [...]
 <p>Under the hood, the current official Pulsar client libraries support transparent reconnection and/or connection failover to brokers, queuing of messages until acknowledged by the broker, and heuristics such as connection retries with backoff.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="custom-client-libraries"></a><a href="#custom-client-libraries" 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 [...]
@@ -103,7 +103,7 @@ Reader&lt;<span class="hljs-keyword">byte</span>[]&gt; reader = pulsarClient.new
     .startMessageId(id)
     .create();
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-architecture-overview">← Architecture Overview</a><a class="docs-next button" href="/docs/en/concepts-replication">Geo Replication →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#client-setup-phase">Client setup phase</a></li><li><a href="#reader-interface">Reader interface</a><ul class="toc-headings"><li><a href="#non-partitioned-topics-only">N [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-architecture-overview"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-replication"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#client-setup-phase">Client setup phase</a></li><li><a href="#reader-interface">Reader int [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-messaging.html b/content/docs/en/concepts-messaging.html
index 0573d38..1dec16d 100644
--- a/content/docs/en/concepts-messaging.html
+++ b/content/docs/en/concepts-messaging.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-messaging.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Messaging Concepts</h1></header><article><div><span><p>Pulsar is built on the <a href="https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern">pu [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-messaging.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Messaging Concepts</h1></header><article><div><span><p>Pulsar is built on the <a href="https://en.wikipedia.org/wiki/Publish%E2%80%93subs [...]
 <p>Once a subscription has been created, all messages will be <a href="/docs/en/concepts-architecture-overview#persistent-storage">retained</a> by Pulsar, even if the consumer gets disconnected. Retained messages will be discarded only when a consumer acknowledges that they've been successfully processed.</p>
 <h2><a class="anchor" aria-hidden="true" id="messages"></a><a href="#messages" 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>Messages are the basic &quot;unit&quot; of Pulsar. They're what producers publish to topics and what consumers then consume from topics (and acknowledge when the message has been processed). Messages are the analogue of letters in a postal service system.</p>
@@ -278,7 +278,7 @@ Consumer consumer = client.subscribe(npTopic, subscriptionName);
 <blockquote>
 <p>More in-depth information can be found in <a href="https://streaml.io/blog/pulsar-effectively-once/">this post</a> on the <a href="https://streaml.io/blog">Streamlio blog</a></p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-overview">← Pulsar Overview</a><a class="docs-next button" href="/docs/en/concepts-architecture-overview">Architecture Overview →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#messages">Messages</a></li><li><a href="#producers">Producers</a><ul class="toc-headings"><li><a href="#send-modes">Send modes</a></li><li><a href="#compression">Compressi [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-overview"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-architecture-overview"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#messages">Messages</a></li><li><a href="#producers">Producers</a><ul class="toc-headings"><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-messaging/index.html b/content/docs/en/concepts-messaging/index.html
index 0573d38..1dec16d 100644
--- a/content/docs/en/concepts-messaging/index.html
+++ b/content/docs/en/concepts-messaging/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-messaging.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Messaging Concepts</h1></header><article><div><span><p>Pulsar is built on the <a href="https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern">pu [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-messaging.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Messaging Concepts</h1></header><article><div><span><p>Pulsar is built on the <a href="https://en.wikipedia.org/wiki/Publish%E2%80%93subs [...]
 <p>Once a subscription has been created, all messages will be <a href="/docs/en/concepts-architecture-overview#persistent-storage">retained</a> by Pulsar, even if the consumer gets disconnected. Retained messages will be discarded only when a consumer acknowledges that they've been successfully processed.</p>
 <h2><a class="anchor" aria-hidden="true" id="messages"></a><a href="#messages" 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>Messages are the basic &quot;unit&quot; of Pulsar. They're what producers publish to topics and what consumers then consume from topics (and acknowledge when the message has been processed). Messages are the analogue of letters in a postal service system.</p>
@@ -278,7 +278,7 @@ Consumer consumer = client.subscribe(npTopic, subscriptionName);
 <blockquote>
 <p>More in-depth information can be found in <a href="https://streaml.io/blog/pulsar-effectively-once/">this post</a> on the <a href="https://streaml.io/blog">Streamlio blog</a></p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-overview">← Pulsar Overview</a><a class="docs-next button" href="/docs/en/concepts-architecture-overview">Architecture Overview →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#messages">Messages</a></li><li><a href="#producers">Producers</a><ul class="toc-headings"><li><a href="#send-modes">Send modes</a></li><li><a href="#compression">Compressi [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-overview"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-architecture-overview"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#messages">Messages</a></li><li><a href="#producers">Producers</a><ul class="toc-headings"><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-multi-tenancy.html b/content/docs/en/concepts-multi-tenancy.html
index 4ae504b..794c33b 100644
--- a/content/docs/en/concepts-multi-tenancy.html
+++ b/content/docs/en/concepts-multi-tenancy.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-multi-tenancy.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Multi Tenancy</h1></header><article><div><span><p>Pulsar was created from the ground up as a multi-tenant system. To support multi-tenancy, Pulsar has [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-multi-tenancy.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Multi Tenancy</h1></header><article><div><span><p>Pulsar was created from the ground up as a multi-tenant system. To support multi-te [...]
 <p>The multi-tenant nature of Pulsar is reflected mostly visibly in topic URLs, which have this structure:</p>
 <pre><code class="hljs css language-http">persistent://tenant/namespace/topic
 </code></pre>
@@ -69,7 +69,7 @@ persistent://tenant/app1/topic-2
 
 persistent://tenant/app1/topic-3
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-replication">← Geo Replication</a><a class="docs-next button" href="/docs/en/concepts-authentication">Authentication and Authorization →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#tenants">Tenants</a></li><li><a href="#namespaces">Namespaces</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-replication"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-authentication"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#tenants">Tenants</a></li><li><a href="#namespaces">Namespaces</a></li></ul></nav></div><footer c [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-multi-tenancy/index.html b/content/docs/en/concepts-multi-tenancy/index.html
index 4ae504b..794c33b 100644
--- a/content/docs/en/concepts-multi-tenancy/index.html
+++ b/content/docs/en/concepts-multi-tenancy/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-multi-tenancy.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Multi Tenancy</h1></header><article><div><span><p>Pulsar was created from the ground up as a multi-tenant system. To support multi-tenancy, Pulsar has [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-multi-tenancy.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Multi Tenancy</h1></header><article><div><span><p>Pulsar was created from the ground up as a multi-tenant system. To support multi-te [...]
 <p>The multi-tenant nature of Pulsar is reflected mostly visibly in topic URLs, which have this structure:</p>
 <pre><code class="hljs css language-http">persistent://tenant/namespace/topic
 </code></pre>
@@ -69,7 +69,7 @@ persistent://tenant/app1/topic-2
 
 persistent://tenant/app1/topic-3
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-replication">← Geo Replication</a><a class="docs-next button" href="/docs/en/concepts-authentication">Authentication and Authorization →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#tenants">Tenants</a></li><li><a href="#namespaces">Namespaces</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-replication"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-authentication"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#tenants">Tenants</a></li><li><a href="#namespaces">Namespaces</a></li></ul></nav></div><footer c [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-overview.html b/content/docs/en/concepts-overview.html
index 0a29995..38179bf 100644
--- a/content/docs/en/concepts-overview.html
+++ b/content/docs/en/concepts-overview.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Overview</h1></header><article><div><span><p>Pulsar is a multi-tenant, high-performance solution for server-to-server messaging originally developed [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Overview</h1></header><article><div><span><p>Pulsar is a multi-tenant, high-performance solution for server-to-server messaging ori [...]
 <p>Pulsar's key features include:</p>
 <ul>
 <li>Native support for multiple clusters in a Pulsar instance, with seamless <a href="/docs/en/administration-geo">geo-replication</a> of messages across clusters</li>
@@ -70,7 +70,7 @@
 <li><a href="/docs/en/concepts-tiered-storage">Tiered Storage</a></li>
 <li><a href="/docs/en/concepts-schema-registry">Schema Registry</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries">← Pulsar client libraries</a><a class="docs-next button" href="/docs/en/concepts-messaging">Messaging Concepts →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-messaging"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyri [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-overview/index.html b/content/docs/en/concepts-overview/index.html
index 0a29995..38179bf 100644
--- a/content/docs/en/concepts-overview/index.html
+++ b/content/docs/en/concepts-overview/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Overview</h1></header><article><div><span><p>Pulsar is a multi-tenant, high-performance solution for server-to-server messaging originally developed [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Overview</h1></header><article><div><span><p>Pulsar is a multi-tenant, high-performance solution for server-to-server messaging ori [...]
 <p>Pulsar's key features include:</p>
 <ul>
 <li>Native support for multiple clusters in a Pulsar instance, with seamless <a href="/docs/en/administration-geo">geo-replication</a> of messages across clusters</li>
@@ -70,7 +70,7 @@
 <li><a href="/docs/en/concepts-tiered-storage">Tiered Storage</a></li>
 <li><a href="/docs/en/concepts-schema-registry">Schema Registry</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries">← Pulsar client libraries</a><a class="docs-next button" href="/docs/en/concepts-messaging">Messaging Concepts →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-messaging"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyri [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-replication.html b/content/docs/en/concepts-replication.html
index b5542b3..974e346 100644
--- a/content/docs/en/concepts-replication.html
+++ b/content/docs/en/concepts-replication.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,8 +45,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-replication.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Geo Replication</h1></header><article><div><span><p>Pulsar enables messages to be produced and consumed in different geo-locations. For instance, your a [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-clients">← Pulsar Clients</a><a class="docs-next button" href="/docs/en/concepts-multi-tenancy">Multi Tenancy →</a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache S [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-replication.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Geo Replication</h1></header><article><div><span><p>Pulsar enables messages to be produced and consumed in different geo-locations. For [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-clients"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-multi-tenancy"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Re [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-replication/index.html b/content/docs/en/concepts-replication/index.html
index b5542b3..974e346 100644
--- a/content/docs/en/concepts-replication/index.html
+++ b/content/docs/en/concepts-replication/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,8 +45,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-replication.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Geo Replication</h1></header><article><div><span><p>Pulsar enables messages to be produced and consumed in different geo-locations. For instance, your a [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-clients">← Pulsar Clients</a><a class="docs-next button" href="/docs/en/concepts-multi-tenancy">Multi Tenancy →</a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache S [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-replication.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Geo Replication</h1></header><article><div><span><p>Pulsar enables messages to be produced and consumed in different geo-locations. For [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-clients"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-multi-tenancy"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Re [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-schema-registry.html b/content/docs/en/concepts-schema-registry.html
index ac992af..044b1a8 100644
--- a/content/docs/en/concepts-schema-registry.html
+++ b/content/docs/en/concepts-schema-registry.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-schema-registry.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Schema Registry</h1></header><article><div><span><p>Type safety is extremely important in any application built around a message bus like Pulsar. Pr [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-schema-registry.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Schema Registry</h1></header><article><div><span><p>Type safety is extremely important in any application built around a message bu [...]
 <ol>
 <li>A &quot;client-side&quot; approach in which message producers and consumers are responsible for not only serializing and deserializing messages (which consist of raw bytes) but also &quot;knowing&quot; which types are being transmitted via which topics. If a producer is sending temperature sensor data on the topic <code>topic-1</code>, consumers of that topic will run into trouble if they attempt to parse that data as, say, moisture sensor readings.</li>
 <li>A &quot;server-side&quot; approach in which producers and consumers inform the system which data types can be transmitted via the topic. With this approach, the messaging system enforces type safety and ensures that producers and consumers remain synced.</li>
@@ -117,7 +117,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
 <p>You can use Pulsar's <a href="/docs/en/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-tiered-storage">← Tiered Storage</a><a class="docs-next button" href="/docs/en/functions-overview">Pulsar Functions overview →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schemas work</a></li><li><a href="#schema-versions">Schema versions</a></li><li><a href="#s [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-overview"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schemas work</a [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-schema-registry/index.html b/content/docs/en/concepts-schema-registry/index.html
index ac992af..044b1a8 100644
--- a/content/docs/en/concepts-schema-registry/index.html
+++ b/content/docs/en/concepts-schema-registry/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-schema-registry.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Schema Registry</h1></header><article><div><span><p>Type safety is extremely important in any application built around a message bus like Pulsar. Pr [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-schema-registry.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Schema Registry</h1></header><article><div><span><p>Type safety is extremely important in any application built around a message bu [...]
 <ol>
 <li>A &quot;client-side&quot; approach in which message producers and consumers are responsible for not only serializing and deserializing messages (which consist of raw bytes) but also &quot;knowing&quot; which types are being transmitted via which topics. If a producer is sending temperature sensor data on the topic <code>topic-1</code>, consumers of that topic will run into trouble if they attempt to parse that data as, say, moisture sensor readings.</li>
 <li>A &quot;server-side&quot; approach in which producers and consumers inform the system which data types can be transmitted via the topic. With this approach, the messaging system enforces type safety and ensures that producers and consumers remain synced.</li>
@@ -117,7 +117,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
 <p>You can use Pulsar's <a href="/docs/en/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-tiered-storage">← Tiered Storage</a><a class="docs-next button" href="/docs/en/functions-overview">Pulsar Functions overview →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schemas work</a></li><li><a href="#schema-versions">Schema versions</a></li><li><a href="#s [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-overview"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schemas work</a [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-tiered-storage.html b/content/docs/en/concepts-tiered-storage.html
index 34aab71..16d679b 100644
--- a/content/docs/en/concepts-tiered-storage.html
+++ b/content/docs/en/concepts-tiered-storage.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-tiered-storage.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's segment oriented architecture allows for topic backlogs to grow very large, effectively w [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-tiered-storage.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's segment oriented architecture allows for topic backlogs to grow very lar [...]
 <p>One way to alleviate this cost is to use Tiered Storage. With tiered storage, older messages in the backlog can be moved from bookkeeper to a cheaper storage mechanism, while still allowing clients to access the backlog as if nothing had changed.</p>
 <p><img src="/docs/assets/pulsar-tiered-storage.png" alt="Tiered Storage"></p>
 <blockquote>
@@ -55,7 +55,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-topic-compaction">← Topic Compaction</a><a class="docs-next button" href="/docs/en/concepts-schema-registry">Schema Registry →</a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks  [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-schema-registry"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. Al [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-tiered-storage/index.html b/content/docs/en/concepts-tiered-storage/index.html
index 34aab71..16d679b 100644
--- a/content/docs/en/concepts-tiered-storage/index.html
+++ b/content/docs/en/concepts-tiered-storage/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-tiered-storage.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's segment oriented architecture allows for topic backlogs to grow very large, effectively w [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-tiered-storage.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's segment oriented architecture allows for topic backlogs to grow very lar [...]
 <p>One way to alleviate this cost is to use Tiered Storage. With tiered storage, older messages in the backlog can be moved from bookkeeper to a cheaper storage mechanism, while still allowing clients to access the backlog as if nothing had changed.</p>
 <p><img src="/docs/assets/pulsar-tiered-storage.png" alt="Tiered Storage"></p>
 <blockquote>
@@ -55,7 +55,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-topic-compaction">← Topic Compaction</a><a class="docs-next button" href="/docs/en/concepts-schema-registry">Schema Registry →</a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks  [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-schema-registry"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. Al [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-topic-compaction.html b/content/docs/en/concepts-topic-compaction.html
index 51cbd92..bdf9da4 100644
--- a/content/docs/en/concepts-topic-compaction.html
+++ b/content/docs/en/concepts-topic-compaction.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-topic-compaction.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Topic Compaction</h1></header><article><div><span><p>Pulsar was built with highly scalable <a href="/docs/en/concepts-architecture-overview#persist [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-topic-compaction.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Topic Compaction</h1></header><article><div><span><p>Pulsar was built with highly scalable <a href="/docs/en/concepts-architecture [...]
 <blockquote>
 <p>For a more practical guide to topic compaction, see the <a href="/docs/en/cookbooks-compaction">Topic compaction cookbook</a>.</p>
 </blockquote>
@@ -72,7 +72,7 @@
 <li>Read beginning at the compaction horizon (if the message ID is lower than the compaction horizon)</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-authentication">← Authentication and Authorization</a><a class="docs-next button" href="/docs/en/concepts-tiered-storage">Tiered Storage →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-topic-compaction-works">How topic compaction works</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-authentication"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-tiered-storage"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#how-topic-compaction-works">How topic compaction works</a></li></ul></nav></div><footer class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-topic-compaction/index.html b/content/docs/en/concepts-topic-compaction/index.html
index 51cbd92..bdf9da4 100644
--- a/content/docs/en/concepts-topic-compaction/index.html
+++ b/content/docs/en/concepts-topic-compaction/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-topic-compaction.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Topic Compaction</h1></header><article><div><span><p>Pulsar was built with highly scalable <a href="/docs/en/concepts-architecture-overview#persist [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/concepts-topic-compaction.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Topic Compaction</h1></header><article><div><span><p>Pulsar was built with highly scalable <a href="/docs/en/concepts-architecture [...]
 <blockquote>
 <p>For a more practical guide to topic compaction, see the <a href="/docs/en/cookbooks-compaction">Topic compaction cookbook</a>.</p>
 </blockquote>
@@ -72,7 +72,7 @@
 <li>Read beginning at the compaction horizon (if the message ID is lower than the compaction horizon)</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-authentication">← Authentication and Authorization</a><a class="docs-next button" href="/docs/en/concepts-tiered-storage">Tiered Storage →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-topic-compaction-works">How topic compaction works</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-authentication"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/concepts-tiered-storage"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#how-topic-compaction-works">How topic compaction works</a></li></ul></nav></div><footer class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-compaction.html b/content/docs/en/cookbooks-compaction.html
index dbe3522..45c857c 100644
--- a/content/docs/en/cookbooks-compaction.html
+++ b/content/docs/en/cookbooks-compaction.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-compaction.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Topic compaction</h1></header><article><div><span><p>Pulsar's <a href="/docs/en/concepts-topic-compaction#compaction">topic compaction</a> feature enabl [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-compaction.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Topic compaction</h1></header><article><div><span><p>Pulsar's <a href="/docs/en/concepts-topic-compaction#compaction">topic compaction< [...]
 <p>To use compaction:</p>
 <ul>
 <li>You need to give messages keys, as topic compaction in Pulsar takes place on a <em>per-key basis</em> (i.e. messages are compacted based on their key). For a stock ticker use case, the stock symbol---e.g. <code>AAPL</code> or <code>GOOG</code>---could serve as the key (more on this <a href="#when">below</a>). Messages without keys will be left alone by the compaction process.</li>
@@ -139,7 +139,7 @@ Message&lt;<span class="hljs-keyword">byte</span>[]&gt; msg = MessageBuilder.cre
 
 compactedTopicProducer.send(msg);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-tiered-storage">← Tiered Storage</a><a class="docs-next button" href="/docs/en/cookbooks-deduplication">Message deduplication →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#when-should-i-use-compacted-topics-when">When should I use compacted topics? {#when}</a></li><li><a href="#configuring-compaction-to-run-automatically-automatic">Configurin [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-tiered-storage"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-deduplication"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#when-should-i-use-compacted-topics-when">When should I use compacted topics? {#when}</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-compaction/index.html b/content/docs/en/cookbooks-compaction/index.html
index dbe3522..45c857c 100644
--- a/content/docs/en/cookbooks-compaction/index.html
+++ b/content/docs/en/cookbooks-compaction/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-compaction.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Topic compaction</h1></header><article><div><span><p>Pulsar's <a href="/docs/en/concepts-topic-compaction#compaction">topic compaction</a> feature enabl [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-compaction.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Topic compaction</h1></header><article><div><span><p>Pulsar's <a href="/docs/en/concepts-topic-compaction#compaction">topic compaction< [...]
 <p>To use compaction:</p>
 <ul>
 <li>You need to give messages keys, as topic compaction in Pulsar takes place on a <em>per-key basis</em> (i.e. messages are compacted based on their key). For a stock ticker use case, the stock symbol---e.g. <code>AAPL</code> or <code>GOOG</code>---could serve as the key (more on this <a href="#when">below</a>). Messages without keys will be left alone by the compaction process.</li>
@@ -139,7 +139,7 @@ Message&lt;<span class="hljs-keyword">byte</span>[]&gt; msg = MessageBuilder.cre
 
 compactedTopicProducer.send(msg);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-tiered-storage">← Tiered Storage</a><a class="docs-next button" href="/docs/en/cookbooks-deduplication">Message deduplication →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#when-should-i-use-compacted-topics-when">When should I use compacted topics? {#when}</a></li><li><a href="#configuring-compaction-to-run-automatically-automatic">Configurin [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-tiered-storage"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-deduplication"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#when-should-i-use-compacted-topics-when">When should I use compacted topics? {#when}</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-deduplication.html b/content/docs/en/cookbooks-deduplication.html
index dac16fb..efe693f 100644
--- a/content/docs/en/cookbooks-deduplication.html
+++ b/content/docs/en/cookbooks-deduplication.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-deduplication.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Message deduplication</h1></header><article><div><span><p><strong>Message deduplication</strong> is a feature of Pulsar that, when enabled, ensures t [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-deduplication.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Message deduplication</h1></header><article><div><span><p><strong>Message deduplication</strong> is a feature of Pulsar that, when e [...]
 <p>Using message deduplication in Pulsar involves making some <a href="#configuration">configuration changes</a> to your Pulsar brokers as well as some minor changes to the behavior of Pulsar <a href="#clients">clients</a>.</p>
 <blockquote>
 <p>For a more thorough theoretical explanation of message deduplication, see the <a href="/docs/en/concepts-messaging#message-deduplication">Concepts and Architecture</a> document.</p>
@@ -134,7 +134,7 @@ Producer producer;
 
 Result result = client.createProducer(topic, producerConfig, producer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-compaction">← Topic compaction</a><a class="docs-next button" href="/docs/en/cookbooks-non-persistent">Non-persistent messaging →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-for-message-deduplication">Configuration for message deduplication</a><ul class="toc-headings"><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-compaction"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-non-persistent"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-for-message-deduplication">Confi [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-deduplication/index.html b/content/docs/en/cookbooks-deduplication/index.html
index dac16fb..efe693f 100644
--- a/content/docs/en/cookbooks-deduplication/index.html
+++ b/content/docs/en/cookbooks-deduplication/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-deduplication.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Message deduplication</h1></header><article><div><span><p><strong>Message deduplication</strong> is a feature of Pulsar that, when enabled, ensures t [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-deduplication.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Message deduplication</h1></header><article><div><span><p><strong>Message deduplication</strong> is a feature of Pulsar that, when e [...]
 <p>Using message deduplication in Pulsar involves making some <a href="#configuration">configuration changes</a> to your Pulsar brokers as well as some minor changes to the behavior of Pulsar <a href="#clients">clients</a>.</p>
 <blockquote>
 <p>For a more thorough theoretical explanation of message deduplication, see the <a href="/docs/en/concepts-messaging#message-deduplication">Concepts and Architecture</a> document.</p>
@@ -134,7 +134,7 @@ Producer producer;
 
 Result result = client.createProducer(topic, producerConfig, producer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-compaction">← Topic compaction</a><a class="docs-next button" href="/docs/en/cookbooks-non-persistent">Non-persistent messaging →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-for-message-deduplication">Configuration for message deduplication</a><ul class="toc-headings"><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-compaction"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-non-persistent"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-for-message-deduplication">Confi [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-encryption.html b/content/docs/en/cookbooks-encryption.html
index a4f5479..501e11e 100644
--- a/content/docs/en/cookbooks-encryption.html
+++ b/content/docs/en/cookbooks-encryption.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-encryption.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Encryption</h1></header><article><div><span><p>Pulsar encryption allows applications to encrypt messages at the producer and decrypt at the consu [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-encryption.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Encryption</h1></header><article><div><span><p>Pulsar encryption allows applications to encrypt messages at the producer and dec [...]
 <h2><a class="anchor" aria-hidden="true" id="asymmetric-and-symmetric-encryption"></a><a href="#asymmetric-and-symmetric-encryption" 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 [...]
 <p>Pulsar uses dynamically generated symmetric AES key to encrypt messages(data). The AES key(data key) is encrypted using application provided ECDSA/RSA key pair, as a result there is no need to share the secret with everyone.</p>
 <p>Key is a public/private key pair used for encryption/decryption. The producer key is the public key, and the consumer key is the private key of the key pair.</p>
@@ -201,7 +201,7 @@ Application will never be able to decrypt the messages if the private key is per
 </ul></li>
 <li>If decryption fails, the message consumption stops and application will notice backlog growth in addition to decryption failure messages in the client log. If application does not have access to the private key to decrypt the message, the only option is to skip/discard backlogged messages.</li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-retention-expiry">← Message retention and expiry</a><a class="docs-next button" href="/docs/en/cookbooks-message-queue">Using Pulsar as a message queue →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#asymmetric-and-symmetric-encryption">Asymmetric and symmetric encryption</a></li><li><a href="#producer">Producer</a></li><li><a href="#consumer"> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-retention-expiry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-message-queue"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#asymmetric-and-symmetric-encryption">Asymmetric and symmetric encryption</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-encryption/index.html b/content/docs/en/cookbooks-encryption/index.html
index a4f5479..501e11e 100644
--- a/content/docs/en/cookbooks-encryption/index.html
+++ b/content/docs/en/cookbooks-encryption/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-encryption.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Encryption</h1></header><article><div><span><p>Pulsar encryption allows applications to encrypt messages at the producer and decrypt at the consu [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-encryption.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Encryption</h1></header><article><div><span><p>Pulsar encryption allows applications to encrypt messages at the producer and dec [...]
 <h2><a class="anchor" aria-hidden="true" id="asymmetric-and-symmetric-encryption"></a><a href="#asymmetric-and-symmetric-encryption" 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 [...]
 <p>Pulsar uses dynamically generated symmetric AES key to encrypt messages(data). The AES key(data key) is encrypted using application provided ECDSA/RSA key pair, as a result there is no need to share the secret with everyone.</p>
 <p>Key is a public/private key pair used for encryption/decryption. The producer key is the public key, and the consumer key is the private key of the key pair.</p>
@@ -201,7 +201,7 @@ Application will never be able to decrypt the messages if the private key is per
 </ul></li>
 <li>If decryption fails, the message consumption stops and application will notice backlog growth in addition to decryption failure messages in the client log. If application does not have access to the private key to decrypt the message, the only option is to skip/discard backlogged messages.</li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-retention-expiry">← Message retention and expiry</a><a class="docs-next button" href="/docs/en/cookbooks-message-queue">Using Pulsar as a message queue →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#asymmetric-and-symmetric-encryption">Asymmetric and symmetric encryption</a></li><li><a href="#producer">Producer</a></li><li><a href="#consumer"> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-retention-expiry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-message-queue"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#asymmetric-and-symmetric-encryption">Asymmetric and symmetric encryption</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-message-queue.html b/content/docs/en/cookbooks-message-queue.html
index a99e9e8..3eb13b5 100644
--- a/content/docs/en/cookbooks-message-queue.html
+++ b/content/docs/en/cookbooks-message-queue.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-message-queue.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Using Pulsar as a message queue</h1></header><article><div><span><p>Message queues are essential components of many large-scale data architectures. I [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-message-queue.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Using Pulsar as a message queue</h1></header><article><div><span><p>Message queues are essential components of many large-scale data [...]
 <p>Pulsar is a great choice for a message queue because:</p>
 <ul>
 <li>it was built with <a href="/docs/en/concepts-architecture-overview#persistent-storage">persistent message storage</a> in mind</li>
@@ -118,7 +118,7 @@ Consumer consumer;
 
 Result result = client.subscribe(topic, subscription, consumerConfig, consumer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-encryption">← Pulsar Encryption</a><a class="docs-next button" href="/docs/en/develop-tools">Simulation tools →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#java-clients">Java clients</a></li><li><a href="#python-clients">Python clients</a></li><li><a href="#c-clients">C++ clients</a></li></ul></nav></div><footer class="nav-footer" id="footer" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-encryption"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/develop-tools"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#java-clients">Java clients</a></li><li><a href="#python-clients">Python clients</a></li><li><a href="#c-cl [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-message-queue/index.html b/content/docs/en/cookbooks-message-queue/index.html
index a99e9e8..3eb13b5 100644
--- a/content/docs/en/cookbooks-message-queue/index.html
+++ b/content/docs/en/cookbooks-message-queue/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-message-queue.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Using Pulsar as a message queue</h1></header><article><div><span><p>Message queues are essential components of many large-scale data architectures. I [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-message-queue.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Using Pulsar as a message queue</h1></header><article><div><span><p>Message queues are essential components of many large-scale data [...]
 <p>Pulsar is a great choice for a message queue because:</p>
 <ul>
 <li>it was built with <a href="/docs/en/concepts-architecture-overview#persistent-storage">persistent message storage</a> in mind</li>
@@ -118,7 +118,7 @@ Consumer consumer;
 
 Result result = client.subscribe(topic, subscription, consumerConfig, consumer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-encryption">← Pulsar Encryption</a><a class="docs-next button" href="/docs/en/develop-tools">Simulation tools →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#java-clients">Java clients</a></li><li><a href="#python-clients">Python clients</a></li><li><a href="#c-clients">C++ clients</a></li></ul></nav></div><footer class="nav-footer" id="footer" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-encryption"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/develop-tools"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#java-clients">Java clients</a></li><li><a href="#python-clients">Python clients</a></li><li><a href="#c-cl [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-non-persistent.html b/content/docs/en/cookbooks-non-persistent.html
index 7489092..9f76bb3 100644
--- a/content/docs/en/cookbooks-non-persistent.html
+++ b/content/docs/en/cookbooks-non-persistent.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-non-persistent.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which message data is <em>n [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-non-persistent.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which mess [...]
 <ul>
 <li>A basic <a href="#overview">conceptual overview</a> of non-persistent topics</li>
 <li>Information about <a href="#configuration">configurable parameters</a> related to non-persistent topics</li>
@@ -83,7 +83,7 @@
 <p>Non-persistent topics can be managed using the <a href="/docs/en/pulsar-admin#non-persistent"><code>pulsar-admin non-persistent</code></a> command-line interface. With that interface you can perform actions like <a href="/docs/en/pulsar-admin#non-persistent-create-partitioned-topic">create a partitioned non-persistent topic</a>, get <a href="/docs/en/pulsar-admin#non-persistent-stats">stats</a> for a non-persistent topic, <a href="/docs/en/pulsar-admin">list</a> non-persistent topics  [...]
 <h2><a class="anchor" aria-hidden="true" id="using-with-pulsar-clients"></a><a href="#using-with-pulsar-clients" 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 [...]
 <p>You shouldn't need to make any changes to your Pulsar clients to use non-persistent messaging beyond making sure that you use proper <a href="#using">topic names</a> with <code>non-persistent</code> as the topic type.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-deduplication">← Message deduplication</a><a class="docs-next button" href="/docs/en/cookbooks-partitioned">Non-persistent messaging →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#overview">Overview</a></li><li><a href="#using">Using</a></li><li><a href="#enabling">Enabling</a></li><li><a href="#managing-with-cli">Managing with cli</a></li><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-partitioned"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#overview">Overview</a></li><li><a href="#using">Using</a></li><li><a href="#enabling">Enabling< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-non-persistent/index.html b/content/docs/en/cookbooks-non-persistent/index.html
index 7489092..9f76bb3 100644
--- a/content/docs/en/cookbooks-non-persistent/index.html
+++ b/content/docs/en/cookbooks-non-persistent/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-non-persistent.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which message data is <em>n [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-non-persistent.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which mess [...]
 <ul>
 <li>A basic <a href="#overview">conceptual overview</a> of non-persistent topics</li>
 <li>Information about <a href="#configuration">configurable parameters</a> related to non-persistent topics</li>
@@ -83,7 +83,7 @@
 <p>Non-persistent topics can be managed using the <a href="/docs/en/pulsar-admin#non-persistent"><code>pulsar-admin non-persistent</code></a> command-line interface. With that interface you can perform actions like <a href="/docs/en/pulsar-admin#non-persistent-create-partitioned-topic">create a partitioned non-persistent topic</a>, get <a href="/docs/en/pulsar-admin#non-persistent-stats">stats</a> for a non-persistent topic, <a href="/docs/en/pulsar-admin">list</a> non-persistent topics  [...]
 <h2><a class="anchor" aria-hidden="true" id="using-with-pulsar-clients"></a><a href="#using-with-pulsar-clients" 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 [...]
 <p>You shouldn't need to make any changes to your Pulsar clients to use non-persistent messaging beyond making sure that you use proper <a href="#using">topic names</a> with <code>non-persistent</code> as the topic type.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-deduplication">← Message deduplication</a><a class="docs-next button" href="/docs/en/cookbooks-partitioned">Non-persistent messaging →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#overview">Overview</a></li><li><a href="#using">Using</a></li><li><a href="#enabling">Enabling</a></li><li><a href="#managing-with-cli">Managing with cli</a></li><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-partitioned"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#overview">Overview</a></li><li><a href="#using">Using</a></li><li><a href="#enabling">Enabling< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-partitioned.html b/content/docs/en/cookbooks-partitioned.html
index 7de14cb..3e978a7 100644
--- a/content/docs/en/cookbooks-partitioned.html
+++ b/content/docs/en/cookbooks-partitioned.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-partitioned.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p>By default, Pulsar topics are served by a single broker. Using only a single broker, howev [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-partitioned.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p>By default, Pulsar topics are served by a single broker. Using only a sin [...]
 <p>You can <a href="#publishing-to-partitioned-topics">publish</a> to partitioned topics using Pulsar's client libraries and you can <a href="#managing-partitioned-topics">create and manage</a> partitioned topics using Pulsar's <a href="/docs/en/admin-api-overview">admin API</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="publishing-to-partitioned-topics"></a><a href="#publishing-to-partitioned-topics" 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. [...]
 <p>When publishing to partitioned topics, the only difference from non-partitioned topics is that you need to specify a <a href="/docs/en/concepts-messaging#routing-modes">routing mode</a> when you create a new <a href="/docs/en/reference-terminology#producer">producer</a>. Examples for <a href="#java">Java</a> are below.</p>
@@ -94,7 +94,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="managing-partitioned-topics"></a><a href="#managing-partitioned-topics" 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 1 [...]
 <p>You can use Pulsar's <a href="/docs/en/admin-api-overview">admin API</a> to create and manage <a href="/docs/en/admin-api-partitioned-topics">partitioned topics</a>.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-non-persistent">← Non-persistent messaging</a><a class="docs-next button" href="/docs/en/cookbooks-retention-expiry">Message retention and expiry →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#publishing-to-partitioned-topics">Publishing to partitioned topics</a><ul class="toc-headings"><li><a href="#java">Java</a></li></ul></li><li><a href="# [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-retention-expiry"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#publishing-to-partitioned-topics">Publishing to partitioned topics</a><ul class="toc-head [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-partitioned/index.html b/content/docs/en/cookbooks-partitioned/index.html
index 7de14cb..3e978a7 100644
--- a/content/docs/en/cookbooks-partitioned/index.html
+++ b/content/docs/en/cookbooks-partitioned/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-partitioned.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p>By default, Pulsar topics are served by a single broker. Using only a single broker, howev [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-partitioned.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p>By default, Pulsar topics are served by a single broker. Using only a sin [...]
 <p>You can <a href="#publishing-to-partitioned-topics">publish</a> to partitioned topics using Pulsar's client libraries and you can <a href="#managing-partitioned-topics">create and manage</a> partitioned topics using Pulsar's <a href="/docs/en/admin-api-overview">admin API</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="publishing-to-partitioned-topics"></a><a href="#publishing-to-partitioned-topics" 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. [...]
 <p>When publishing to partitioned topics, the only difference from non-partitioned topics is that you need to specify a <a href="/docs/en/concepts-messaging#routing-modes">routing mode</a> when you create a new <a href="/docs/en/reference-terminology#producer">producer</a>. Examples for <a href="#java">Java</a> are below.</p>
@@ -94,7 +94,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="managing-partitioned-topics"></a><a href="#managing-partitioned-topics" 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 1 [...]
 <p>You can use Pulsar's <a href="/docs/en/admin-api-overview">admin API</a> to create and manage <a href="/docs/en/admin-api-partitioned-topics">partitioned topics</a>.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-non-persistent">← Non-persistent messaging</a><a class="docs-next button" href="/docs/en/cookbooks-retention-expiry">Message retention and expiry →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#publishing-to-partitioned-topics">Publishing to partitioned topics</a><ul class="toc-headings"><li><a href="#java">Java</a></li></ul></li><li><a href="# [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-retention-expiry"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#publishing-to-partitioned-topics">Publishing to partitioned topics</a><ul class="toc-head [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-retention-expiry.html b/content/docs/en/cookbooks-retention-expiry.html
index f0327f2..e01ff7a 100644
--- a/content/docs/en/cookbooks-retention-expiry.html
+++ b/content/docs/en/cookbooks-retention-expiry.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-retention-expiry.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Message retention and expiry</h1></header><article><div><span><p>Pulsar brokers are responsible for handling messages that pass through Pulsar, in [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-retention-expiry.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Message retention and expiry</h1></header><article><div><span><p>Pulsar brokers are responsible for handling messages that pass t [...]
 <ul>
 <li>immediately delete all messages that have been acknowledged on every subscription, and</li>
 <li>persistently store all unacknowledged messages in a <a href="#backlog-quotas">backlog</a>.</li>
@@ -224,7 +224,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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. [...]
 <pre><code class="hljs css language-java">admin.namespaces().get
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-partitioned">← Non-persistent messaging</a><a class="docs-next button" href="/docs/en/cookbooks-encryption">Pulsar Encryption →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><li><a href="#defaults">Defaults</a></li><li><a href="#set-retention-policy">Set retention policy</a></li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-partitioned"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-encryption"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><li><a href="#defaults">Default [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-retention-expiry/index.html b/content/docs/en/cookbooks-retention-expiry/index.html
index f0327f2..e01ff7a 100644
--- a/content/docs/en/cookbooks-retention-expiry/index.html
+++ b/content/docs/en/cookbooks-retention-expiry/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-retention-expiry.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Message retention and expiry</h1></header><article><div><span><p>Pulsar brokers are responsible for handling messages that pass through Pulsar, in [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-retention-expiry.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Message retention and expiry</h1></header><article><div><span><p>Pulsar brokers are responsible for handling messages that pass t [...]
 <ul>
 <li>immediately delete all messages that have been acknowledged on every subscription, and</li>
 <li>persistently store all unacknowledged messages in a <a href="#backlog-quotas">backlog</a>.</li>
@@ -224,7 +224,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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. [...]
 <pre><code class="hljs css language-java">admin.namespaces().get
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-partitioned">← Non-persistent messaging</a><a class="docs-next button" href="/docs/en/cookbooks-encryption">Pulsar Encryption →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><li><a href="#defaults">Defaults</a></li><li><a href="#set-retention-policy">Set retention policy</a></li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-partitioned"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-encryption"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><li><a href="#defaults">Default [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-tiered-storage.html b/content/docs/en/cookbooks-tiered-storage.html
index 55f37b2..08dd876 100644
--- a/content/docs/en/cookbooks-tiered-storage.html
+++ b/content/docs/en/cookbooks-tiered-storage.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-tiered-storage.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's <strong>Tiered Storage</strong> feature allows older backlog data to be offloaded to lon [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-tiered-storage.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's <strong>Tiered Storage</strong> feature allows older backlog data to be [...]
 <h2><a class="anchor" aria-hidden="true" id="when-should-i-use-tiered-storage"></a><a href="#when-should-i-use-tiered-storage" 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. [...]
 <p>Tiered storage should be used when you have a topic for which you want to keep a very long backlog for a long time. For example, if you have a topic containing user actions which you use to train your recommendation systems, you may want to keep that data for a long time, so that if you change your recommendation algorithm you can rerun it against your full user history.</p>
 <h2><a class="anchor" aria-hidden="true" id="the-offloading-mechanism"></a><a href="#the-offloading-mechanism" 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-. [...]
@@ -135,7 +135,7 @@ null
 
 Reason: Error offloading: org.apache.bookkeeper.mledger.ManagedLedgerException: java.util.concurrent.CompletionException: com.amazonaws.services.s3.model.AmazonS3Exception: Anonymous users cannot initiate multipart uploads.  Please authenticate. (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 798758DE3F1776DF; S3 Extended Request ID: dhBFz/lZm1oiG/oBEepeNlhrtsDlzoOhocuYMpKihQGXe6EG8puRGOkK6UwqzVrMXTWBxxHcS+g=), S3 Extended Request ID: dhBFz/lZm1oiG/oBEepeNlhr [...]
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/adaptors-storm">← Pulsar adaptor for Apache Storm</a><a class="docs-next button" href="/docs/en/cookbooks-compaction">Topic compaction →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#when-should-i-use-tiered-storage">When should I use Tiered Storage?</a></li><li><a href="#the-offloading-mechanism">The offloading mechanism</a></li><li><a href="#amazon-s3" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/adaptors-storm"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-compaction"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#when-should-i-use-tiered-storage">When should I use Tiered Storage?</a></li><li><a href="#the-offloading- [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/cookbooks-tiered-storage/index.html b/content/docs/en/cookbooks-tiered-storage/index.html
index 55f37b2..08dd876 100644
--- a/content/docs/en/cookbooks-tiered-storage/index.html
+++ b/content/docs/en/cookbooks-tiered-storage/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-tiered-storage.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's <strong>Tiered Storage</strong> feature allows older backlog data to be offloaded to lon [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/cookbooks-tiered-storage.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's <strong>Tiered Storage</strong> feature allows older backlog data to be [...]
 <h2><a class="anchor" aria-hidden="true" id="when-should-i-use-tiered-storage"></a><a href="#when-should-i-use-tiered-storage" 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. [...]
 <p>Tiered storage should be used when you have a topic for which you want to keep a very long backlog for a long time. For example, if you have a topic containing user actions which you use to train your recommendation systems, you may want to keep that data for a long time, so that if you change your recommendation algorithm you can rerun it against your full user history.</p>
 <h2><a class="anchor" aria-hidden="true" id="the-offloading-mechanism"></a><a href="#the-offloading-mechanism" 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-. [...]
@@ -135,7 +135,7 @@ null
 
 Reason: Error offloading: org.apache.bookkeeper.mledger.ManagedLedgerException: java.util.concurrent.CompletionException: com.amazonaws.services.s3.model.AmazonS3Exception: Anonymous users cannot initiate multipart uploads.  Please authenticate. (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 798758DE3F1776DF; S3 Extended Request ID: dhBFz/lZm1oiG/oBEepeNlhrtsDlzoOhocuYMpKihQGXe6EG8puRGOkK6UwqzVrMXTWBxxHcS+g=), S3 Extended Request ID: dhBFz/lZm1oiG/oBEepeNlhr [...]
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/adaptors-storm">← Pulsar adaptor for Apache Storm</a><a class="docs-next button" href="/docs/en/cookbooks-compaction">Topic compaction →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#when-should-i-use-tiered-storage">When should I use Tiered Storage?</a></li><li><a href="#the-offloading-mechanism">The offloading mechanism</a></li><li><a href="#amazon-s3" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/adaptors-storm"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/cookbooks-compaction"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#when-should-i-use-tiered-storage">When should I use Tiered Storage?</a></li><li><a href="#the-offloading- [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/deploy-aws.html b/content/docs/en/deploy-aws.html
index a7fbdfb..f5877a3 100644
--- a/content/docs/en/deploy-aws.html
+++ b/content/docs/en/deploy-aws.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-aws.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying a Pulsar cluster on AWS using Terraform and Ansible</h1></header><article><div><span><blockquote>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-aws.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying a Pulsar cluster on AWS using Terraform and Ansible</h1></header><article><div><span><blockquote>
 <p>For instructions on deploying a single Pulsar cluster manually rather than using Terraform and Ansible, see <a href="/docs/en/deploy-bare-metal">Deploying a Pulsar cluster on bare metal</a>. For instructions on manually deploying a multi-cluster Pulsar instance, see <a href="/docs/en/deploy-bare-metal-multi-cluster">Deploying a Pulsar instance on bare metal</a>.</p>
 </blockquote>
 <p>One of the easiest ways to get a Pulsar <a href="/docs/en/reference-terminology#cluster">cluster</a> running on <a href="https://aws.amazon.com/">Amazon Web Services</a> (AWS) is to use the the <a href="https://terraform.io">Terraform</a> infrastructure provisioning tool and the <a href="https://www.ansible.com">Ansible</a> server automation tool. Terraform can create the resources necessary to run the Pulsar cluster---<a href="https://aws.amazon.com/ec2/">EC2</a> instances, networkin [...]
@@ -199,7 +199,7 @@ it might be potentially erase your disks again and cause the bookies to fail to
 <span class="hljs-meta">&gt;&gt;&gt; </span>client.close()
 </code></pre>
 <p>If all of these commands are successful, your cluster can now be used by Pulsar clients!</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-develop">← Develop Connectors</a><a class="docs-next button" href="/docs/en/deploy-kubernetes">Deploying Pulsar on Kubernetes →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#requirements-and-setup">Requirements and setup</a></li><li><a href="#installation">Installation</a></li><li><a href="#ssh-setup">SSH setup</a></li><li><a href="#creating-aws-resou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-develop"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/deploy-kubernetes"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#requirements-and-setup">Requirements and setup</a></li><li><a href="#installation">Installation</a></li><li><a h [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/deploy-aws/index.html b/content/docs/en/deploy-aws/index.html
index a7fbdfb..f5877a3 100644
--- a/content/docs/en/deploy-aws/index.html
+++ b/content/docs/en/deploy-aws/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-aws.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying a Pulsar cluster on AWS using Terraform and Ansible</h1></header><article><div><span><blockquote>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-aws.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying a Pulsar cluster on AWS using Terraform and Ansible</h1></header><article><div><span><blockquote>
 <p>For instructions on deploying a single Pulsar cluster manually rather than using Terraform and Ansible, see <a href="/docs/en/deploy-bare-metal">Deploying a Pulsar cluster on bare metal</a>. For instructions on manually deploying a multi-cluster Pulsar instance, see <a href="/docs/en/deploy-bare-metal-multi-cluster">Deploying a Pulsar instance on bare metal</a>.</p>
 </blockquote>
 <p>One of the easiest ways to get a Pulsar <a href="/docs/en/reference-terminology#cluster">cluster</a> running on <a href="https://aws.amazon.com/">Amazon Web Services</a> (AWS) is to use the the <a href="https://terraform.io">Terraform</a> infrastructure provisioning tool and the <a href="https://www.ansible.com">Ansible</a> server automation tool. Terraform can create the resources necessary to run the Pulsar cluster---<a href="https://aws.amazon.com/ec2/">EC2</a> instances, networkin [...]
@@ -199,7 +199,7 @@ it might be potentially erase your disks again and cause the bookies to fail to
 <span class="hljs-meta">&gt;&gt;&gt; </span>client.close()
 </code></pre>
 <p>If all of these commands are successful, your cluster can now be used by Pulsar clients!</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-develop">← Develop Connectors</a><a class="docs-next button" href="/docs/en/deploy-kubernetes">Deploying Pulsar on Kubernetes →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#requirements-and-setup">Requirements and setup</a></li><li><a href="#installation">Installation</a></li><li><a href="#ssh-setup">SSH setup</a></li><li><a href="#creating-aws-resou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-develop"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/deploy-kubernetes"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#requirements-and-setup">Requirements and setup</a></li><li><a href="#installation">Installation</a></li><li><a h [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/deploy-bare-metal-multi-cluster.html b/content/docs/en/deploy-bare-metal-multi-cluster.html
index 71b36c2..922305c 100644
--- a/content/docs/en/deploy-bare-metal-multi-cluster.html
+++ b/content/docs/en/deploy-bare-metal-multi-cluster.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-bare-metal-multi-cluster.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying a multi-cluster on bare metal</h1></header><article><div><span><blockquote>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-bare-metal-multi-cluster.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying a multi-cluster on bare metal</h1></header><article><div><span><blockquote>
 <h3><a class="anchor" aria-hidden="true" id="tips"></a><a href="#tips" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <ol>
 <li><p>Single-cluster Pulsar installations should be sufficient for all but the most ambitious use cases. If you're interested in experimenting with
@@ -319,7 +319,7 @@ for messages:</p>
 <p>To report the topic stats:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin persistent stats persistent://<span class="hljs-built_in">test</span>-tenant/us-west/ns1/my-topic</span>
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-bare-metal">← Deploying a cluster on bare metal</a><a class="docs-next button" href="/docs/en/deploy-dcos">Deploying Pulsar on DC/OS →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#system-requirement">System requirement</a></li><li><a href="#installing-pulsar">Installing Pulsar</a></li><li><a href="#what-your-package-contains">What your package co [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-bare-metal"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/deploy-dcos"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#system-requirement">System requirement</a></li><li><a href="#installing-pulsar">Installing Pulsar</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/deploy-bare-metal-multi-cluster/index.html b/content/docs/en/deploy-bare-metal-multi-cluster/index.html
index 71b36c2..922305c 100644
--- a/content/docs/en/deploy-bare-metal-multi-cluster/index.html
+++ b/content/docs/en/deploy-bare-metal-multi-cluster/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-bare-metal-multi-cluster.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying a multi-cluster on bare metal</h1></header><article><div><span><blockquote>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-bare-metal-multi-cluster.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying a multi-cluster on bare metal</h1></header><article><div><span><blockquote>
 <h3><a class="anchor" aria-hidden="true" id="tips"></a><a href="#tips" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <ol>
 <li><p>Single-cluster Pulsar installations should be sufficient for all but the most ambitious use cases. If you're interested in experimenting with
@@ -319,7 +319,7 @@ for messages:</p>
 <p>To report the topic stats:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin persistent stats persistent://<span class="hljs-built_in">test</span>-tenant/us-west/ns1/my-topic</span>
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-bare-metal">← Deploying a cluster on bare metal</a><a class="docs-next button" href="/docs/en/deploy-dcos">Deploying Pulsar on DC/OS →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#system-requirement">System requirement</a></li><li><a href="#installing-pulsar">Installing Pulsar</a></li><li><a href="#what-your-package-contains">What your package co [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-bare-metal"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/deploy-dcos"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#system-requirement">System requirement</a></li><li><a href="#installing-pulsar">Installing Pulsar</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/deploy-bare-metal.html b/content/docs/en/deploy-bare-metal.html
index 69b5f30..91e6dc2 100644
--- a/content/docs/en/deploy-bare-metal.html
+++ b/content/docs/en/deploy-bare-metal.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-bare-metal.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying a cluster on bare metal</h1></header><article><div><span><blockquote>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-bare-metal.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying a cluster on bare metal</h1></header><article><div><span><blockquote>
 <h3><a class="anchor" aria-hidden="true" id="tips"></a><a href="#tips" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <ol>
 <li><p>Single-cluster Pulsar installations should be sufficient for all but the most ambitious use cases. If you're interested in experimenting with
@@ -305,7 +305,7 @@ brokerServiceurl=<span class="hljs-string">pulsar:</span><span class="hljs-comme
 <p>You will see output as below:</p>
 <pre><code class="hljs css language-shell">hello world!
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-kubernetes">← Deploying Pulsar on Kubernetes</a><a class="docs-next button" href="/docs/en/deploy-bare-metal-multi-cluster">Deploying a multi-cluster on bare metal →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#preparation">Preparation</a><ul class="toc-headings"><li><a href="#requirements">Requirements</a></li><li><a href="#hardware-consideratio [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-kubernetes"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/deploy-bare-metal-multi-cluster"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#preparation">Preparation</a><ul class="toc-headings"><li><a href="#requirements">Requiremen [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/deploy-bare-metal/index.html b/content/docs/en/deploy-bare-metal/index.html
index 69b5f30..91e6dc2 100644
--- a/content/docs/en/deploy-bare-metal/index.html
+++ b/content/docs/en/deploy-bare-metal/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-bare-metal.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying a cluster on bare metal</h1></header><article><div><span><blockquote>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-bare-metal.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying a cluster on bare metal</h1></header><article><div><span><blockquote>
 <h3><a class="anchor" aria-hidden="true" id="tips"></a><a href="#tips" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <ol>
 <li><p>Single-cluster Pulsar installations should be sufficient for all but the most ambitious use cases. If you're interested in experimenting with
@@ -305,7 +305,7 @@ brokerServiceurl=<span class="hljs-string">pulsar:</span><span class="hljs-comme
 <p>You will see output as below:</p>
 <pre><code class="hljs css language-shell">hello world!
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-kubernetes">← Deploying Pulsar on Kubernetes</a><a class="docs-next button" href="/docs/en/deploy-bare-metal-multi-cluster">Deploying a multi-cluster on bare metal →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#preparation">Preparation</a><ul class="toc-headings"><li><a href="#requirements">Requirements</a></li><li><a href="#hardware-consideratio [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-kubernetes"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/deploy-bare-metal-multi-cluster"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#preparation">Preparation</a><ul class="toc-headings"><li><a href="#requirements">Requiremen [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/deploy-dcos.html b/content/docs/en/deploy-dcos.html
index 27f3d3c..0d5a0bf 100644
--- a/content/docs/en/deploy-dcos.html
+++ b/content/docs/en/deploy-dcos.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-dcos.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying Pulsar on DC/OS</h1></header><article><div><span><blockquote>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-dcos.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying Pulsar on DC/OS</h1></header><article><div><span><blockquote>
 <h3><a class="anchor" aria-hidden="true" id="tips"></a><a href="#tips" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <p>If you want to enable all builtin <a href="/docs/en/io-overview">Pulsar IO</a> connectors in your Pulsar deployment, you can choose to use <code>apachepulsar/pulsar-all</code> image instead of
 <code>apachepulsar/pulsar</code> image. <code>apachepulsar/pulsar-all</code> image has already bundled <a href="/docs/en/io-overview#working-with-connectors">all builtin connectors</a>.</p>
@@ -149,7 +149,7 @@ The <code>pulsar://a1.dcos:6650</code> endpoint is for the broker service. Endpo
 <pre><code class="hljs css language-bash">$ dcos marathon group remove /pulsar
 </code></pre></li>
 </ol>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-bare-metal-multi-cluster">← Deploying a multi-cluster on bare metal</a><a class="docs-next button" href="/docs/en/deploy-monitoring">Monitoring →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a></li><li><a href="#deploy-pulsar-using-the-dc-os-command-interface">Deploy Pulsar using the DC/OS command interface</a></li>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-bare-metal-multi-cluster"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/deploy-monitoring"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a></li><li><a href="#deploy-pulsar-using-the-dc-os-command-in [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/deploy-dcos/index.html b/content/docs/en/deploy-dcos/index.html
index 27f3d3c..0d5a0bf 100644
--- a/content/docs/en/deploy-dcos/index.html
+++ b/content/docs/en/deploy-dcos/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-dcos.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying Pulsar on DC/OS</h1></header><article><div><span><blockquote>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-dcos.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying Pulsar on DC/OS</h1></header><article><div><span><blockquote>
 <h3><a class="anchor" aria-hidden="true" id="tips"></a><a href="#tips" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <p>If you want to enable all builtin <a href="/docs/en/io-overview">Pulsar IO</a> connectors in your Pulsar deployment, you can choose to use <code>apachepulsar/pulsar-all</code> image instead of
 <code>apachepulsar/pulsar</code> image. <code>apachepulsar/pulsar-all</code> image has already bundled <a href="/docs/en/io-overview#working-with-connectors">all builtin connectors</a>.</p>
@@ -149,7 +149,7 @@ The <code>pulsar://a1.dcos:6650</code> endpoint is for the broker service. Endpo
 <pre><code class="hljs css language-bash">$ dcos marathon group remove /pulsar
 </code></pre></li>
 </ol>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-bare-metal-multi-cluster">← Deploying a multi-cluster on bare metal</a><a class="docs-next button" href="/docs/en/deploy-monitoring">Monitoring →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a></li><li><a href="#deploy-pulsar-using-the-dc-os-command-interface">Deploy Pulsar using the DC/OS command interface</a></li>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-bare-metal-multi-cluster"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/deploy-monitoring"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a></li><li><a href="#deploy-pulsar-using-the-dc-os-command-in [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/deploy-kubernetes.html b/content/docs/en/deploy-kubernetes.html
index 843fb51..97ce858 100644
--- a/content/docs/en/deploy-kubernetes.html
+++ b/content/docs/en/deploy-kubernetes.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-kubernetes.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying Pulsar on Kubernetes</h1></header><article><div><span><blockquote>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-kubernetes.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying Pulsar on Kubernetes</h1></header><article><div><span><blockquote>
 <h3><a class="anchor" aria-hidden="true" id="tips"></a><a href="#tips" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <p>If you want to enable all builtin <a href="/docs/en/io-overview">Pulsar IO</a> connectors in your Pulsar deployment, you can choose to use <code>apachepulsar/pulsar-all</code> image instead of
 <code>apachepulsar/pulsar</code> image. <code>apachepulsar/pulsar-all</code> image has already bundled <a href="/docs/en/io-overview#working-with-connectors">all builtin connectors</a>.</p>
@@ -313,7 +313,7 @@ make sure you follow <a href="https://docs.helm.sh/using_helm">Helm documentatio
 <li>Web service url: <code>http://$(minikube ip):30001/</code></li>
 <li>Pulsar service url: <code>pulsar://$(minikube ip):30002/</code></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-aws">← Deploying a Pulsar cluster on AWS using Terraform and Ansible</a><a class="docs-next button" href="/docs/en/deploy-bare-metal">Deploying a cluster on bare metal →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar on Google Kubernetes Engine</a><ul class="toc-headings" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-aws"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/deploy-bare-metal"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar on Google Kubernetes Engine</a><ul [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/deploy-kubernetes/index.html b/content/docs/en/deploy-kubernetes/index.html
index 843fb51..97ce858 100644
--- a/content/docs/en/deploy-kubernetes/index.html
+++ b/content/docs/en/deploy-kubernetes/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-kubernetes.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying Pulsar on Kubernetes</h1></header><article><div><span><blockquote>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-kubernetes.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying Pulsar on Kubernetes</h1></header><article><div><span><blockquote>
 <h3><a class="anchor" aria-hidden="true" id="tips"></a><a href="#tips" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <p>If you want to enable all builtin <a href="/docs/en/io-overview">Pulsar IO</a> connectors in your Pulsar deployment, you can choose to use <code>apachepulsar/pulsar-all</code> image instead of
 <code>apachepulsar/pulsar</code> image. <code>apachepulsar/pulsar-all</code> image has already bundled <a href="/docs/en/io-overview#working-with-connectors">all builtin connectors</a>.</p>
@@ -313,7 +313,7 @@ make sure you follow <a href="https://docs.helm.sh/using_helm">Helm documentatio
 <li>Web service url: <code>http://$(minikube ip):30001/</code></li>
 <li>Pulsar service url: <code>pulsar://$(minikube ip):30002/</code></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-aws">← Deploying a Pulsar cluster on AWS using Terraform and Ansible</a><a class="docs-next button" href="/docs/en/deploy-bare-metal">Deploying a cluster on bare metal →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar on Google Kubernetes Engine</a><ul class="toc-headings" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-aws"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/deploy-bare-metal"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar on Google Kubernetes Engine</a><ul [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/deploy-monitoring.html b/content/docs/en/deploy-monitoring.html
index 3f6c349..c741483 100644
--- a/content/docs/en/deploy-monitoring.html
+++ b/content/docs/en/deploy-monitoring.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-monitoring.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Monitoring</h1></header><article><div><span><p>There are different ways to monitor a Pulsar cluster, exposing both metrics relative to the usage of topics  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-monitoring.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Monitoring</h1></header><article><div><span><p>There are different ways to monitor a Pulsar cluster, exposing both metrics relative to the [...]
 <h2><a class="anchor" aria-hidden="true" id="collecting-metrics"></a><a href="#collecting-metrics" 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- [...]
 <h3><a class="anchor" aria-hidden="true" id="broker-stats"></a><a href="#broker-stats" 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. [...]
 <p>Pulsar broker metrics can be collected from brokers and exported in JSON format. There are two main types of metrics:</p>
@@ -100,7 +100,7 @@ in place. This is enabled by default when deploying Pulsar on Kubernetes.</p>
         -e PROMETHEUS_URL=http://$PROMETHEUS_HOST:9090/ \
         apachepulsar/pulsar-grafana:latest
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-dcos">← Deploying Pulsar on DC/OS</a><a class="docs-next button" href="/docs/en/administration-zk-bk">ZooKeeper and BookKeeper administration →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#collecting-metrics">Collecting metrics</a><ul class="toc-headings"><li><a href="#broker-stats">Broker stats</a></li><li><a href="#zookeeper-stats">ZooKeeper st [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-dcos"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/administration-zk-bk"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#collecting-metrics">Collecting metrics</a><ul class="toc-headings"><li><a href="#broker-stats">Broker stats< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/deploy-monitoring/index.html b/content/docs/en/deploy-monitoring/index.html
index 3f6c349..c741483 100644
--- a/content/docs/en/deploy-monitoring/index.html
+++ b/content/docs/en/deploy-monitoring/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-monitoring.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Monitoring</h1></header><article><div><span><p>There are different ways to monitor a Pulsar cluster, exposing both metrics relative to the usage of topics  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/deploy-monitoring.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Monitoring</h1></header><article><div><span><p>There are different ways to monitor a Pulsar cluster, exposing both metrics relative to the [...]
 <h2><a class="anchor" aria-hidden="true" id="collecting-metrics"></a><a href="#collecting-metrics" 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- [...]
 <h3><a class="anchor" aria-hidden="true" id="broker-stats"></a><a href="#broker-stats" 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. [...]
 <p>Pulsar broker metrics can be collected from brokers and exported in JSON format. There are two main types of metrics:</p>
@@ -100,7 +100,7 @@ in place. This is enabled by default when deploying Pulsar on Kubernetes.</p>
         -e PROMETHEUS_URL=http://$PROMETHEUS_HOST:9090/ \
         apachepulsar/pulsar-grafana:latest
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-dcos">← Deploying Pulsar on DC/OS</a><a class="docs-next button" href="/docs/en/administration-zk-bk">ZooKeeper and BookKeeper administration →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#collecting-metrics">Collecting metrics</a><ul class="toc-headings"><li><a href="#broker-stats">Broker stats</a></li><li><a href="#zookeeper-stats">ZooKeeper st [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/deploy-dcos"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/administration-zk-bk"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#collecting-metrics">Collecting metrics</a><ul class="toc-headings"><li><a href="#broker-stats">Broker stats< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/develop-binary-protocol.html b/content/docs/en/develop-binary-protocol.html
index eda0c6f..d36d8a5 100644
--- a/content/docs/en/develop-binary-protocol.html
+++ b/content/docs/en/develop-binary-protocol.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-binary-protocol.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar binary protocol specification</h1></header><article><div><span><p>Pulsar uses a custom binary protocol for communications between producers [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-binary-protocol.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar binary protocol specification</h1></header><article><div><span><p>Pulsar uses a custom binary protocol for communications  [...]
 <p>Clients and brokers exchange <em>commands</em> with each other. Commands are formatted as binary <a href="https://developers.google.com/protocol-buffers/">protocol buffer</a> (aka <em>protobuf</em>) messages. The format of protobuf commands is specified in the <a href="https://github.com/apache/incubator-pulsar/blob/master/pulsar-common/src/main/proto/PulsarApi.proto"><code>PulsarApi.proto</code></a> file and also documented in the <a href="#protobuf-interface">Protobuf interface</a>  [...]
 <blockquote>
 <h3><a class="anchor" aria-hidden="true" id="connection-sharing"></a><a href="#connection-sharing" 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- [...]
@@ -493,7 +493,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-tools">← Simulation tools</a><a class="docs-next button" href="/docs/en/develop-schema">Custom schema storage →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li><a href="#payload-commands">Payload commands</a></li></ul></li><li><a href="#message-m [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-tools"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li><a href= [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/develop-binary-protocol/index.html b/content/docs/en/develop-binary-protocol/index.html
index eda0c6f..d36d8a5 100644
--- a/content/docs/en/develop-binary-protocol/index.html
+++ b/content/docs/en/develop-binary-protocol/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-binary-protocol.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar binary protocol specification</h1></header><article><div><span><p>Pulsar uses a custom binary protocol for communications between producers [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-binary-protocol.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar binary protocol specification</h1></header><article><div><span><p>Pulsar uses a custom binary protocol for communications  [...]
 <p>Clients and brokers exchange <em>commands</em> with each other. Commands are formatted as binary <a href="https://developers.google.com/protocol-buffers/">protocol buffer</a> (aka <em>protobuf</em>) messages. The format of protobuf commands is specified in the <a href="https://github.com/apache/incubator-pulsar/blob/master/pulsar-common/src/main/proto/PulsarApi.proto"><code>PulsarApi.proto</code></a> file and also documented in the <a href="#protobuf-interface">Protobuf interface</a>  [...]
 <blockquote>
 <h3><a class="anchor" aria-hidden="true" id="connection-sharing"></a><a href="#connection-sharing" 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- [...]
@@ -493,7 +493,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-tools">← Simulation tools</a><a class="docs-next button" href="/docs/en/develop-schema">Custom schema storage →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li><a href="#payload-commands">Payload commands</a></li></ul></li><li><a href="#message-m [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-tools"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li><a href= [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/develop-cpp.html b/content/docs/en/develop-cpp.html
index f91abe6..cec1fe0 100644
--- a/content/docs/en/develop-cpp.html
+++ b/content/docs/en/develop-cpp.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-cpp.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Building Pulsar C++ client</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="supported-platforms"></a><a href="#supported-platform [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-cpp.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Building Pulsar C++ client</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="supported-platforms"></a><a href="#s [...]
 <p>The Pulsar C++ client has been successfully tested on <strong>MacOS</strong> and <strong>Linux</strong>.</p>
 <h2><a class="anchor" aria-hidden="true" id="system-requirements"></a><a href="#system-requirements" 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>You need to have the following installed to use the C++ client:</p>
@@ -115,7 +115,7 @@ $</span><span class="bash"> <span class="hljs-built_in">cd</span> /usr/src/gmock
 <span class="hljs-meta">$</span><span class="bash"> cmake .</span>
 <span class="hljs-meta">$</span><span class="bash"> make</span>
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-load-manager">← Modular load manager</a><a class="docs-next button" href="/docs/en/reference-terminology">Pulsar Terminology →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#supported-platforms">Supported platforms</a></li><li><a href="#system-requirements">System requirements</a></li><li><a href="#compilation">Compilation</a><ul class="toc-headin [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-load-manager"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/reference-terminology"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#supported-platforms">Supported platforms</a></li><li><a href="#system-requirements">System require [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/develop-cpp/index.html b/content/docs/en/develop-cpp/index.html
index f91abe6..cec1fe0 100644
--- a/content/docs/en/develop-cpp/index.html
+++ b/content/docs/en/develop-cpp/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-cpp.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Building Pulsar C++ client</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="supported-platforms"></a><a href="#supported-platform [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-cpp.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Building Pulsar C++ client</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="supported-platforms"></a><a href="#s [...]
 <p>The Pulsar C++ client has been successfully tested on <strong>MacOS</strong> and <strong>Linux</strong>.</p>
 <h2><a class="anchor" aria-hidden="true" id="system-requirements"></a><a href="#system-requirements" 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>You need to have the following installed to use the C++ client:</p>
@@ -115,7 +115,7 @@ $</span><span class="bash"> <span class="hljs-built_in">cd</span> /usr/src/gmock
 <span class="hljs-meta">$</span><span class="bash"> cmake .</span>
 <span class="hljs-meta">$</span><span class="bash"> make</span>
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-load-manager">← Modular load manager</a><a class="docs-next button" href="/docs/en/reference-terminology">Pulsar Terminology →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#supported-platforms">Supported platforms</a></li><li><a href="#system-requirements">System requirements</a></li><li><a href="#compilation">Compilation</a><ul class="toc-headin [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-load-manager"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/reference-terminology"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#supported-platforms">Supported platforms</a></li><li><a href="#system-requirements">System require [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/develop-load-manager.html b/content/docs/en/develop-load-manager.html
index e080054..77f4083 100644
--- a/content/docs/en/develop-load-manager.html
+++ b/content/docs/en/develop-load-manager.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-load-manager.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Modular load manager</h1></header><article><div><span><p>The <em>modular load manager</em>, implemented in  <a href="https://github.com/apache/incuba [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-load-manager.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Modular load manager</h1></header><article><div><span><p>The <em>modular load manager</em>, implemented in  <a href="https://github. [...]
 <h2><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" 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>There are two ways that you can enable the modular load manager:</p>
 <ol>
@@ -214,7 +214,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-schema">← Custom schema storage</a><a class="docs-next button" href="/docs/en/develop-cpp">Building Pulsar C++ client →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implementation">Implementation</a><ul class="toc-headings"><li><a href="#data">Data</a></li><li><a [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/develop-cpp"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implementation">Implementation [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/develop-load-manager/index.html b/content/docs/en/develop-load-manager/index.html
index e080054..77f4083 100644
--- a/content/docs/en/develop-load-manager/index.html
+++ b/content/docs/en/develop-load-manager/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-load-manager.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Modular load manager</h1></header><article><div><span><p>The <em>modular load manager</em>, implemented in  <a href="https://github.com/apache/incuba [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-load-manager.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Modular load manager</h1></header><article><div><span><p>The <em>modular load manager</em>, implemented in  <a href="https://github. [...]
 <h2><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" 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>There are two ways that you can enable the modular load manager:</p>
 <ol>
@@ -214,7 +214,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-schema">← Custom schema storage</a><a class="docs-next button" href="/docs/en/develop-cpp">Building Pulsar C++ client →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implementation">Implementation</a><ul class="toc-headings"><li><a href="#data">Data</a></li><li><a [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/develop-cpp"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implementation">Implementation [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/develop-schema.html b/content/docs/en/develop-schema.html
index 5600bb0..5da42a1 100644
--- a/content/docs/en/develop-schema.html
+++ b/content/docs/en/develop-schema.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/concepts-schema-registry">schemas</a> in <a [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/concepts-schema-registry"> [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" 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>The <code>SchemaStorage</code> interface has the following methods:</p>
@@ -89,7 +89,7 @@
 <li>Change the <code>schemaRegistryStorageClassName</code> configuration in <a href="/docs/en/reference-configuration#broker"><code>broker.conf</code></a> to your custom factory class (i.e. the <code>SchemaStorageFactory</code> implementation, not the <code>SchemaStorage</code> implementation).</li>
 <li>Start up Pulsar.</li>
 </ol>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-binary-protocol">← Pulsar binary protocol specification</a><a class="docs-next button" href="/docs/en/develop-load-manager">Modular load manager →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#schemastorage-interface">SchemaStorage interface</a></li><li><a href="#schemastoragefactory-interface">SchemaStorageFactory interface</a></li><li><a href=" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-binary-protocol"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/develop-load-manager"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#schemastorage-interface">SchemaStorage interface</a></li><li><a href="#schemastoragefactory-inte [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/develop-schema/index.html b/content/docs/en/develop-schema/index.html
index 5600bb0..5da42a1 100644
--- a/content/docs/en/develop-schema/index.html
+++ b/content/docs/en/develop-schema/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/concepts-schema-registry">schemas</a> in <a [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/concepts-schema-registry"> [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" 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>The <code>SchemaStorage</code> interface has the following methods:</p>
@@ -89,7 +89,7 @@
 <li>Change the <code>schemaRegistryStorageClassName</code> configuration in <a href="/docs/en/reference-configuration#broker"><code>broker.conf</code></a> to your custom factory class (i.e. the <code>SchemaStorageFactory</code> implementation, not the <code>SchemaStorage</code> implementation).</li>
 <li>Start up Pulsar.</li>
 </ol>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-binary-protocol">← Pulsar binary protocol specification</a><a class="docs-next button" href="/docs/en/develop-load-manager">Modular load manager →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#schemastorage-interface">SchemaStorage interface</a></li><li><a href="#schemastoragefactory-interface">SchemaStorageFactory interface</a></li><li><a href=" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-binary-protocol"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/develop-load-manager"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#schemastorage-interface">SchemaStorage interface</a></li><li><a href="#schemastoragefactory-inte [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/develop-tools.html b/content/docs/en/develop-tools.html
index bb9ca8c..f433b33 100644
--- a/content/docs/en/develop-tools.html
+++ b/content/docs/en/develop-tools.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-tools.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Simulation tools</h1></header><article><div><span><p>It is sometimes necessary create an test environment and incur artificial load to observe how well load [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-tools.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Simulation tools</h1></header><article><div><span><p>It is sometimes necessary create an test environment and incur artificial load to obse [...]
 handle the load. The load simulation controller, the load simulation client, and the broker monitor were created as an
 effort to make create this load and observe the effects on the managers more easily.</p>
 <h2><a class="anchor" aria-hidden="true" id="simulation-client"></a><a href="#simulation-client" 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- [...]
@@ -138,7 +138,7 @@ console as it is updated using watchers.</p>
 <pre><code class="hljs">pulsar-perf<span class="hljs-built_in"> monitor-brokers </span>--connect-string &lt;zookeeper host:port&gt;
 </code></pre>
 <p>The console will then continuously print load data until it is interrupted.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-message-queue">← Using Pulsar as a message queue</a><a class="docs-next button" href="/docs/en/develop-binary-protocol">Pulsar binary protocol specification →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#simulation-client">Simulation Client</a><ul class="toc-headings"><li><a href="#usage">Usage</a></li></ul></li><li><a href="#simulation-contro [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-message-queue"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/develop-binary-protocol"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#simulation-client">Simulation Client</a><ul class="toc-headings"><li><a href="#usage">Usage</ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/develop-tools/index.html b/content/docs/en/develop-tools/index.html
index bb9ca8c..f433b33 100644
--- a/content/docs/en/develop-tools/index.html
+++ b/content/docs/en/develop-tools/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-tools.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Simulation tools</h1></header><article><div><span><p>It is sometimes necessary create an test environment and incur artificial load to observe how well load [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-tools.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Simulation tools</h1></header><article><div><span><p>It is sometimes necessary create an test environment and incur artificial load to obse [...]
 handle the load. The load simulation controller, the load simulation client, and the broker monitor were created as an
 effort to make create this load and observe the effects on the managers more easily.</p>
 <h2><a class="anchor" aria-hidden="true" id="simulation-client"></a><a href="#simulation-client" 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- [...]
@@ -138,7 +138,7 @@ console as it is updated using watchers.</p>
 <pre><code class="hljs">pulsar-perf<span class="hljs-built_in"> monitor-brokers </span>--connect-string &lt;zookeeper host:port&gt;
 </code></pre>
 <p>The console will then continuously print load data until it is interrupted.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-message-queue">← Using Pulsar as a message queue</a><a class="docs-next button" href="/docs/en/develop-binary-protocol">Pulsar binary protocol specification →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#simulation-client">Simulation Client</a><ul class="toc-headings"><li><a href="#usage">Usage</a></li></ul></li><li><a href="#simulation-contro [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/cookbooks-message-queue"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/develop-binary-protocol"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#simulation-client">Simulation Client</a><ul class="toc-headings"><li><a href="#usage">Usage</ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/functions-api.html b/content/docs/en/functions-api.html
index a430aa9..3fb2098 100644
--- a/content/docs/en/functions-api.html
+++ b/content/docs/en/functions-api.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-api.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Functions API</h1></header><article><div><span><p><a href="/docs/en/functions-overview">Pulsar Functions</a> provides an easy-to-use API that develo [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-api.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Functions API</h1></header><article><div><span><p><a href="/docs/en/functions-overview">Pulsar Functions</a> provides an easy-to-us [...]
 <blockquote>
 <p>For a more in-depth overview of the Pulsar Functions feature, see the <a href="/docs/en/functions-overview">Pulsar Functions overview</a>.</p>
 </blockquote>
@@ -637,7 +637,7 @@ String wotd = context.getUserConfigValueOrDefault(<span class="hljs-string">"wor
         <span class="hljs-keyword">if</span> input == <span class="hljs-number">11</span>:
             context.record_metric(<span class="hljs-string">'elevens-count'</span>, <span class="hljs-number">1</span>)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-quickstart">← Getting started with Pulsar Functions</a><a class="docs-next button" href="/docs/en/functions-deploying">Deploying and managing Pulsar Functions →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#core-programming-model">Core programming model</a><ul class="toc-headings"><li><a href="#example-function">Example function</a></li><li><a  [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-quickstart"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-deploying"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#core-programming-model">Core programming model</a><ul class="toc-headings"><li><a href="#example-fun [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/functions-api/index.html b/content/docs/en/functions-api/index.html
index a430aa9..3fb2098 100644
--- a/content/docs/en/functions-api/index.html
+++ b/content/docs/en/functions-api/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-api.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Functions API</h1></header><article><div><span><p><a href="/docs/en/functions-overview">Pulsar Functions</a> provides an easy-to-use API that develo [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-api.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar Functions API</h1></header><article><div><span><p><a href="/docs/en/functions-overview">Pulsar Functions</a> provides an easy-to-us [...]
 <blockquote>
 <p>For a more in-depth overview of the Pulsar Functions feature, see the <a href="/docs/en/functions-overview">Pulsar Functions overview</a>.</p>
 </blockquote>
@@ -637,7 +637,7 @@ String wotd = context.getUserConfigValueOrDefault(<span class="hljs-string">"wor
         <span class="hljs-keyword">if</span> input == <span class="hljs-number">11</span>:
             context.record_metric(<span class="hljs-string">'elevens-count'</span>, <span class="hljs-number">1</span>)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-quickstart">← Getting started with Pulsar Functions</a><a class="docs-next button" href="/docs/en/functions-deploying">Deploying and managing Pulsar Functions →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#core-programming-model">Core programming model</a><ul class="toc-headings"><li><a href="#example-function">Example function</a></li><li><a  [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-quickstart"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-deploying"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#core-programming-model">Core programming model</a><ul class="toc-headings"><li><a href="#example-fun [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/functions-deploying.html b/content/docs/en/functions-deploying.html
index a8d9ae8..dfbed3b 100644
--- a/content/docs/en/functions-deploying.html
+++ b/content/docs/en/functions-deploying.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-deploying.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying and managing Pulsar Functions</h1></header><article><div><span><p>At the moment, there are two deployment modes available for Pulsar Functions:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-deploying.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying and managing Pulsar Functions</h1></header><article><div><span><p>At the moment, there are two deployment modes available for  [...]
 <table>
 <thead>
 <tr><th style="text-align:left">Mode</th><th style="text-align:left">Description</th></tr>
@@ -214,7 +214,7 @@ This <span class="hljs-keyword">function</span> <span class="hljs-title">has</sp
 <h4><a class="anchor" aria-hidden="true" id="topic-info-not-required"></a><a href="#topic-info-not-required" 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 the <code>trigger</code> command above, you may have noticed that you only need to specify basic information about the function (tenant, namespace, and name). To trigger the function, you didn't need to know the function's input topic(s).</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-api">← The Pulsar Functions API</a><a class="docs-next button" href="/docs/en/functions-guarantees">Processing guarantees →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#requirements">Requirements</a></li><li><a href="#command-line-interface">Command-line interface</a><ul class="toc-headings"><li><a href="#fully-qualified-function-name-fqfn">Fu [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-api"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-guarantees"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#requirements">Requirements</a></li><li><a href="#command-line-interface">Command-line interface</a><ul cla [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/functions-deploying/index.html b/content/docs/en/functions-deploying/index.html
index a8d9ae8..dfbed3b 100644
--- a/content/docs/en/functions-deploying/index.html
+++ b/content/docs/en/functions-deploying/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-deploying.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying and managing Pulsar Functions</h1></header><article><div><span><p>At the moment, there are two deployment modes available for Pulsar Functions:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-deploying.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Deploying and managing Pulsar Functions</h1></header><article><div><span><p>At the moment, there are two deployment modes available for  [...]
 <table>
 <thead>
 <tr><th style="text-align:left">Mode</th><th style="text-align:left">Description</th></tr>
@@ -214,7 +214,7 @@ This <span class="hljs-keyword">function</span> <span class="hljs-title">has</sp
 <h4><a class="anchor" aria-hidden="true" id="topic-info-not-required"></a><a href="#topic-info-not-required" 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 the <code>trigger</code> command above, you may have noticed that you only need to specify basic information about the function (tenant, namespace, and name). To trigger the function, you didn't need to know the function's input topic(s).</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-api">← The Pulsar Functions API</a><a class="docs-next button" href="/docs/en/functions-guarantees">Processing guarantees →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#requirements">Requirements</a></li><li><a href="#command-line-interface">Command-line interface</a><ul class="toc-headings"><li><a href="#fully-qualified-function-name-fqfn">Fu [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-api"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-guarantees"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#requirements">Requirements</a></li><li><a href="#command-line-interface">Command-line interface</a><ul cla [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/functions-guarantees.html b/content/docs/en/functions-guarantees.html
index ae788c6..1a28c33 100644
--- a/content/docs/en/functions-guarantees.html
+++ b/content/docs/en/functions-guarantees.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-guarantees.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Processing guarantees</h1></header><article><div><span><p>Pulsar Functions provides three different messaging semantics that you can apply to any function:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-guarantees.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Processing guarantees</h1></header><article><div><span><p>Pulsar Functions provides three different messaging semantics that you can ap [...]
 <table>
 <thead>
 <tr><th style="text-align:left">Delivery semantics</th><th style="text-align:left">Description</th></tr>
@@ -77,7 +77,7 @@
   --processingGuarantees ATMOST_ONCE \
   <span class="hljs-comment"># Other function configs</span>
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-deploying">← Deploying and managing Pulsar Functions</a><a class="docs-next button" href="/docs/en/functions-state">Pulsar Functions State Storage (Developer Preview) →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#applying-processing-guarantees-to-a-function">Applying processing guarantees to a function</a></li><li><a href="#updating-the-proce [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-deploying"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-state"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#applying-processing-guarantees-to-a-function">Applying processing guarantees to a function</a></li><li><a [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/functions-guarantees/index.html b/content/docs/en/functions-guarantees/index.html
index ae788c6..1a28c33 100644
--- a/content/docs/en/functions-guarantees/index.html
+++ b/content/docs/en/functions-guarantees/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-guarantees.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Processing guarantees</h1></header><article><div><span><p>Pulsar Functions provides three different messaging semantics that you can apply to any function:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-guarantees.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Processing guarantees</h1></header><article><div><span><p>Pulsar Functions provides three different messaging semantics that you can ap [...]
 <table>
 <thead>
 <tr><th style="text-align:left">Delivery semantics</th><th style="text-align:left">Description</th></tr>
@@ -77,7 +77,7 @@
   --processingGuarantees ATMOST_ONCE \
   <span class="hljs-comment"># Other function configs</span>
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-deploying">← Deploying and managing Pulsar Functions</a><a class="docs-next button" href="/docs/en/functions-state">Pulsar Functions State Storage (Developer Preview) →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#applying-processing-guarantees-to-a-function">Applying processing guarantees to a function</a></li><li><a href="#updating-the-proce [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-deploying"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-state"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#applying-processing-guarantees-to-a-function">Applying processing guarantees to a function</a></li><li><a [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/functions-metrics.html b/content/docs/en/functions-metrics.html
index 68bf9c3..6c927f9 100644
--- a/content/docs/en/functions-metrics.html
+++ b/content/docs/en/functions-metrics.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-metrics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Metrics for Pulsar Functions</h1></header><article><div><span><p>Pulsar Functions can publish arbitrary metrics to the metrics interface which can then be  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-metrics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Metrics for Pulsar Functions</h1></header><article><div><span><p>Pulsar Functions can publish arbitrary metrics to the metrics interface w [...]
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="metrics-and-stats-not-available-through-language-native-interfaces"></a><a href="#metrics-and-stats-not-available-through-language-native-interfaces" 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>If a Pulsar Function uses the language-native interface for <a href="/docs/en/functions-api#java-native-functions">Java</a> or <a href="#python-native-functions">Python</a>, that function will not be able to publish metrics and stats to Pulsar.</p>
@@ -72,7 +72,7 @@
 <p>This function counts the length of each incoming message (of type <code>String</code>) and then registers that under the <code>number-of-characters</code> metric.</p>
 <h2><a class="anchor" aria-hidden="true" id="python-sdk"></a><a href="#python-sdk" 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>Documentation for the <a href="/docs/en/functions-api#python-sdk-functions">Python SDK</a> is coming soon.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-state">← Pulsar Functions State Storage (Developer Preview)</a><a class="docs-next button" href="/docs/en/io-overview">Pulsar IO Overview →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#accessing-metrics">Accessing metrics</a></li><li><a href="#java-sdk">Java SDK</a></li><li><a href="#python-sdk">Python SDK</a></li></ul></nav></div><footer clas [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-state"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/io-overview"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#accessing-metrics">Accessing metrics</a></li><li><a href="#java-sdk">Java SDK</a></li><li><a href="#python-sdk">P [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/functions-metrics/index.html b/content/docs/en/functions-metrics/index.html
index 68bf9c3..6c927f9 100644
--- a/content/docs/en/functions-metrics/index.html
+++ b/content/docs/en/functions-metrics/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-metrics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Metrics for Pulsar Functions</h1></header><article><div><span><p>Pulsar Functions can publish arbitrary metrics to the metrics interface which can then be  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-metrics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Metrics for Pulsar Functions</h1></header><article><div><span><p>Pulsar Functions can publish arbitrary metrics to the metrics interface w [...]
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="metrics-and-stats-not-available-through-language-native-interfaces"></a><a href="#metrics-and-stats-not-available-through-language-native-interfaces" 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>If a Pulsar Function uses the language-native interface for <a href="/docs/en/functions-api#java-native-functions">Java</a> or <a href="#python-native-functions">Python</a>, that function will not be able to publish metrics and stats to Pulsar.</p>
@@ -72,7 +72,7 @@
 <p>This function counts the length of each incoming message (of type <code>String</code>) and then registers that under the <code>number-of-characters</code> metric.</p>
 <h2><a class="anchor" aria-hidden="true" id="python-sdk"></a><a href="#python-sdk" 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>Documentation for the <a href="/docs/en/functions-api#python-sdk-functions">Python SDK</a> is coming soon.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-state">← Pulsar Functions State Storage (Developer Preview)</a><a class="docs-next button" href="/docs/en/io-overview">Pulsar IO Overview →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#accessing-metrics">Accessing metrics</a></li><li><a href="#java-sdk">Java SDK</a></li><li><a href="#python-sdk">Python SDK</a></li></ul></nav></div><footer clas [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-state"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/io-overview"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#accessing-metrics">Accessing metrics</a></li><li><a href="#java-sdk">Java SDK</a></li><li><a href="#python-sdk">P [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/functions-overview.html b/content/docs/en/functions-overview.html
index b82ec94..7acd31d 100644
--- a/content/docs/en/functions-overview.html
+++ b/content/docs/en/functions-overview.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Functions overview</h1></header><article><div><span><p><strong>Pulsar Functions</strong> are lightweight compute processes that</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Functions overview</h1></header><article><div><span><p><strong>Pulsar Functions</strong> are lightweight compute processes that</p>
 <ul>
 <li>consume messages from one or more Pulsar topics,</li>
 <li>apply a user-supplied processing logic to each message,</li>
@@ -396,7 +396,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-schema-registry">← Schema Registry</a><a class="docs-next button" href="/docs/en/functions-quickstart">Getting started with Pulsar Functions →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#programming-model">Programming model</a><ul class="toc-headings"><li><a hr [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-quickstart"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#programming [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/functions-overview/index.html b/content/docs/en/functions-overview/index.html
index b82ec94..7acd31d 100644
--- a/content/docs/en/functions-overview/index.html
+++ b/content/docs/en/functions-overview/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Functions overview</h1></header><article><div><span><p><strong>Pulsar Functions</strong> are lightweight compute processes that</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Functions overview</h1></header><article><div><span><p><strong>Pulsar Functions</strong> are lightweight compute processes that</p>
 <ul>
 <li>consume messages from one or more Pulsar topics,</li>
 <li>apply a user-supplied processing logic to each message,</li>
@@ -396,7 +396,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-schema-registry">← Schema Registry</a><a class="docs-next button" href="/docs/en/functions-quickstart">Getting started with Pulsar Functions →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#programming-model">Programming model</a><ul class="toc-headings"><li><a hr [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-quickstart"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#programming [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/functions-quickstart.html b/content/docs/en/functions-quickstart.html
index dfaaad6..3adb403 100644
--- a/content/docs/en/functions-quickstart.html
+++ b/content/docs/en/functions-quickstart.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-quickstart.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Getting started with Pulsar Functions</h1></header><article><div><span><p>This tutorial will walk you through running a <a href="/docs/en/reference-term [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-quickstart.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Getting started with Pulsar Functions</h1></header><article><div><span><p>This tutorial will walk you through running a <a href="/docs/ [...]
 <blockquote>
 <p>In local run mode, your Pulsar Function will communicate with your Pulsar cluster but will run outside of the cluster.</p>
 </blockquote>
@@ -233,7 +233,7 @@ $ bin/pulsar standalone \
 <li><a href="/docs/en/functions-api">The Pulsar Functions API</a></li>
 <li><a href="/docs/en/functions-deploying">Deploying Pulsar Functions</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-overview">← Pulsar Functions overview</a><a class="docs-next button" href="/docs/en/functions-api">The Pulsar Functions API →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a></li><li><a href="#run-a-standalone-pulsar-cluster">Run a standalone Pulsar cluster</a></li><li><a href="#run-a-pulsar-function-in-local-run-m [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-overview"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-api"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a></li><li><a href="#run-a-standalone-pulsar-cluster">Run a standalone Pulsar  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/functions-quickstart/index.html b/content/docs/en/functions-quickstart/index.html
index dfaaad6..3adb403 100644
--- a/content/docs/en/functions-quickstart/index.html
+++ b/content/docs/en/functions-quickstart/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-quickstart.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Getting started with Pulsar Functions</h1></header><article><div><span><p>This tutorial will walk you through running a <a href="/docs/en/reference-term [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-quickstart.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Getting started with Pulsar Functions</h1></header><article><div><span><p>This tutorial will walk you through running a <a href="/docs/ [...]
 <blockquote>
 <p>In local run mode, your Pulsar Function will communicate with your Pulsar cluster but will run outside of the cluster.</p>
 </blockquote>
@@ -233,7 +233,7 @@ $ bin/pulsar standalone \
 <li><a href="/docs/en/functions-api">The Pulsar Functions API</a></li>
 <li><a href="/docs/en/functions-deploying">Deploying Pulsar Functions</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-overview">← Pulsar Functions overview</a><a class="docs-next button" href="/docs/en/functions-api">The Pulsar Functions API →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a></li><li><a href="#run-a-standalone-pulsar-cluster">Run a standalone Pulsar cluster</a></li><li><a href="#run-a-pulsar-function-in-local-run-m [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-overview"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-api"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a></li><li><a href="#run-a-standalone-pulsar-cluster">Run a standalone Pulsar  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/functions-state.html b/content/docs/en/functions-state.html
index d14ccda..1777de2 100644
--- a/content/docs/en/functions-state.html
+++ b/content/docs/en/functions-state.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-state.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Functions State Storage (Developer Preview)</h1></header><article><div><span><p>Since Pulsar 2.1.0 release, Pulsar integrates with Apache BookKeeper < [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-state.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Functions State Storage (Developer Preview)</h1></header><article><div><span><p>Since Pulsar 2.1.0 release, Pulsar integrates with Ap [...]
 for storing the <code>State</code> for functions. For example, A <code>WordCount</code> function can store its <code>counters</code> state into BookKeeper's table service via Pulsar Functions <a href="#api">State API</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="api"></a><a href="#api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <h3><a class="anchor" aria-hidden="true" id="java-api"></a><a href="#java-api" 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  [...]
@@ -125,7 +125,7 @@ demonstrating on how Application can easily store <code>state</code> in Pulsar F
 </ol>
 <h3><a class="anchor" aria-hidden="true" id="python-example"></a><a href="#python-example" 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>State currently is not supported at <a href="/docs/en/functions-api#python-sdk-functions">Python SDK</a>.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-guarantees">← Processing guarantees</a><a class="docs-next button" href="/docs/en/functions-metrics">Metrics for Pulsar Functions →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#api">API</a><ul class="toc-headings"><li><a href="#java-api">Java API</a></li><li><a href="#python-api">Python API</a></li></ul></li><li><a href="#query-state">Query St [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-guarantees"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-metrics"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#api">API</a><ul class="toc-headings"><li><a href="#java-api">Java API</a></li><li><a href="#python-api [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/functions-state/index.html b/content/docs/en/functions-state/index.html
index d14ccda..1777de2 100644
--- a/content/docs/en/functions-state/index.html
+++ b/content/docs/en/functions-state/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-state.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Functions State Storage (Developer Preview)</h1></header><article><div><span><p>Since Pulsar 2.1.0 release, Pulsar integrates with Apache BookKeeper < [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/functions-state.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar Functions State Storage (Developer Preview)</h1></header><article><div><span><p>Since Pulsar 2.1.0 release, Pulsar integrates with Ap [...]
 for storing the <code>State</code> for functions. For example, A <code>WordCount</code> function can store its <code>counters</code> state into BookKeeper's table service via Pulsar Functions <a href="#api">State API</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="api"></a><a href="#api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <h3><a class="anchor" aria-hidden="true" id="java-api"></a><a href="#java-api" 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  [...]
@@ -125,7 +125,7 @@ demonstrating on how Application can easily store <code>state</code> in Pulsar F
 </ol>
 <h3><a class="anchor" aria-hidden="true" id="python-example"></a><a href="#python-example" 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>State currently is not supported at <a href="/docs/en/functions-api#python-sdk-functions">Python SDK</a>.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-guarantees">← Processing guarantees</a><a class="docs-next button" href="/docs/en/functions-metrics">Metrics for Pulsar Functions →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#api">API</a><ul class="toc-headings"><li><a href="#java-api">Java API</a></li><li><a href="#python-api">Python API</a></li></ul></li><li><a href="#query-state">Query St [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/functions-guarantees"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-metrics"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#api">API</a><ul class="toc-headings"><li><a href="#java-api">Java API</a></li><li><a href="#python-api [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/io-aerospike.html b/content/docs/en/io-aerospike.html
index f68c6de..e1ecbef 100644
--- a/content/docs/en/io-aerospike.html
+++ b/content/docs/en/io-aerospike.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-aerospike.md" target="_bla [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-aerospike [...]
 <h2><a class="anchor" aria-hidden="true" id="sink-configuration-options"></a><a href="#sink-configuration-options" 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 12H [...]
 <p>The following configuration options are specific to the Aerospike Connector:</p>
 <table>
@@ -35,7 +35,7 @@
 <tr><td><code>retries</code></td><td><code>false</code></td><td><code>1</code></td><td>Maximum number of retries before aborting a write transaction to Aerospike.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#sink-configuration-options">Sink Configuration Options</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
+</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#sink-configuration-options">Sink Configuration Options</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/io-aerospike/index.html b/content/docs/en/io-aerospike/index.html
index f68c6de..e1ecbef 100644
--- a/content/docs/en/io-aerospike/index.html
+++ b/content/docs/en/io-aerospike/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-aerospike.md" target="_bla [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-aerospike [...]
 <h2><a class="anchor" aria-hidden="true" id="sink-configuration-options"></a><a href="#sink-configuration-options" 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 12H [...]
 <p>The following configuration options are specific to the Aerospike Connector:</p>
 <table>
@@ -35,7 +35,7 @@
 <tr><td><code>retries</code></td><td><code>false</code></td><td><code>1</code></td><td>Maximum number of retries before aborting a write transaction to Aerospike.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#sink-configuration-options">Sink Configuration Options</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
+</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#sink-configuration-options">Sink Configuration Options</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/io-cassandra.html b/content/docs/en/io-cassandra.html
index ed990cb..dc571fd 100644
--- a/content/docs/en/io-cassandra.html
+++ b/content/docs/en/io-cassandra.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-cassandra.md" target="_bla [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-cassandra [...]
 <p>The tutorial <a href="/docs/en/io-quickstart">Connecting Pulsar with Apache Cassandra</a> shows an example how to use Cassandra Sink
 connector to write messages to a Cassandra table.</p>
 <h2><a class="anchor" aria-hidden="true" id="sink-configuration-options"></a><a href="#sink-configuration-options" 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 12H [...]
@@ -35,7 +35,7 @@ connector to write messages to a Cassandra table.</p>
 <tr><td><code>columnName</code></td><td><code>null</code></td><td><code>true</code></td><td>Value column name. The value column is used for storing Pulsar message values.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#sink-configuration-options">Sink Configuration Options</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
+</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#sink-configuration-options">Sink Configuration Options</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/io-cassandra/index.html b/content/docs/en/io-cassandra/index.html
index ed990cb..dc571fd 100644
--- a/content/docs/en/io-cassandra/index.html
+++ b/content/docs/en/io-cassandra/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-cassandra.md" target="_bla [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-cassandra [...]
 <p>The tutorial <a href="/docs/en/io-quickstart">Connecting Pulsar with Apache Cassandra</a> shows an example how to use Cassandra Sink
 connector to write messages to a Cassandra table.</p>
 <h2><a class="anchor" aria-hidden="true" id="sink-configuration-options"></a><a href="#sink-configuration-options" 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 12H [...]
@@ -35,7 +35,7 @@ connector to write messages to a Cassandra table.</p>
 <tr><td><code>columnName</code></td><td><code>null</code></td><td><code>true</code></td><td>Value column name. The value column is used for storing Pulsar message values.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#sink-configuration-options">Sink Configuration Options</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
+</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#sink-configuration-options">Sink Configuration Options</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/io-connectors.html b/content/docs/en/io-connectors.html
index 84e0c3a..d01dc6f 100644
--- a/content/docs/en/io-connectors.html
+++ b/content/docs/en/io-connectors.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,12 +45,12 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-connectors.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Builtin Connectors</h1></header><article><div><span><p>Pulsar distribution includes a set of common connectors that have been packaged and tested with the rest [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-connectors.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Builtin Connectors</h1></header><article><div><span><p>Pulsar distribution includes a set of common connectors that have been packaged and tes [...]
 These connectors import and export data from some of the most commonly used data systems. Using any these connectors is
 as easy as writing a simple connector configuration and running the connector locally or submitting the connector to a
 Pulsar Functions cluster.</p>
 <ul>
-<li><a href="io-aerospike.md">Aerospike Sink Connector</a></li>
+<li><a href="/docs/en/io-aerospike">Aerospike Sink Connector</a></li>
 <li><a href="/docs/en/io-cassandra">Cassandra Sink Connector</a></li>
 <li><a href="/docs/en/io-kafka#sink">Kafka Sink Connector</a></li>
 <li><a href="/docs/en/io-kafka#source">Kafka Source Connector</a></li>
@@ -58,7 +58,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/io-rabbitmq#source">RabbitMQ Source Connector</a></li>
 <li><a href="/docs/en/io-twitter">Twitter Firehose Source Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-managing">← Managing Connectors</a><a class="docs-next button" href="/docs/en/io-develop">Develop Connectors →</a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/io-develop"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, A [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/io-connectors/index.html b/content/docs/en/io-connectors/index.html
index 84e0c3a..d01dc6f 100644
--- a/content/docs/en/io-connectors/index.html
+++ b/content/docs/en/io-connectors/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,12 +45,12 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-connectors.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Builtin Connectors</h1></header><article><div><span><p>Pulsar distribution includes a set of common connectors that have been packaged and tested with the rest [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-connectors.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Builtin Connectors</h1></header><article><div><span><p>Pulsar distribution includes a set of common connectors that have been packaged and tes [...]
 These connectors import and export data from some of the most commonly used data systems. Using any these connectors is
 as easy as writing a simple connector configuration and running the connector locally or submitting the connector to a
 Pulsar Functions cluster.</p>
 <ul>
-<li><a href="io-aerospike.md">Aerospike Sink Connector</a></li>
+<li><a href="/docs/en/io-aerospike">Aerospike Sink Connector</a></li>
 <li><a href="/docs/en/io-cassandra">Cassandra Sink Connector</a></li>
 <li><a href="/docs/en/io-kafka#sink">Kafka Sink Connector</a></li>
 <li><a href="/docs/en/io-kafka#source">Kafka Source Connector</a></li>
@@ -58,7 +58,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/io-rabbitmq#source">RabbitMQ Source Connector</a></li>
 <li><a href="/docs/en/io-twitter">Twitter Firehose Source Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-managing">← Managing Connectors</a><a class="docs-next button" href="/docs/en/io-develop">Develop Connectors →</a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/io-develop"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, A [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/io-develop.html b/content/docs/en/io-develop.html
index 21bf40e..afefc82 100644
--- a/content/docs/en/io-develop.html
+++ b/content/docs/en/io-develop.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-develop.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Develop Connectors</h1></header><article><div><span><p>This guide describes how developers can write new connectors for Pulsar IO to move data
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-develop.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Develop Connectors</h1></header><article><div><span><p>This guide describes how developers can write new connectors for Pulsar IO to move data
 between Pulsar and other systems. It describes how to create a Pulsar IO connector.</p>
 <p>Pulsar IO connectors are specialized <a href="/docs/en/functions-overview">Pulsar Functions</a>. So writing
 a Pulsar IO connector is as simple as writing a Pulsar function. Pulsar IO connectors come
@@ -206,7 +206,7 @@ and other resource files. No directory internal structure is necessary.</p>
   <span class="hljs-tag">&lt;/<span class="hljs-name">executions</span>&gt;</span>
 <span class="hljs-tag">&lt;/<span class="hljs-name">plugin</span>&gt;</span>
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-connectors">← Builtin Connectors</a><a class="docs-next button" href="/docs/en/deploy-aws">Deploying a Pulsar cluster on AWS using Terraform and Ansible →</a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feathe [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-connectors"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/deploy-aws"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/io-develop/index.html b/content/docs/en/io-develop/index.html
index 21bf40e..afefc82 100644
--- a/content/docs/en/io-develop/index.html
+++ b/content/docs/en/io-develop/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-develop.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Develop Connectors</h1></header><article><div><span><p>This guide describes how developers can write new connectors for Pulsar IO to move data
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-develop.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Develop Connectors</h1></header><article><div><span><p>This guide describes how developers can write new connectors for Pulsar IO to move data
 between Pulsar and other systems. It describes how to create a Pulsar IO connector.</p>
 <p>Pulsar IO connectors are specialized <a href="/docs/en/functions-overview">Pulsar Functions</a>. So writing
 a Pulsar IO connector is as simple as writing a Pulsar function. Pulsar IO connectors come
@@ -206,7 +206,7 @@ and other resource files. No directory internal structure is necessary.</p>
   <span class="hljs-tag">&lt;/<span class="hljs-name">executions</span>&gt;</span>
 <span class="hljs-tag">&lt;/<span class="hljs-name">plugin</span>&gt;</span>
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-connectors">← Builtin Connectors</a><a class="docs-next button" href="/docs/en/deploy-aws">Deploying a Pulsar cluster on AWS using Terraform and Ansible →</a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feathe [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-connectors"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/deploy-aws"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/io-kafka.html b/content/docs/en/io-kafka.html
index 20e7b71..a89f641 100644
--- a/content/docs/en/io-kafka.html
+++ b/content/docs/en/io-kafka.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-kafka.md" target="_blank"  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-kafka.md" [...]
 <p>The Kafka Source Connector is used to pull messages from Kafka topics and persist the messages
 to a Pulsar topic.</p>
 <h3><a class="anchor" aria-hidden="true" id="source-configuration-options"></a><a href="#source-configuration-options" 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 [...]
@@ -55,7 +55,7 @@ to a Kafka topic.</p>
 <tr><td>valueSerializerClass</td><td>false</td><td>org.apache.kafka.common.serialization.StringSerializer</td><td>Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a><ul class="toc-headings"><li><a href="#source-configuration-options">Source Configuration Options</a></li></ul></li><li><a href="#sink">Sink</a><ul class="toc-headings"><li><a href="#sink-configuration-options">Sink Configuration Options</a></li></ul></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright" [...]
+</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#source">Source</a><ul class="toc-headings"><li><a href="#source-configuration-options">Source Configuration Options</a></li></ul></li><li><a href="#sink">Sink</a><ul class="toc-headings"><li><a href="#sink-configuration-options">Sink Configuration Options</a></li></ul></li></ul></nav></div><footer class="nav-footer" id="footer"><section clas [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/io-kafka/index.html b/content/docs/en/io-kafka/index.html
index 20e7b71..a89f641 100644
--- a/content/docs/en/io-kafka/index.html
+++ b/content/docs/en/io-kafka/index.html
@@ -6,7 +6,7 @@
 
               ga('create', 'UA-102219959-1', 'auto');
               ga('send', 'pageview');
-            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
+            </script><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="he [...]
         const languagesMenuItem = document.getElementById("languages-menu");
         const languagesDropDown = document.getElementById("languages-dropdown");
         languagesMenuItem.addEventListener("click", function(event) {
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-kafka.md" target="_blank"  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/io-kafka.md" [...]
 <p>The Kafka Source Connector is used to pull messages from Kafka topics and persist the messages
 to a Pulsar topic.</p>
 <h3><a class="anchor" aria-hidden="true" id="source-configuration-options"></a><a href="#source-configuration-options" 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 [...]
@@ -55,7 +55,7 @@ to a Kafka topic.</p>
 <tr><td>valueSerializerClass</td><td>false</td><td>org.apache.kafka.common.serialization.StringSerializer</td><td>Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface.</td></tr>
 &