You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2019/09/18 09:06:57 UTC

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

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/pulsar.git


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

commit f9b9e3d45b58bedff67899319e37985e1ae7d785
Author: jenkins <bu...@apache.org>
AuthorDate: Wed Sep 18 09:06:42 2019 +0000

    Updated site at revision 7515634
---
 content/docs/en/2.1.0-incubating/deploy-aws.html   |   2 +-
 .../docs/en/2.1.0-incubating/deploy-aws/index.html |   2 +-
 .../docs/en/2.1.0-incubating/io-connectors.html    |   2 +-
 .../en/2.1.0-incubating/io-connectors/index.html   |   2 +-
 content/docs/en/2.1.1-incubating/deploy-aws.html   |   2 +-
 .../docs/en/2.1.1-incubating/deploy-aws/index.html |   2 +-
 .../docs/en/2.1.1-incubating/io-connectors.html    |   2 +-
 .../en/2.1.1-incubating/io-connectors/index.html   |   2 +-
 content/docs/en/2.2.0/io-connectors.html           |   2 +-
 content/docs/en/2.2.0/io-connectors/index.html     |   2 +-
 content/docs/en/2.2.0/sql-overview.html            |   2 +-
 content/docs/en/2.2.0/sql-overview/index.html      |   2 +-
 content/docs/en/2.2.1/io-connectors.html           |   2 +-
 content/docs/en/2.2.1/io-connectors/index.html     |   2 +-
 content/docs/en/2.2.1/sql-overview.html            |   2 +-
 content/docs/en/2.2.1/sql-overview/index.html      |   2 +-
 content/docs/en/2.3.0/io-cdc.html                  |   2 +-
 content/docs/en/2.3.0/io-cdc/index.html            |   2 +-
 content/docs/en/2.3.0/io-connectors.html           |   2 +-
 content/docs/en/2.3.0/io-connectors/index.html     |   2 +-
 content/docs/en/2.3.0/io-develop.html              |   2 +-
 content/docs/en/2.3.0/io-develop/index.html        |   2 +-
 content/docs/en/2.3.0/sql-overview.html            |   2 +-
 content/docs/en/2.3.0/sql-overview/index.html      |   2 +-
 content/docs/en/2.3.1/io-cdc.html                  |   2 +-
 content/docs/en/2.3.1/io-cdc/index.html            |   2 +-
 content/docs/en/2.3.1/io-connectors.html           |   2 +-
 content/docs/en/2.3.1/io-connectors/index.html     |   2 +-
 content/docs/en/2.3.1/io-develop.html              |   2 +-
 content/docs/en/2.3.1/io-develop/index.html        |   2 +-
 content/docs/en/2.3.1/sql-overview.html            |   2 +-
 content/docs/en/2.3.1/sql-overview/index.html      |   2 +-
 content/docs/en/2.3.2/io-cdc.html                  |   2 +-
 content/docs/en/2.3.2/io-cdc/index.html            |   2 +-
 content/docs/en/2.3.2/io-connectors.html           |   2 +-
 content/docs/en/2.3.2/io-connectors/index.html     |   2 +-
 content/docs/en/2.3.2/io-develop.html              |   2 +-
 content/docs/en/2.3.2/io-develop/index.html        |   2 +-
 content/docs/en/2.3.2/sql-overview.html            |   2 +-
 content/docs/en/2.3.2/sql-overview/index.html      |   2 +-
 content/docs/en/2.4.0/io-cdc.html                  |   2 +-
 content/docs/en/2.4.0/io-cdc/index.html            |   2 +-
 content/docs/en/2.4.0/io-connectors.html           |   2 +-
 content/docs/en/2.4.0/io-connectors/index.html     |   2 +-
 content/docs/en/2.4.0/io-develop.html              |   2 +-
 content/docs/en/2.4.0/io-develop/index.html        |   2 +-
 content/docs/en/2.4.0/sql-overview.html            |   2 +-
 content/docs/en/2.4.0/sql-overview/index.html      |   2 +-
 content/docs/en/io-cdc.html                        |   2 +-
 content/docs/en/io-cdc/index.html                  |   2 +-
 content/docs/en/io-connectors.html                 |   2 +-
 content/docs/en/io-connectors/index.html           |   2 +-
 content/docs/en/io-develop.html                    |   2 +-
 content/docs/en/io-develop/index.html              |   2 +-
 content/docs/en/next/adaptors-kafka.html           |   2 +-
 content/docs/en/next/adaptors-kafka/index.html     |   2 +-
 content/docs/en/next/adaptors-spark.html           |   2 +-
 content/docs/en/next/adaptors-spark/index.html     |   2 +-
 content/docs/en/next/adaptors-storm.html           |   2 +-
 content/docs/en/next/adaptors-storm/index.html     |   2 +-
 content/docs/en/next/admin-api-brokers.html        |   2 +-
 content/docs/en/next/admin-api-brokers/index.html  |   2 +-
 content/docs/en/next/admin-api-clusters.html       |   2 +-
 content/docs/en/next/admin-api-clusters/index.html |   2 +-
 content/docs/en/next/admin-api-namespaces.html     |   2 +-
 .../docs/en/next/admin-api-namespaces/index.html   |   2 +-
 .../en/next/admin-api-non-partitioned-topics.html  |   2 +-
 .../admin-api-non-partitioned-topics/index.html    |   2 +-
 .../en/next/admin-api-non-persistent-topics.html   |   2 +-
 .../admin-api-non-persistent-topics/index.html     |   2 +-
 content/docs/en/next/admin-api-overview.html       |   2 +-
 content/docs/en/next/admin-api-overview/index.html |   2 +-
 .../docs/en/next/admin-api-partitioned-topics.html |   2 +-
 .../next/admin-api-partitioned-topics/index.html   |   2 +-
 content/docs/en/next/admin-api-permissions.html    |   2 +-
 .../docs/en/next/admin-api-permissions/index.html  |   2 +-
 .../docs/en/next/admin-api-persistent-topics.html  |   2 +-
 .../en/next/admin-api-persistent-topics/index.html |   2 +-
 content/docs/en/next/admin-api-tenants.html        |   2 +-
 content/docs/en/next/admin-api-tenants/index.html  |   2 +-
 content/docs/en/next/administration-dashboard.html |   2 +-
 .../en/next/administration-dashboard/index.html    |   2 +-
 content/docs/en/next/administration-geo.html       |   2 +-
 content/docs/en/next/administration-geo/index.html |   2 +-
 .../docs/en/next/administration-load-balance.html  |   2 +-
 .../en/next/administration-load-balance/index.html |   2 +-
 content/docs/en/next/administration-proxy.html     |   2 +-
 .../docs/en/next/administration-proxy/index.html   |   2 +-
 content/docs/en/next/administration-stats.html     |   2 +-
 .../docs/en/next/administration-stats/index.html   |   2 +-
 content/docs/en/next/administration-upgrade.html   |   2 +-
 .../docs/en/next/administration-upgrade/index.html |   2 +-
 content/docs/en/next/administration-zk-bk.html     |   2 +-
 .../docs/en/next/administration-zk-bk/index.html   |   2 +-
 content/docs/en/next/client-libraries-cpp.html     |   2 +-
 .../docs/en/next/client-libraries-cpp/index.html   |   2 +-
 content/docs/en/next/client-libraries-go.html      |   2 +-
 .../docs/en/next/client-libraries-go/index.html    |   2 +-
 content/docs/en/next/client-libraries-java.html    |   2 +-
 .../docs/en/next/client-libraries-java/index.html  |   2 +-
 content/docs/en/next/client-libraries-python.html  |   2 +-
 .../en/next/client-libraries-python/index.html     |   2 +-
 .../docs/en/next/client-libraries-websocket.html   |   2 +-
 .../en/next/client-libraries-websocket/index.html  |   2 +-
 content/docs/en/next/client-libraries.html         |   2 +-
 content/docs/en/next/client-libraries/index.html   |   2 +-
 .../en/next/concepts-architecture-overview.html    |   2 +-
 .../next/concepts-architecture-overview/index.html |   2 +-
 content/docs/en/next/concepts-authentication.html  |   2 +-
 .../en/next/concepts-authentication/index.html     |   2 +-
 content/docs/en/next/concepts-clients.html         |   2 +-
 content/docs/en/next/concepts-clients/index.html   |   2 +-
 content/docs/en/next/concepts-messaging.html       |   2 +-
 content/docs/en/next/concepts-messaging/index.html |   2 +-
 content/docs/en/next/concepts-multi-tenancy.html   |   2 +-
 .../docs/en/next/concepts-multi-tenancy/index.html |   2 +-
 content/docs/en/next/concepts-overview.html        |   2 +-
 content/docs/en/next/concepts-overview/index.html  |   2 +-
 content/docs/en/next/concepts-replication.html     |   2 +-
 .../docs/en/next/concepts-replication/index.html   |   2 +-
 content/docs/en/next/concepts-tiered-storage.html  |   2 +-
 .../en/next/concepts-tiered-storage/index.html     |   2 +-
 .../docs/en/next/concepts-topic-compaction.html    |   2 +-
 .../en/next/concepts-topic-compaction/index.html   |   2 +-
 .../docs/en/next/cookbooks-bookkeepermetadata.html |   2 +-
 .../next/cookbooks-bookkeepermetadata/index.html   |   2 +-
 content/docs/en/next/cookbooks-compaction.html     |   2 +-
 .../docs/en/next/cookbooks-compaction/index.html   |   2 +-
 content/docs/en/next/cookbooks-deduplication.html  |   2 +-
 .../en/next/cookbooks-deduplication/index.html     |   2 +-
 content/docs/en/next/cookbooks-encryption.html     |   2 +-
 .../docs/en/next/cookbooks-encryption/index.html   |   2 +-
 content/docs/en/next/cookbooks-message-queue.html  |   2 +-
 .../en/next/cookbooks-message-queue/index.html     |   2 +-
 content/docs/en/next/cookbooks-non-persistent.html |   2 +-
 .../en/next/cookbooks-non-persistent/index.html    |   2 +-
 content/docs/en/next/cookbooks-partitioned.html    |   2 +-
 .../docs/en/next/cookbooks-partitioned/index.html  |   2 +-
 .../docs/en/next/cookbooks-retention-expiry.html   |   2 +-
 .../en/next/cookbooks-retention-expiry/index.html  |   2 +-
 content/docs/en/next/cookbooks-tiered-storage.html |   2 +-
 .../en/next/cookbooks-tiered-storage/index.html    |   2 +-
 content/docs/en/next/deploy-aws.html               |   2 +-
 content/docs/en/next/deploy-aws/index.html         |   2 +-
 .../en/next/deploy-bare-metal-multi-cluster.html   |  65 +++--
 .../deploy-bare-metal-multi-cluster/index.html     |  65 +++--
 content/docs/en/next/deploy-bare-metal.html        | 208 ++++++++-------
 content/docs/en/next/deploy-bare-metal/index.html  | 208 ++++++++-------
 content/docs/en/next/deploy-dcos.html              |   2 +-
 content/docs/en/next/deploy-dcos/index.html        |   2 +-
 content/docs/en/next/deploy-kubernetes.html        |   2 +-
 content/docs/en/next/deploy-kubernetes/index.html  |   2 +-
 content/docs/en/next/deploy-monitoring.html        |   2 +-
 content/docs/en/next/deploy-monitoring/index.html  |   2 +-
 content/docs/en/next/develop-binary-protocol.html  |   2 +-
 .../en/next/develop-binary-protocol/index.html     |   2 +-
 content/docs/en/next/develop-cpp.html              |   2 +-
 content/docs/en/next/develop-cpp/index.html        |   2 +-
 content/docs/en/next/develop-load-manager.html     |   2 +-
 .../docs/en/next/develop-load-manager/index.html   |   2 +-
 content/docs/en/next/develop-tools.html            |   2 +-
 content/docs/en/next/develop-tools/index.html      |   2 +-
 content/docs/en/next/functions-cli.html            |   2 +-
 content/docs/en/next/functions-cli/index.html      |   2 +-
 content/docs/en/next/functions-debug.html          |   2 +-
 content/docs/en/next/functions-debug/index.html    |   2 +-
 content/docs/en/next/functions-deploy.html         |   2 +-
 content/docs/en/next/functions-deploy/index.html   |   2 +-
 content/docs/en/next/functions-develop.html        |   2 +-
 content/docs/en/next/functions-develop/index.html  |   2 +-
 content/docs/en/next/functions-overview.html       |   2 +-
 content/docs/en/next/functions-overview/index.html |   2 +-
 content/docs/en/next/functions-runtime.html        |   2 +-
 content/docs/en/next/functions-runtime/index.html  |   2 +-
 content/docs/en/next/functions-worker.html         |   2 +-
 content/docs/en/next/functions-worker/index.html   |   2 +-
 content/docs/en/next/io-cdc-canal.html             | 249 +++++++++---------
 content/docs/en/next/io-cdc-canal/index.html       | 249 +++++++++---------
 content/docs/en/next/io-cdc.html                   |  42 +++-
 content/docs/en/next/io-cdc/index.html             |  42 +++-
 content/docs/en/next/io-connectors.html            |   4 +-
 content/docs/en/next/io-connectors/index.html      |   4 +-
 content/docs/en/next/io-debug.html                 |   2 +-
 content/docs/en/next/io-debug/index.html           |   2 +-
 content/docs/en/next/io-develop.html               | 280 ++++++++++++---------
 content/docs/en/next/io-develop/index.html         | 280 ++++++++++++---------
 content/docs/en/next/io-overview.html              |  53 ++--
 content/docs/en/next/io-overview/index.html        |  53 ++--
 content/docs/en/next/io-quickstart.html            |   2 +-
 content/docs/en/next/io-quickstart/index.html      |   2 +-
 content/docs/en/next/io-use.html                   |   2 +-
 content/docs/en/next/io-use/index.html             |   2 +-
 content/docs/en/next/pulsar-2.0.html               |   2 +-
 content/docs/en/next/pulsar-2.0/index.html         |   2 +-
 content/docs/en/next/pulsar-admin.html             |   2 +-
 content/docs/en/next/pulsar-admin/index.html       |   2 +-
 content/docs/en/next/reference-cli-tools.html      |   2 +-
 .../docs/en/next/reference-cli-tools/index.html    |   2 +-
 content/docs/en/next/reference-configuration.html  |   4 +-
 .../en/next/reference-configuration/index.html     |   4 +-
 .../docs/en/next/reference-connector-admin.html    |   4 +-
 .../en/next/reference-connector-admin/index.html   |   4 +-
 content/docs/en/next/reference-metrics.html        |   2 +-
 content/docs/en/next/reference-metrics/index.html  |   2 +-
 content/docs/en/next/reference-terminology.html    |   2 +-
 .../docs/en/next/reference-terminology/index.html  |   2 +-
 .../en/next/schema-evolution-compatibility.html    |   2 +-
 .../next/schema-evolution-compatibility/index.html |   2 +-
 content/docs/en/next/schema-get-started.html       |   2 +-
 content/docs/en/next/schema-get-started/index.html |   2 +-
 content/docs/en/next/schema-manage.html            |   2 +-
 content/docs/en/next/schema-manage/index.html      |   2 +-
 content/docs/en/next/schema-understand.html        |   2 +-
 content/docs/en/next/schema-understand/index.html  |   2 +-
 content/docs/en/next/security-athenz.html          |   2 +-
 content/docs/en/next/security-athenz/index.html    |   2 +-
 content/docs/en/next/security-authorization.html   |   2 +-
 .../docs/en/next/security-authorization/index.html |   2 +-
 content/docs/en/next/security-encryption.html      |   2 +-
 .../docs/en/next/security-encryption/index.html    |   2 +-
 content/docs/en/next/security-extending.html       |   2 +-
 content/docs/en/next/security-extending/index.html |   2 +-
 content/docs/en/next/security-kerberos.html        |   2 +-
 content/docs/en/next/security-kerberos/index.html  |   2 +-
 content/docs/en/next/security-overview.html        |   2 +-
 content/docs/en/next/security-overview/index.html  |   2 +-
 .../docs/en/next/security-tls-authentication.html  |   2 +-
 .../en/next/security-tls-authentication/index.html |   2 +-
 content/docs/en/next/security-tls-transport.html   |   2 +-
 .../docs/en/next/security-tls-transport/index.html |   2 +-
 content/docs/en/next/security-token-admin.html     |   2 +-
 .../docs/en/next/security-token-admin/index.html   |   2 +-
 content/docs/en/next/security-token-client.html    |   2 +-
 .../docs/en/next/security-token-client/index.html  |   2 +-
 .../en/next/sql-deployment-configurations.html     |   2 +-
 .../next/sql-deployment-configurations/index.html  |   2 +-
 content/docs/en/next/sql-getting-started.html      |   2 +-
 .../docs/en/next/sql-getting-started/index.html    |   2 +-
 content/docs/en/next/sql-overview.html             |   2 +-
 content/docs/en/next/sql-overview/index.html       |   2 +-
 content/docs/en/next/standalone-docker.html        |   2 +-
 content/docs/en/next/standalone-docker/index.html  |   2 +-
 content/docs/en/next/standalone.html               |   2 +-
 content/docs/en/next/standalone/index.html         |   2 +-
 content/docs/en/sql-overview.html                  |   2 +-
 content/docs/en/sql-overview/index.html            |   2 +-
 content/docs/fr/2.1.0-incubating/deploy-aws.html   |   2 +-
 .../docs/fr/2.1.0-incubating/deploy-aws/index.html |   2 +-
 .../docs/fr/2.1.0-incubating/io-connectors.html    |   2 +-
 .../fr/2.1.0-incubating/io-connectors/index.html   |   2 +-
 content/docs/fr/2.1.1-incubating/deploy-aws.html   |   2 +-
 .../docs/fr/2.1.1-incubating/deploy-aws/index.html |   2 +-
 .../docs/fr/2.1.1-incubating/io-connectors.html    |   2 +-
 .../fr/2.1.1-incubating/io-connectors/index.html   |   2 +-
 content/docs/fr/2.2.0/io-connectors.html           |   2 +-
 content/docs/fr/2.2.0/io-connectors/index.html     |   2 +-
 content/docs/fr/2.2.0/sql-overview.html            |   2 +-
 content/docs/fr/2.2.0/sql-overview/index.html      |   2 +-
 content/docs/fr/2.2.1/io-connectors.html           |   2 +-
 content/docs/fr/2.2.1/io-connectors/index.html     |   2 +-
 content/docs/fr/2.2.1/sql-overview.html            |   2 +-
 content/docs/fr/2.2.1/sql-overview/index.html      |   2 +-
 content/docs/fr/2.3.0/io-cdc.html                  |   2 +-
 content/docs/fr/2.3.0/io-cdc/index.html            |   2 +-
 content/docs/fr/2.3.0/io-connectors.html           |   2 +-
 content/docs/fr/2.3.0/io-connectors/index.html     |   2 +-
 content/docs/fr/2.3.0/io-develop.html              |   2 +-
 content/docs/fr/2.3.0/io-develop/index.html        |   2 +-
 content/docs/fr/2.3.0/sql-overview.html            |   2 +-
 content/docs/fr/2.3.0/sql-overview/index.html      |   2 +-
 content/docs/fr/2.3.1/io-cdc.html                  |   2 +-
 content/docs/fr/2.3.1/io-cdc/index.html            |   2 +-
 content/docs/fr/2.3.1/io-connectors.html           |   2 +-
 content/docs/fr/2.3.1/io-connectors/index.html     |   2 +-
 content/docs/fr/2.3.1/io-develop.html              |   2 +-
 content/docs/fr/2.3.1/io-develop/index.html        |   2 +-
 content/docs/fr/2.3.1/sql-overview.html            |   2 +-
 content/docs/fr/2.3.1/sql-overview/index.html      |   2 +-
 content/docs/fr/2.3.2/io-cdc.html                  |   2 +-
 content/docs/fr/2.3.2/io-cdc/index.html            |   2 +-
 content/docs/fr/2.3.2/io-connectors.html           |   2 +-
 content/docs/fr/2.3.2/io-connectors/index.html     |   2 +-
 content/docs/fr/2.3.2/io-develop.html              |   2 +-
 content/docs/fr/2.3.2/io-develop/index.html        |   2 +-
 content/docs/fr/2.3.2/sql-overview.html            |   2 +-
 content/docs/fr/2.3.2/sql-overview/index.html      |   2 +-
 content/docs/fr/2.4.0/io-cdc.html                  |   2 +-
 content/docs/fr/2.4.0/io-cdc/index.html            |   2 +-
 content/docs/fr/2.4.0/io-connectors.html           |   2 +-
 content/docs/fr/2.4.0/io-connectors/index.html     |   2 +-
 content/docs/fr/2.4.0/io-develop.html              |   2 +-
 content/docs/fr/2.4.0/io-develop/index.html        |   2 +-
 content/docs/fr/2.4.0/sql-overview.html            |   2 +-
 content/docs/fr/2.4.0/sql-overview/index.html      |   2 +-
 content/docs/fr/io-cdc.html                        |   2 +-
 content/docs/fr/io-cdc/index.html                  |   2 +-
 content/docs/fr/io-connectors.html                 |   2 +-
 content/docs/fr/io-connectors/index.html           |   2 +-
 content/docs/fr/io-develop.html                    |   2 +-
 content/docs/fr/io-develop/index.html              |   2 +-
 content/docs/fr/next/adaptors-kafka.html           |   2 +-
 content/docs/fr/next/adaptors-kafka/index.html     |   2 +-
 content/docs/fr/next/adaptors-spark.html           |   2 +-
 content/docs/fr/next/adaptors-spark/index.html     |   2 +-
 content/docs/fr/next/adaptors-storm.html           |   2 +-
 content/docs/fr/next/adaptors-storm/index.html     |   2 +-
 content/docs/fr/next/admin-api-brokers.html        |   2 +-
 content/docs/fr/next/admin-api-brokers/index.html  |   2 +-
 content/docs/fr/next/admin-api-clusters.html       |   2 +-
 content/docs/fr/next/admin-api-clusters/index.html |   2 +-
 content/docs/fr/next/admin-api-namespaces.html     |   2 +-
 .../docs/fr/next/admin-api-namespaces/index.html   |   2 +-
 .../fr/next/admin-api-non-partitioned-topics.html  |   2 +-
 .../admin-api-non-partitioned-topics/index.html    |   2 +-
 .../fr/next/admin-api-non-persistent-topics.html   |   2 +-
 .../admin-api-non-persistent-topics/index.html     |   2 +-
 content/docs/fr/next/admin-api-overview.html       |   2 +-
 content/docs/fr/next/admin-api-overview/index.html |   2 +-
 .../docs/fr/next/admin-api-partitioned-topics.html |   2 +-
 .../next/admin-api-partitioned-topics/index.html   |   2 +-
 content/docs/fr/next/admin-api-permissions.html    |   2 +-
 .../docs/fr/next/admin-api-permissions/index.html  |   2 +-
 .../docs/fr/next/admin-api-persistent-topics.html  |   2 +-
 .../fr/next/admin-api-persistent-topics/index.html |   2 +-
 content/docs/fr/next/admin-api-tenants.html        |   2 +-
 content/docs/fr/next/admin-api-tenants/index.html  |   2 +-
 content/docs/fr/next/administration-dashboard.html |   2 +-
 .../fr/next/administration-dashboard/index.html    |   2 +-
 content/docs/fr/next/administration-geo.html       |   2 +-
 content/docs/fr/next/administration-geo/index.html |   2 +-
 .../docs/fr/next/administration-load-balance.html  |   2 +-
 .../fr/next/administration-load-balance/index.html |   2 +-
 content/docs/fr/next/administration-proxy.html     |   2 +-
 .../docs/fr/next/administration-proxy/index.html   |   2 +-
 content/docs/fr/next/administration-stats.html     |   2 +-
 .../docs/fr/next/administration-stats/index.html   |   2 +-
 content/docs/fr/next/administration-upgrade.html   |   2 +-
 .../docs/fr/next/administration-upgrade/index.html |   2 +-
 content/docs/fr/next/administration-zk-bk.html     |   2 +-
 .../docs/fr/next/administration-zk-bk/index.html   |   2 +-
 content/docs/fr/next/client-libraries-cpp.html     |   2 +-
 .../docs/fr/next/client-libraries-cpp/index.html   |   2 +-
 content/docs/fr/next/client-libraries-go.html      |   2 +-
 .../docs/fr/next/client-libraries-go/index.html    |   2 +-
 content/docs/fr/next/client-libraries-java.html    |   2 +-
 .../docs/fr/next/client-libraries-java/index.html  |   2 +-
 content/docs/fr/next/client-libraries-python.html  |   2 +-
 .../fr/next/client-libraries-python/index.html     |   2 +-
 .../docs/fr/next/client-libraries-websocket.html   |   2 +-
 .../fr/next/client-libraries-websocket/index.html  |   2 +-
 content/docs/fr/next/client-libraries.html         |   2 +-
 content/docs/fr/next/client-libraries/index.html   |   2 +-
 .../fr/next/concepts-architecture-overview.html    |   2 +-
 .../next/concepts-architecture-overview/index.html |   2 +-
 content/docs/fr/next/concepts-authentication.html  |   2 +-
 .../fr/next/concepts-authentication/index.html     |   2 +-
 content/docs/fr/next/concepts-clients.html         |   2 +-
 content/docs/fr/next/concepts-clients/index.html   |   2 +-
 content/docs/fr/next/concepts-messaging.html       |   2 +-
 content/docs/fr/next/concepts-messaging/index.html |   2 +-
 content/docs/fr/next/concepts-multi-tenancy.html   |   2 +-
 .../docs/fr/next/concepts-multi-tenancy/index.html |   2 +-
 content/docs/fr/next/concepts-overview.html        |   2 +-
 content/docs/fr/next/concepts-overview/index.html  |   2 +-
 content/docs/fr/next/concepts-replication.html     |   2 +-
 .../docs/fr/next/concepts-replication/index.html   |   2 +-
 content/docs/fr/next/concepts-tiered-storage.html  |   2 +-
 .../fr/next/concepts-tiered-storage/index.html     |   2 +-
 .../docs/fr/next/concepts-topic-compaction.html    |   2 +-
 .../fr/next/concepts-topic-compaction/index.html   |   2 +-
 .../docs/fr/next/cookbooks-bookkeepermetadata.html |   2 +-
 .../next/cookbooks-bookkeepermetadata/index.html   |   2 +-
 content/docs/fr/next/cookbooks-compaction.html     |   2 +-
 .../docs/fr/next/cookbooks-compaction/index.html   |   2 +-
 content/docs/fr/next/cookbooks-deduplication.html  |   2 +-
 .../fr/next/cookbooks-deduplication/index.html     |   2 +-
 content/docs/fr/next/cookbooks-encryption.html     |   2 +-
 .../docs/fr/next/cookbooks-encryption/index.html   |   2 +-
 content/docs/fr/next/cookbooks-message-queue.html  |   2 +-
 .../fr/next/cookbooks-message-queue/index.html     |   2 +-
 content/docs/fr/next/cookbooks-non-persistent.html |   2 +-
 .../fr/next/cookbooks-non-persistent/index.html    |   2 +-
 content/docs/fr/next/cookbooks-partitioned.html    |   2 +-
 .../docs/fr/next/cookbooks-partitioned/index.html  |   2 +-
 .../docs/fr/next/cookbooks-retention-expiry.html   |   2 +-
 .../fr/next/cookbooks-retention-expiry/index.html  |   2 +-
 content/docs/fr/next/cookbooks-tiered-storage.html |   2 +-
 .../fr/next/cookbooks-tiered-storage/index.html    |   2 +-
 content/docs/fr/next/deploy-aws.html               |   2 +-
 content/docs/fr/next/deploy-aws/index.html         |   2 +-
 .../fr/next/deploy-bare-metal-multi-cluster.html   |  77 ++++--
 .../deploy-bare-metal-multi-cluster/index.html     |  77 ++++--
 content/docs/fr/next/deploy-bare-metal.html        | 192 +++++++-------
 content/docs/fr/next/deploy-bare-metal/index.html  | 192 +++++++-------
 content/docs/fr/next/deploy-dcos.html              |   2 +-
 content/docs/fr/next/deploy-dcos/index.html        |   2 +-
 content/docs/fr/next/deploy-kubernetes.html        |   2 +-
 content/docs/fr/next/deploy-kubernetes/index.html  |   2 +-
 content/docs/fr/next/deploy-monitoring.html        |   2 +-
 content/docs/fr/next/deploy-monitoring/index.html  |   2 +-
 content/docs/fr/next/develop-binary-protocol.html  |   2 +-
 .../fr/next/develop-binary-protocol/index.html     |   2 +-
 content/docs/fr/next/develop-cpp.html              |   2 +-
 content/docs/fr/next/develop-cpp/index.html        |   2 +-
 content/docs/fr/next/develop-load-manager.html     |   2 +-
 .../docs/fr/next/develop-load-manager/index.html   |   2 +-
 content/docs/fr/next/develop-tools.html            |   2 +-
 content/docs/fr/next/develop-tools/index.html      |   2 +-
 content/docs/fr/next/functions-cli.html            |   2 +-
 content/docs/fr/next/functions-cli/index.html      |   2 +-
 content/docs/fr/next/functions-debug.html          |   2 +-
 content/docs/fr/next/functions-debug/index.html    |   2 +-
 content/docs/fr/next/functions-deploy.html         |   2 +-
 content/docs/fr/next/functions-deploy/index.html   |   2 +-
 content/docs/fr/next/functions-develop.html        |   2 +-
 content/docs/fr/next/functions-develop/index.html  |   2 +-
 content/docs/fr/next/functions-overview.html       |   2 +-
 content/docs/fr/next/functions-overview/index.html |   2 +-
 content/docs/fr/next/functions-runtime.html        |   2 +-
 content/docs/fr/next/functions-runtime/index.html  |   2 +-
 content/docs/fr/next/functions-worker.html         |   2 +-
 content/docs/fr/next/functions-worker/index.html   |   2 +-
 content/docs/fr/next/io-cdc-canal.html             | 266 +++++++++++---------
 content/docs/fr/next/io-cdc-canal/index.html       | 266 +++++++++++---------
 content/docs/fr/next/io-cdc.html                   |  27 +-
 content/docs/fr/next/io-cdc/index.html             |  27 +-
 content/docs/fr/next/io-connectors.html            |   4 +-
 content/docs/fr/next/io-connectors/index.html      |   4 +-
 content/docs/fr/next/io-debug.html                 |   2 +-
 content/docs/fr/next/io-debug/index.html           |   2 +-
 content/docs/fr/next/io-develop.html               | 194 ++++++++------
 content/docs/fr/next/io-develop/index.html         | 194 ++++++++------
 content/docs/fr/next/io-overview.html              |  53 ++--
 content/docs/fr/next/io-overview/index.html        |  53 ++--
 content/docs/fr/next/io-quickstart.html            |   2 +-
 content/docs/fr/next/io-quickstart/index.html      |   2 +-
 content/docs/fr/next/io-use.html                   |   2 +-
 content/docs/fr/next/io-use/index.html             |   2 +-
 content/docs/fr/next/pulsar-2.0.html               |   2 +-
 content/docs/fr/next/pulsar-2.0/index.html         |   2 +-
 content/docs/fr/next/pulsar-admin.html             |   2 +-
 content/docs/fr/next/pulsar-admin/index.html       |   2 +-
 content/docs/fr/next/reference-cli-tools.html      |   2 +-
 .../docs/fr/next/reference-cli-tools/index.html    |   2 +-
 content/docs/fr/next/reference-configuration.html  |   4 +-
 .../fr/next/reference-configuration/index.html     |   4 +-
 .../docs/fr/next/reference-connector-admin.html    |   4 +-
 .../fr/next/reference-connector-admin/index.html   |   4 +-
 content/docs/fr/next/reference-metrics.html        |   2 +-
 content/docs/fr/next/reference-metrics/index.html  |   2 +-
 content/docs/fr/next/reference-terminology.html    |   2 +-
 .../docs/fr/next/reference-terminology/index.html  |   2 +-
 .../fr/next/schema-evolution-compatibility.html    |   2 +-
 .../next/schema-evolution-compatibility/index.html |   2 +-
 content/docs/fr/next/schema-get-started.html       |   2 +-
 content/docs/fr/next/schema-get-started/index.html |   2 +-
 content/docs/fr/next/schema-manage.html            |   2 +-
 content/docs/fr/next/schema-manage/index.html      |   2 +-
 content/docs/fr/next/schema-understand.html        |   2 +-
 content/docs/fr/next/schema-understand/index.html  |   2 +-
 content/docs/fr/next/security-athenz.html          |   2 +-
 content/docs/fr/next/security-athenz/index.html    |   2 +-
 content/docs/fr/next/security-authorization.html   |   2 +-
 .../docs/fr/next/security-authorization/index.html |   2 +-
 content/docs/fr/next/security-encryption.html      |   2 +-
 .../docs/fr/next/security-encryption/index.html    |   2 +-
 content/docs/fr/next/security-extending.html       |   2 +-
 content/docs/fr/next/security-extending/index.html |   2 +-
 content/docs/fr/next/security-kerberos.html        |   2 +-
 content/docs/fr/next/security-kerberos/index.html  |   2 +-
 content/docs/fr/next/security-overview.html        |   2 +-
 content/docs/fr/next/security-overview/index.html  |   2 +-
 .../docs/fr/next/security-tls-authentication.html  |   2 +-
 .../fr/next/security-tls-authentication/index.html |   2 +-
 content/docs/fr/next/security-tls-transport.html   |   2 +-
 .../docs/fr/next/security-tls-transport/index.html |   2 +-
 content/docs/fr/next/security-token-admin.html     |   2 +-
 .../docs/fr/next/security-token-admin/index.html   |   2 +-
 content/docs/fr/next/security-token-client.html    |   2 +-
 .../docs/fr/next/security-token-client/index.html  |   2 +-
 .../fr/next/sql-deployment-configurations.html     |   2 +-
 .../next/sql-deployment-configurations/index.html  |   2 +-
 content/docs/fr/next/sql-getting-started.html      |   2 +-
 .../docs/fr/next/sql-getting-started/index.html    |   2 +-
 content/docs/fr/next/sql-overview.html             |   2 +-
 content/docs/fr/next/sql-overview/index.html       |   2 +-
 content/docs/fr/next/standalone-docker.html        |   2 +-
 content/docs/fr/next/standalone-docker/index.html  |   2 +-
 content/docs/fr/next/standalone.html               |   2 +-
 content/docs/fr/next/standalone/index.html         |   2 +-
 content/docs/fr/sql-overview.html                  |   2 +-
 content/docs/fr/sql-overview/index.html            |   2 +-
 content/docs/ja/2.1.0-incubating/deploy-aws.html   |   2 +-
 .../docs/ja/2.1.0-incubating/deploy-aws/index.html |   2 +-
 .../docs/ja/2.1.0-incubating/io-connectors.html    |   2 +-
 .../ja/2.1.0-incubating/io-connectors/index.html   |   2 +-
 content/docs/ja/2.1.1-incubating/deploy-aws.html   |   2 +-
 .../docs/ja/2.1.1-incubating/deploy-aws/index.html |   2 +-
 .../docs/ja/2.1.1-incubating/io-connectors.html    |   2 +-
 .../ja/2.1.1-incubating/io-connectors/index.html   |   2 +-
 content/docs/ja/2.2.0/io-connectors.html           |   2 +-
 content/docs/ja/2.2.0/io-connectors/index.html     |   2 +-
 content/docs/ja/2.2.0/sql-overview.html            |   2 +-
 content/docs/ja/2.2.0/sql-overview/index.html      |   2 +-
 content/docs/ja/2.2.1/io-connectors.html           |   2 +-
 content/docs/ja/2.2.1/io-connectors/index.html     |   2 +-
 content/docs/ja/2.2.1/sql-overview.html            |   2 +-
 content/docs/ja/2.2.1/sql-overview/index.html      |   2 +-
 content/docs/ja/2.3.0/io-cdc.html                  |   2 +-
 content/docs/ja/2.3.0/io-cdc/index.html            |   2 +-
 content/docs/ja/2.3.0/io-connectors.html           |   2 +-
 content/docs/ja/2.3.0/io-connectors/index.html     |   2 +-
 content/docs/ja/2.3.0/io-develop.html              |   2 +-
 content/docs/ja/2.3.0/io-develop/index.html        |   2 +-
 content/docs/ja/2.3.0/sql-overview.html            |   2 +-
 content/docs/ja/2.3.0/sql-overview/index.html      |   2 +-
 content/docs/ja/2.3.1/io-cdc.html                  |   2 +-
 content/docs/ja/2.3.1/io-cdc/index.html            |   2 +-
 content/docs/ja/2.3.1/io-connectors.html           |   2 +-
 content/docs/ja/2.3.1/io-connectors/index.html     |   2 +-
 content/docs/ja/2.3.1/io-develop.html              |   2 +-
 content/docs/ja/2.3.1/io-develop/index.html        |   2 +-
 content/docs/ja/2.3.1/sql-overview.html            |   2 +-
 content/docs/ja/2.3.1/sql-overview/index.html      |   2 +-
 content/docs/ja/2.3.2/io-cdc.html                  |   2 +-
 content/docs/ja/2.3.2/io-cdc/index.html            |   2 +-
 content/docs/ja/2.3.2/io-connectors.html           |   2 +-
 content/docs/ja/2.3.2/io-connectors/index.html     |   2 +-
 content/docs/ja/2.3.2/io-develop.html              |   2 +-
 content/docs/ja/2.3.2/io-develop/index.html        |   2 +-
 content/docs/ja/2.3.2/sql-overview.html            |   2 +-
 content/docs/ja/2.3.2/sql-overview/index.html      |   2 +-
 content/docs/ja/2.4.0/io-cdc.html                  |   2 +-
 content/docs/ja/2.4.0/io-cdc/index.html            |   2 +-
 content/docs/ja/2.4.0/io-connectors.html           |   2 +-
 content/docs/ja/2.4.0/io-connectors/index.html     |   2 +-
 content/docs/ja/2.4.0/io-develop.html              |   2 +-
 content/docs/ja/2.4.0/io-develop/index.html        |   2 +-
 content/docs/ja/2.4.0/sql-overview.html            |   2 +-
 content/docs/ja/2.4.0/sql-overview/index.html      |   2 +-
 content/docs/ja/io-cdc.html                        |   2 +-
 content/docs/ja/io-cdc/index.html                  |   2 +-
 content/docs/ja/io-connectors.html                 |   2 +-
 content/docs/ja/io-connectors/index.html           |   2 +-
 content/docs/ja/io-develop.html                    |   2 +-
 content/docs/ja/io-develop/index.html              |   2 +-
 content/docs/ja/next/adaptors-kafka.html           |   2 +-
 content/docs/ja/next/adaptors-kafka/index.html     |   2 +-
 content/docs/ja/next/adaptors-spark.html           |   2 +-
 content/docs/ja/next/adaptors-spark/index.html     |   2 +-
 content/docs/ja/next/adaptors-storm.html           |   2 +-
 content/docs/ja/next/adaptors-storm/index.html     |   2 +-
 content/docs/ja/next/admin-api-brokers.html        |   2 +-
 content/docs/ja/next/admin-api-brokers/index.html  |   2 +-
 content/docs/ja/next/admin-api-clusters.html       |   2 +-
 content/docs/ja/next/admin-api-clusters/index.html |   2 +-
 content/docs/ja/next/admin-api-namespaces.html     |   2 +-
 .../docs/ja/next/admin-api-namespaces/index.html   |   2 +-
 .../ja/next/admin-api-non-partitioned-topics.html  |   2 +-
 .../admin-api-non-partitioned-topics/index.html    |   2 +-
 .../ja/next/admin-api-non-persistent-topics.html   |   2 +-
 .../admin-api-non-persistent-topics/index.html     |   2 +-
 content/docs/ja/next/admin-api-overview.html       |   2 +-
 content/docs/ja/next/admin-api-overview/index.html |   2 +-
 .../docs/ja/next/admin-api-partitioned-topics.html |   2 +-
 .../next/admin-api-partitioned-topics/index.html   |   2 +-
 content/docs/ja/next/admin-api-permissions.html    |   2 +-
 .../docs/ja/next/admin-api-permissions/index.html  |   2 +-
 .../docs/ja/next/admin-api-persistent-topics.html  |   2 +-
 .../ja/next/admin-api-persistent-topics/index.html |   2 +-
 content/docs/ja/next/admin-api-tenants.html        |   2 +-
 content/docs/ja/next/admin-api-tenants/index.html  |   2 +-
 content/docs/ja/next/administration-dashboard.html |   2 +-
 .../ja/next/administration-dashboard/index.html    |   2 +-
 content/docs/ja/next/administration-geo.html       |   2 +-
 content/docs/ja/next/administration-geo/index.html |   2 +-
 .../docs/ja/next/administration-load-balance.html  |   2 +-
 .../ja/next/administration-load-balance/index.html |   2 +-
 content/docs/ja/next/administration-proxy.html     |   2 +-
 .../docs/ja/next/administration-proxy/index.html   |   2 +-
 content/docs/ja/next/administration-stats.html     |   2 +-
 .../docs/ja/next/administration-stats/index.html   |   2 +-
 content/docs/ja/next/administration-upgrade.html   |   2 +-
 .../docs/ja/next/administration-upgrade/index.html |   2 +-
 content/docs/ja/next/administration-zk-bk.html     |   2 +-
 .../docs/ja/next/administration-zk-bk/index.html   |   2 +-
 content/docs/ja/next/client-libraries-cpp.html     |   2 +-
 .../docs/ja/next/client-libraries-cpp/index.html   |   2 +-
 content/docs/ja/next/client-libraries-go.html      |   2 +-
 .../docs/ja/next/client-libraries-go/index.html    |   2 +-
 content/docs/ja/next/client-libraries-java.html    |   2 +-
 .../docs/ja/next/client-libraries-java/index.html  |   2 +-
 content/docs/ja/next/client-libraries-python.html  |   2 +-
 .../ja/next/client-libraries-python/index.html     |   2 +-
 .../docs/ja/next/client-libraries-websocket.html   |   2 +-
 .../ja/next/client-libraries-websocket/index.html  |   2 +-
 content/docs/ja/next/client-libraries.html         |   2 +-
 content/docs/ja/next/client-libraries/index.html   |   2 +-
 .../ja/next/concepts-architecture-overview.html    |   2 +-
 .../next/concepts-architecture-overview/index.html |   2 +-
 content/docs/ja/next/concepts-authentication.html  |   2 +-
 .../ja/next/concepts-authentication/index.html     |   2 +-
 content/docs/ja/next/concepts-clients.html         |   2 +-
 content/docs/ja/next/concepts-clients/index.html   |   2 +-
 content/docs/ja/next/concepts-messaging.html       |   2 +-
 content/docs/ja/next/concepts-messaging/index.html |   2 +-
 content/docs/ja/next/concepts-multi-tenancy.html   |   2 +-
 .../docs/ja/next/concepts-multi-tenancy/index.html |   2 +-
 content/docs/ja/next/concepts-overview.html        |   2 +-
 content/docs/ja/next/concepts-overview/index.html  |   2 +-
 content/docs/ja/next/concepts-replication.html     |   2 +-
 .../docs/ja/next/concepts-replication/index.html   |   2 +-
 content/docs/ja/next/concepts-tiered-storage.html  |   2 +-
 .../ja/next/concepts-tiered-storage/index.html     |   2 +-
 .../docs/ja/next/concepts-topic-compaction.html    |   2 +-
 .../ja/next/concepts-topic-compaction/index.html   |   2 +-
 .../docs/ja/next/cookbooks-bookkeepermetadata.html |   2 +-
 .../next/cookbooks-bookkeepermetadata/index.html   |   2 +-
 content/docs/ja/next/cookbooks-compaction.html     |   2 +-
 .../docs/ja/next/cookbooks-compaction/index.html   |   2 +-
 content/docs/ja/next/cookbooks-deduplication.html  |   2 +-
 .../ja/next/cookbooks-deduplication/index.html     |   2 +-
 content/docs/ja/next/cookbooks-encryption.html     |   2 +-
 .../docs/ja/next/cookbooks-encryption/index.html   |   2 +-
 content/docs/ja/next/cookbooks-message-queue.html  |   2 +-
 .../ja/next/cookbooks-message-queue/index.html     |   2 +-
 content/docs/ja/next/cookbooks-non-persistent.html |   2 +-
 .../ja/next/cookbooks-non-persistent/index.html    |   2 +-
 content/docs/ja/next/cookbooks-partitioned.html    |   2 +-
 .../docs/ja/next/cookbooks-partitioned/index.html  |   2 +-
 .../docs/ja/next/cookbooks-retention-expiry.html   |   2 +-
 .../ja/next/cookbooks-retention-expiry/index.html  |   2 +-
 content/docs/ja/next/cookbooks-tiered-storage.html |   2 +-
 .../ja/next/cookbooks-tiered-storage/index.html    |   2 +-
 content/docs/ja/next/deploy-aws.html               |   2 +-
 content/docs/ja/next/deploy-aws/index.html         |   2 +-
 .../ja/next/deploy-bare-metal-multi-cluster.html   |  77 ++++--
 .../deploy-bare-metal-multi-cluster/index.html     |  77 ++++--
 content/docs/ja/next/deploy-bare-metal.html        | 192 +++++++-------
 content/docs/ja/next/deploy-bare-metal/index.html  | 192 +++++++-------
 content/docs/ja/next/deploy-dcos.html              |   2 +-
 content/docs/ja/next/deploy-dcos/index.html        |   2 +-
 content/docs/ja/next/deploy-kubernetes.html        |   2 +-
 content/docs/ja/next/deploy-kubernetes/index.html  |   2 +-
 content/docs/ja/next/deploy-monitoring.html        |   2 +-
 content/docs/ja/next/deploy-monitoring/index.html  |   2 +-
 content/docs/ja/next/develop-binary-protocol.html  |   2 +-
 .../ja/next/develop-binary-protocol/index.html     |   2 +-
 content/docs/ja/next/develop-cpp.html              |   2 +-
 content/docs/ja/next/develop-cpp/index.html        |   2 +-
 content/docs/ja/next/develop-load-manager.html     |   2 +-
 .../docs/ja/next/develop-load-manager/index.html   |   2 +-
 content/docs/ja/next/develop-tools.html            |   2 +-
 content/docs/ja/next/develop-tools/index.html      |   2 +-
 content/docs/ja/next/functions-cli.html            |   2 +-
 content/docs/ja/next/functions-cli/index.html      |   2 +-
 content/docs/ja/next/functions-debug.html          |   2 +-
 content/docs/ja/next/functions-debug/index.html    |   2 +-
 content/docs/ja/next/functions-deploy.html         |   2 +-
 content/docs/ja/next/functions-deploy/index.html   |   2 +-
 content/docs/ja/next/functions-develop.html        |   2 +-
 content/docs/ja/next/functions-develop/index.html  |   2 +-
 content/docs/ja/next/functions-overview.html       |   2 +-
 content/docs/ja/next/functions-overview/index.html |   2 +-
 content/docs/ja/next/functions-runtime.html        |   2 +-
 content/docs/ja/next/functions-runtime/index.html  |   2 +-
 content/docs/ja/next/functions-worker.html         |   2 +-
 content/docs/ja/next/functions-worker/index.html   |   2 +-
 content/docs/ja/next/io-cdc-canal.html             | 266 +++++++++++---------
 content/docs/ja/next/io-cdc-canal/index.html       | 266 +++++++++++---------
 content/docs/ja/next/io-cdc.html                   |  27 +-
 content/docs/ja/next/io-cdc/index.html             |  27 +-
 content/docs/ja/next/io-connectors.html            |   4 +-
 content/docs/ja/next/io-connectors/index.html      |   4 +-
 content/docs/ja/next/io-debug.html                 |   2 +-
 content/docs/ja/next/io-debug/index.html           |   2 +-
 content/docs/ja/next/io-develop.html               | 194 ++++++++------
 content/docs/ja/next/io-develop/index.html         | 194 ++++++++------
 content/docs/ja/next/io-overview.html              |  53 ++--
 content/docs/ja/next/io-overview/index.html        |  53 ++--
 content/docs/ja/next/io-quickstart.html            |   2 +-
 content/docs/ja/next/io-quickstart/index.html      |   2 +-
 content/docs/ja/next/io-use.html                   |   2 +-
 content/docs/ja/next/io-use/index.html             |   2 +-
 content/docs/ja/next/pulsar-2.0.html               |   2 +-
 content/docs/ja/next/pulsar-2.0/index.html         |   2 +-
 content/docs/ja/next/pulsar-admin.html             |   2 +-
 content/docs/ja/next/pulsar-admin/index.html       |   2 +-
 content/docs/ja/next/reference-cli-tools.html      |   2 +-
 .../docs/ja/next/reference-cli-tools/index.html    |   2 +-
 content/docs/ja/next/reference-configuration.html  |   4 +-
 .../ja/next/reference-configuration/index.html     |   4 +-
 .../docs/ja/next/reference-connector-admin.html    |   4 +-
 .../ja/next/reference-connector-admin/index.html   |   4 +-
 content/docs/ja/next/reference-metrics.html        |   2 +-
 content/docs/ja/next/reference-metrics/index.html  |   2 +-
 content/docs/ja/next/reference-terminology.html    |   2 +-
 .../docs/ja/next/reference-terminology/index.html  |   2 +-
 .../ja/next/schema-evolution-compatibility.html    |   2 +-
 .../next/schema-evolution-compatibility/index.html |   2 +-
 content/docs/ja/next/schema-get-started.html       |   2 +-
 content/docs/ja/next/schema-get-started/index.html |   2 +-
 content/docs/ja/next/schema-manage.html            |   2 +-
 content/docs/ja/next/schema-manage/index.html      |   2 +-
 content/docs/ja/next/schema-understand.html        |   2 +-
 content/docs/ja/next/schema-understand/index.html  |   2 +-
 content/docs/ja/next/security-athenz.html          |   2 +-
 content/docs/ja/next/security-athenz/index.html    |   2 +-
 content/docs/ja/next/security-authorization.html   |   2 +-
 .../docs/ja/next/security-authorization/index.html |   2 +-
 content/docs/ja/next/security-encryption.html      |   2 +-
 .../docs/ja/next/security-encryption/index.html    |   2 +-
 content/docs/ja/next/security-extending.html       |   2 +-
 content/docs/ja/next/security-extending/index.html |   2 +-
 content/docs/ja/next/security-kerberos.html        |   2 +-
 content/docs/ja/next/security-kerberos/index.html  |   2 +-
 content/docs/ja/next/security-overview.html        |   2 +-
 content/docs/ja/next/security-overview/index.html  |   2 +-
 .../docs/ja/next/security-tls-authentication.html  |   2 +-
 .../ja/next/security-tls-authentication/index.html |   2 +-
 content/docs/ja/next/security-tls-transport.html   |   2 +-
 .../docs/ja/next/security-tls-transport/index.html |   2 +-
 content/docs/ja/next/security-token-admin.html     |   2 +-
 .../docs/ja/next/security-token-admin/index.html   |   2 +-
 content/docs/ja/next/security-token-client.html    |   2 +-
 .../docs/ja/next/security-token-client/index.html  |   2 +-
 .../ja/next/sql-deployment-configurations.html     |   2 +-
 .../next/sql-deployment-configurations/index.html  |   2 +-
 content/docs/ja/next/sql-getting-started.html      |   2 +-
 .../docs/ja/next/sql-getting-started/index.html    |   2 +-
 content/docs/ja/next/sql-overview.html             |   2 +-
 content/docs/ja/next/sql-overview/index.html       |   2 +-
 content/docs/ja/next/standalone-docker.html        |   2 +-
 content/docs/ja/next/standalone-docker/index.html  |   2 +-
 content/docs/ja/next/standalone.html               |   2 +-
 content/docs/ja/next/standalone/index.html         |   2 +-
 content/docs/ja/sql-overview.html                  |   2 +-
 content/docs/ja/sql-overview/index.html            |   2 +-
 .../docs/zh-CN/2.1.0-incubating/deploy-aws.html    |   2 +-
 .../zh-CN/2.1.0-incubating/deploy-aws/index.html   |   2 +-
 .../docs/zh-CN/2.1.0-incubating/io-connectors.html |   2 +-
 .../2.1.0-incubating/io-connectors/index.html      |   2 +-
 .../docs/zh-CN/2.1.1-incubating/deploy-aws.html    |   2 +-
 .../zh-CN/2.1.1-incubating/deploy-aws/index.html   |   2 +-
 .../docs/zh-CN/2.1.1-incubating/io-connectors.html |   2 +-
 .../2.1.1-incubating/io-connectors/index.html      |   2 +-
 content/docs/zh-CN/2.2.0/io-connectors.html        |   2 +-
 content/docs/zh-CN/2.2.0/io-connectors/index.html  |   2 +-
 content/docs/zh-CN/2.2.0/sql-overview.html         |   2 +-
 content/docs/zh-CN/2.2.0/sql-overview/index.html   |   2 +-
 content/docs/zh-CN/2.2.1/io-connectors.html        |   2 +-
 content/docs/zh-CN/2.2.1/io-connectors/index.html  |   2 +-
 content/docs/zh-CN/2.2.1/sql-overview.html         |   2 +-
 content/docs/zh-CN/2.2.1/sql-overview/index.html   |   2 +-
 content/docs/zh-CN/2.3.0/io-cdc.html               |   2 +-
 content/docs/zh-CN/2.3.0/io-cdc/index.html         |   2 +-
 content/docs/zh-CN/2.3.0/io-connectors.html        |   2 +-
 content/docs/zh-CN/2.3.0/io-connectors/index.html  |   2 +-
 content/docs/zh-CN/2.3.0/io-develop.html           |   2 +-
 content/docs/zh-CN/2.3.0/io-develop/index.html     |   2 +-
 content/docs/zh-CN/2.3.0/sql-overview.html         |   2 +-
 content/docs/zh-CN/2.3.0/sql-overview/index.html   |   2 +-
 content/docs/zh-CN/2.3.1/io-cdc.html               |   2 +-
 content/docs/zh-CN/2.3.1/io-cdc/index.html         |   2 +-
 content/docs/zh-CN/2.3.1/io-connectors.html        |   2 +-
 content/docs/zh-CN/2.3.1/io-connectors/index.html  |   2 +-
 content/docs/zh-CN/2.3.1/io-develop.html           |   2 +-
 content/docs/zh-CN/2.3.1/io-develop/index.html     |   2 +-
 content/docs/zh-CN/2.3.1/sql-overview.html         |   2 +-
 content/docs/zh-CN/2.3.1/sql-overview/index.html   |   2 +-
 content/docs/zh-CN/2.3.2/io-cdc.html               |   2 +-
 content/docs/zh-CN/2.3.2/io-cdc/index.html         |   2 +-
 content/docs/zh-CN/2.3.2/io-connectors.html        |   2 +-
 content/docs/zh-CN/2.3.2/io-connectors/index.html  |   2 +-
 content/docs/zh-CN/2.3.2/io-develop.html           |   2 +-
 content/docs/zh-CN/2.3.2/io-develop/index.html     |   2 +-
 content/docs/zh-CN/2.3.2/sql-overview.html         |   2 +-
 content/docs/zh-CN/2.3.2/sql-overview/index.html   |   2 +-
 content/docs/zh-CN/2.4.0/io-cdc.html               |   2 +-
 content/docs/zh-CN/2.4.0/io-cdc/index.html         |   2 +-
 content/docs/zh-CN/2.4.0/io-connectors.html        |   2 +-
 content/docs/zh-CN/2.4.0/io-connectors/index.html  |   2 +-
 content/docs/zh-CN/2.4.0/io-develop.html           |   2 +-
 content/docs/zh-CN/2.4.0/io-develop/index.html     |   2 +-
 content/docs/zh-CN/2.4.0/sql-overview.html         |   2 +-
 content/docs/zh-CN/2.4.0/sql-overview/index.html   |   2 +-
 content/docs/zh-CN/io-cdc.html                     |   2 +-
 content/docs/zh-CN/io-cdc/index.html               |   2 +-
 content/docs/zh-CN/io-connectors.html              |   2 +-
 content/docs/zh-CN/io-connectors/index.html        |   2 +-
 content/docs/zh-CN/io-develop.html                 |   2 +-
 content/docs/zh-CN/io-develop/index.html           |   2 +-
 content/docs/zh-CN/next/adaptors-kafka.html        |   2 +-
 content/docs/zh-CN/next/adaptors-kafka/index.html  |   2 +-
 content/docs/zh-CN/next/adaptors-spark.html        |   2 +-
 content/docs/zh-CN/next/adaptors-spark/index.html  |   2 +-
 content/docs/zh-CN/next/adaptors-storm.html        |   2 +-
 content/docs/zh-CN/next/adaptors-storm/index.html  |   2 +-
 content/docs/zh-CN/next/admin-api-brokers.html     |   2 +-
 .../docs/zh-CN/next/admin-api-brokers/index.html   |   2 +-
 content/docs/zh-CN/next/admin-api-clusters.html    |   2 +-
 .../docs/zh-CN/next/admin-api-clusters/index.html  |   2 +-
 content/docs/zh-CN/next/admin-api-namespaces.html  |   2 +-
 .../zh-CN/next/admin-api-namespaces/index.html     |   2 +-
 .../next/admin-api-non-partitioned-topics.html     |   2 +-
 .../admin-api-non-partitioned-topics/index.html    |   2 +-
 .../next/admin-api-non-persistent-topics.html      |   2 +-
 .../admin-api-non-persistent-topics/index.html     |   2 +-
 content/docs/zh-CN/next/admin-api-overview.html    |   2 +-
 .../docs/zh-CN/next/admin-api-overview/index.html  |   2 +-
 .../zh-CN/next/admin-api-partitioned-topics.html   |   2 +-
 .../next/admin-api-partitioned-topics/index.html   |   2 +-
 content/docs/zh-CN/next/admin-api-permissions.html |   2 +-
 .../zh-CN/next/admin-api-permissions/index.html    |   2 +-
 .../zh-CN/next/admin-api-persistent-topics.html    |   2 +-
 .../next/admin-api-persistent-topics/index.html    |   2 +-
 content/docs/zh-CN/next/admin-api-tenants.html     |   2 +-
 .../docs/zh-CN/next/admin-api-tenants/index.html   |   2 +-
 .../docs/zh-CN/next/administration-dashboard.html  |   2 +-
 .../zh-CN/next/administration-dashboard/index.html |   2 +-
 content/docs/zh-CN/next/administration-geo.html    |   2 +-
 .../docs/zh-CN/next/administration-geo/index.html  |   2 +-
 .../zh-CN/next/administration-load-balance.html    |   2 +-
 .../next/administration-load-balance/index.html    |   2 +-
 content/docs/zh-CN/next/administration-proxy.html  |   2 +-
 .../zh-CN/next/administration-proxy/index.html     |   2 +-
 content/docs/zh-CN/next/administration-stats.html  |   2 +-
 .../zh-CN/next/administration-stats/index.html     |   2 +-
 .../docs/zh-CN/next/administration-upgrade.html    |   2 +-
 .../zh-CN/next/administration-upgrade/index.html   |   2 +-
 content/docs/zh-CN/next/administration-zk-bk.html  |   2 +-
 .../zh-CN/next/administration-zk-bk/index.html     |   2 +-
 content/docs/zh-CN/next/client-libraries-cpp.html  |   2 +-
 .../zh-CN/next/client-libraries-cpp/index.html     |   2 +-
 content/docs/zh-CN/next/client-libraries-go.html   |   2 +-
 .../docs/zh-CN/next/client-libraries-go/index.html |   2 +-
 content/docs/zh-CN/next/client-libraries-java.html |   2 +-
 .../zh-CN/next/client-libraries-java/index.html    |   2 +-
 .../docs/zh-CN/next/client-libraries-python.html   |   2 +-
 .../zh-CN/next/client-libraries-python/index.html  |   2 +-
 .../zh-CN/next/client-libraries-websocket.html     |   2 +-
 .../next/client-libraries-websocket/index.html     |   2 +-
 content/docs/zh-CN/next/client-libraries.html      |   2 +-
 .../docs/zh-CN/next/client-libraries/index.html    |   2 +-
 .../zh-CN/next/concepts-architecture-overview.html |   2 +-
 .../next/concepts-architecture-overview/index.html |   2 +-
 .../docs/zh-CN/next/concepts-authentication.html   |   2 +-
 .../zh-CN/next/concepts-authentication/index.html  |   2 +-
 content/docs/zh-CN/next/concepts-clients.html      |   2 +-
 .../docs/zh-CN/next/concepts-clients/index.html    |   2 +-
 content/docs/zh-CN/next/concepts-messaging.html    |   2 +-
 .../docs/zh-CN/next/concepts-messaging/index.html  |   2 +-
 .../docs/zh-CN/next/concepts-multi-tenancy.html    |   2 +-
 .../zh-CN/next/concepts-multi-tenancy/index.html   |   2 +-
 content/docs/zh-CN/next/concepts-overview.html     |   2 +-
 .../docs/zh-CN/next/concepts-overview/index.html   |   2 +-
 content/docs/zh-CN/next/concepts-replication.html  |   2 +-
 .../zh-CN/next/concepts-replication/index.html     |   2 +-
 .../docs/zh-CN/next/concepts-tiered-storage.html   |   2 +-
 .../zh-CN/next/concepts-tiered-storage/index.html  |   2 +-
 .../docs/zh-CN/next/concepts-topic-compaction.html |   2 +-
 .../next/concepts-topic-compaction/index.html      |   2 +-
 .../zh-CN/next/cookbooks-bookkeepermetadata.html   |   2 +-
 .../next/cookbooks-bookkeepermetadata/index.html   |   2 +-
 content/docs/zh-CN/next/cookbooks-compaction.html  |   2 +-
 .../zh-CN/next/cookbooks-compaction/index.html     |   2 +-
 .../docs/zh-CN/next/cookbooks-deduplication.html   |   2 +-
 .../zh-CN/next/cookbooks-deduplication/index.html  |   2 +-
 content/docs/zh-CN/next/cookbooks-encryption.html  |   2 +-
 .../zh-CN/next/cookbooks-encryption/index.html     |   2 +-
 .../docs/zh-CN/next/cookbooks-message-queue.html   |   2 +-
 .../zh-CN/next/cookbooks-message-queue/index.html  |   2 +-
 .../docs/zh-CN/next/cookbooks-non-persistent.html  |   2 +-
 .../zh-CN/next/cookbooks-non-persistent/index.html |   2 +-
 content/docs/zh-CN/next/cookbooks-partitioned.html |   2 +-
 .../zh-CN/next/cookbooks-partitioned/index.html    |   2 +-
 .../zh-CN/next/cookbooks-retention-expiry.html     |   2 +-
 .../next/cookbooks-retention-expiry/index.html     |   2 +-
 .../docs/zh-CN/next/cookbooks-tiered-storage.html  |   2 +-
 .../zh-CN/next/cookbooks-tiered-storage/index.html |   2 +-
 content/docs/zh-CN/next/deploy-aws.html            |   2 +-
 content/docs/zh-CN/next/deploy-aws/index.html      |   2 +-
 .../next/deploy-bare-metal-multi-cluster.html      |  77 ++++--
 .../deploy-bare-metal-multi-cluster/index.html     |  77 ++++--
 content/docs/zh-CN/next/deploy-bare-metal.html     | 190 +++++++-------
 .../docs/zh-CN/next/deploy-bare-metal/index.html   | 190 +++++++-------
 content/docs/zh-CN/next/deploy-dcos.html           |   2 +-
 content/docs/zh-CN/next/deploy-dcos/index.html     |   2 +-
 content/docs/zh-CN/next/deploy-kubernetes.html     |   2 +-
 .../docs/zh-CN/next/deploy-kubernetes/index.html   |   2 +-
 content/docs/zh-CN/next/deploy-monitoring.html     |   2 +-
 .../docs/zh-CN/next/deploy-monitoring/index.html   |   2 +-
 .../docs/zh-CN/next/develop-binary-protocol.html   |   2 +-
 .../zh-CN/next/develop-binary-protocol/index.html  |   2 +-
 content/docs/zh-CN/next/develop-cpp.html           |   2 +-
 content/docs/zh-CN/next/develop-cpp/index.html     |   2 +-
 content/docs/zh-CN/next/develop-load-manager.html  |   2 +-
 .../zh-CN/next/develop-load-manager/index.html     |   2 +-
 content/docs/zh-CN/next/develop-tools.html         |   2 +-
 content/docs/zh-CN/next/develop-tools/index.html   |   2 +-
 content/docs/zh-CN/next/functions-cli.html         |   2 +-
 content/docs/zh-CN/next/functions-cli/index.html   |   2 +-
 content/docs/zh-CN/next/functions-debug.html       |   2 +-
 content/docs/zh-CN/next/functions-debug/index.html |   2 +-
 content/docs/zh-CN/next/functions-deploy.html      |   2 +-
 .../docs/zh-CN/next/functions-deploy/index.html    |   2 +-
 content/docs/zh-CN/next/functions-develop.html     |   2 +-
 .../docs/zh-CN/next/functions-develop/index.html   |   2 +-
 content/docs/zh-CN/next/functions-overview.html    |   2 +-
 .../docs/zh-CN/next/functions-overview/index.html  |   2 +-
 content/docs/zh-CN/next/functions-runtime.html     |   2 +-
 .../docs/zh-CN/next/functions-runtime/index.html   |   2 +-
 content/docs/zh-CN/next/functions-worker.html      |   2 +-
 .../docs/zh-CN/next/functions-worker/index.html    |   2 +-
 content/docs/zh-CN/next/io-cdc-canal.html          | 266 +++++++++++---------
 content/docs/zh-CN/next/io-cdc-canal/index.html    | 266 +++++++++++---------
 content/docs/zh-CN/next/io-cdc.html                |  27 +-
 content/docs/zh-CN/next/io-cdc/index.html          |  27 +-
 content/docs/zh-CN/next/io-connectors.html         |   4 +-
 content/docs/zh-CN/next/io-connectors/index.html   |   4 +-
 content/docs/zh-CN/next/io-debug.html              |   2 +-
 content/docs/zh-CN/next/io-debug/index.html        |   2 +-
 content/docs/zh-CN/next/io-develop.html            | 194 ++++++++------
 content/docs/zh-CN/next/io-develop/index.html      | 194 ++++++++------
 content/docs/zh-CN/next/io-overview.html           |  53 ++--
 content/docs/zh-CN/next/io-overview/index.html     |  53 ++--
 content/docs/zh-CN/next/io-quickstart.html         |   2 +-
 content/docs/zh-CN/next/io-quickstart/index.html   |   2 +-
 content/docs/zh-CN/next/io-use.html                |   2 +-
 content/docs/zh-CN/next/io-use/index.html          |   2 +-
 content/docs/zh-CN/next/pulsar-2.0.html            |   2 +-
 content/docs/zh-CN/next/pulsar-2.0/index.html      |   2 +-
 content/docs/zh-CN/next/pulsar-admin.html          |   2 +-
 content/docs/zh-CN/next/pulsar-admin/index.html    |   2 +-
 content/docs/zh-CN/next/reference-cli-tools.html   |   2 +-
 .../docs/zh-CN/next/reference-cli-tools/index.html |   2 +-
 .../docs/zh-CN/next/reference-configuration.html   |   4 +-
 .../zh-CN/next/reference-configuration/index.html  |   4 +-
 .../docs/zh-CN/next/reference-connector-admin.html |   4 +-
 .../next/reference-connector-admin/index.html      |   4 +-
 content/docs/zh-CN/next/reference-metrics.html     |   2 +-
 .../docs/zh-CN/next/reference-metrics/index.html   |   2 +-
 content/docs/zh-CN/next/reference-terminology.html |   2 +-
 .../zh-CN/next/reference-terminology/index.html    |   2 +-
 .../zh-CN/next/schema-evolution-compatibility.html |   2 +-
 .../next/schema-evolution-compatibility/index.html |   2 +-
 content/docs/zh-CN/next/schema-get-started.html    |   2 +-
 .../docs/zh-CN/next/schema-get-started/index.html  |   2 +-
 content/docs/zh-CN/next/schema-manage.html         |   2 +-
 content/docs/zh-CN/next/schema-manage/index.html   |   2 +-
 content/docs/zh-CN/next/schema-understand.html     |   2 +-
 .../docs/zh-CN/next/schema-understand/index.html   |   2 +-
 content/docs/zh-CN/next/security-athenz.html       |   2 +-
 content/docs/zh-CN/next/security-athenz/index.html |   2 +-
 .../docs/zh-CN/next/security-authorization.html    |   2 +-
 .../zh-CN/next/security-authorization/index.html   |   2 +-
 content/docs/zh-CN/next/security-encryption.html   |   2 +-
 .../docs/zh-CN/next/security-encryption/index.html |   2 +-
 content/docs/zh-CN/next/security-extending.html    |   2 +-
 .../docs/zh-CN/next/security-extending/index.html  |   2 +-
 content/docs/zh-CN/next/security-kerberos.html     |   2 +-
 .../docs/zh-CN/next/security-kerberos/index.html   |   2 +-
 content/docs/zh-CN/next/security-overview.html     |   2 +-
 .../docs/zh-CN/next/security-overview/index.html   |   2 +-
 .../zh-CN/next/security-tls-authentication.html    |   2 +-
 .../next/security-tls-authentication/index.html    |   2 +-
 .../docs/zh-CN/next/security-tls-transport.html    |   2 +-
 .../zh-CN/next/security-tls-transport/index.html   |   2 +-
 content/docs/zh-CN/next/security-token-admin.html  |   2 +-
 .../zh-CN/next/security-token-admin/index.html     |   2 +-
 content/docs/zh-CN/next/security-token-client.html |   2 +-
 .../zh-CN/next/security-token-client/index.html    |   2 +-
 .../zh-CN/next/sql-deployment-configurations.html  |   2 +-
 .../next/sql-deployment-configurations/index.html  |   2 +-
 content/docs/zh-CN/next/sql-getting-started.html   |   2 +-
 .../docs/zh-CN/next/sql-getting-started/index.html |   2 +-
 content/docs/zh-CN/next/sql-overview.html          |   2 +-
 content/docs/zh-CN/next/sql-overview/index.html    |   2 +-
 content/docs/zh-CN/next/standalone-docker.html     |   2 +-
 .../docs/zh-CN/next/standalone-docker/index.html   |   2 +-
 content/docs/zh-CN/next/standalone.html            |   2 +-
 content/docs/zh-CN/next/standalone/index.html      |   2 +-
 content/docs/zh-CN/sql-overview.html               |   2 +-
 content/docs/zh-CN/sql-overview/index.html         |   2 +-
 content/swagger/2.5.0-SNAPSHOT/swagger.json        |  46 ++--
 .../swagger/2.5.0-SNAPSHOT/swaggerfunctions.json   |  22 +-
 content/swagger/master/swagger.json                |  46 ++--
 content/swagger/master/swaggerfunctions.json       |  22 +-
 988 files changed, 4700 insertions(+), 4000 deletions(-)

diff --git a/content/docs/en/2.1.0-incubating/deploy-aws.html b/content/docs/en/2.1.0-incubating/deploy-aws.html
index eb3e58a..afaaa5e 100644
--- a/content/docs/en/2.1.0-incubating/deploy-aws.html
+++ b/content/docs/en/2.1.0-incubating/deploy-aws.html
@@ -228,7 +228,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/2.1.0-incubating/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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="#ins [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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">Ins [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.0-incubating/deploy-aws/index.html b/content/docs/en/2.1.0-incubating/deploy-aws/index.html
index eb3e58a..afaaa5e 100644
--- a/content/docs/en/2.1.0-incubating/deploy-aws/index.html
+++ b/content/docs/en/2.1.0-incubating/deploy-aws/index.html
@@ -228,7 +228,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/2.1.0-incubating/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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="#ins [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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">Ins [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.0-incubating/io-connectors.html b/content/docs/en/2.1.0-incubating/io-connectors.html
index e53ff21..5f94032 100644
--- a/content/docs/en/2.1.0-incubating/io-connectors.html
+++ b/content/docs/en/2.1.0-incubating/io-connectors.html
@@ -87,7 +87,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.1.0-incubating/io-rabbitmq#source">RabbitMQ Source Connector</a></li>
 <li><a href="/docs/en/2.1.0-incubating/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/2.1.0-incubating/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foun [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Ri [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.0-incubating/io-connectors/index.html b/content/docs/en/2.1.0-incubating/io-connectors/index.html
index e53ff21..5f94032 100644
--- a/content/docs/en/2.1.0-incubating/io-connectors/index.html
+++ b/content/docs/en/2.1.0-incubating/io-connectors/index.html
@@ -87,7 +87,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.1.0-incubating/io-rabbitmq#source">RabbitMQ Source Connector</a></li>
 <li><a href="/docs/en/2.1.0-incubating/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/2.1.0-incubating/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foun [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Ri [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/deploy-aws.html b/content/docs/en/2.1.1-incubating/deploy-aws.html
index 4145579..58fbb23 100644
--- a/content/docs/en/2.1.1-incubating/deploy-aws.html
+++ b/content/docs/en/2.1.1-incubating/deploy-aws.html
@@ -228,7 +228,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/2.1.1-incubating/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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="#ins [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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">Ins [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/deploy-aws/index.html b/content/docs/en/2.1.1-incubating/deploy-aws/index.html
index 4145579..58fbb23 100644
--- a/content/docs/en/2.1.1-incubating/deploy-aws/index.html
+++ b/content/docs/en/2.1.1-incubating/deploy-aws/index.html
@@ -228,7 +228,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/2.1.1-incubating/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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="#ins [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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">Ins [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/io-connectors.html b/content/docs/en/2.1.1-incubating/io-connectors.html
index 84908ab..5dfc6a4 100644
--- a/content/docs/en/2.1.1-incubating/io-connectors.html
+++ b/content/docs/en/2.1.1-incubating/io-connectors.html
@@ -87,7 +87,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.1.1-incubating/io-rabbitmq#source">RabbitMQ Source Connector</a></li>
 <li><a href="/docs/en/2.1.1-incubating/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/2.1.1-incubating/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foun [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Ri [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/io-connectors/index.html b/content/docs/en/2.1.1-incubating/io-connectors/index.html
index 84908ab..5dfc6a4 100644
--- a/content/docs/en/2.1.1-incubating/io-connectors/index.html
+++ b/content/docs/en/2.1.1-incubating/io-connectors/index.html
@@ -87,7 +87,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.1.1-incubating/io-rabbitmq#source">RabbitMQ Source Connector</a></li>
 <li><a href="/docs/en/2.1.1-incubating/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/2.1.1-incubating/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foun [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Ri [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.0/io-connectors.html b/content/docs/en/2.2.0/io-connectors.html
index 1c91832..7efbbf2 100644
--- a/content/docs/en/2.2.0/io-connectors.html
+++ b/content/docs/en/2.2.0/io-connectors.html
@@ -87,7 +87,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.2.0/io-rabbitmq#source">RabbitMQ Source Connector</a></li>
 <li><a href="/docs/en/2.2.0/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/2.2.0/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.0/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.0/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 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/2.2.0/io-connectors/index.html b/content/docs/en/2.2.0/io-connectors/index.html
index 1c91832..7efbbf2 100644
--- a/content/docs/en/2.2.0/io-connectors/index.html
+++ b/content/docs/en/2.2.0/io-connectors/index.html
@@ -87,7 +87,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.2.0/io-rabbitmq#source">RabbitMQ Source Connector</a></li>
 <li><a href="/docs/en/2.2.0/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/2.2.0/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.0/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.0/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 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/2.2.0/sql-overview.html b/content/docs/en/2.2.0/sql-overview.html
index de3987f..de9dac9 100644
--- a/content/docs/en/2.2.0/sql-overview.html
+++ b/content/docs/en/2.2.0/sql-overview.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/en/2.2.0/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture.  Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.2.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><s [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.2.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.0/sql-overview/index.html b/content/docs/en/2.2.0/sql-overview/index.html
index de3987f..de9dac9 100644
--- a/content/docs/en/2.2.0/sql-overview/index.html
+++ b/content/docs/en/2.2.0/sql-overview/index.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/en/2.2.0/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture.  Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.2.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><s [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.2.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.1/io-connectors.html b/content/docs/en/2.2.1/io-connectors.html
index f6c6a4c..8902480 100644
--- a/content/docs/en/2.2.1/io-connectors.html
+++ b/content/docs/en/2.2.1/io-connectors.html
@@ -89,7 +89,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.2.1/io-cdc">CDC Source Connector based on Debezium</a></li>
 <li><a href="io-tcp.md#source">Netty Tcp Source Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.1/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.1/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 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/2.2.1/io-connectors/index.html b/content/docs/en/2.2.1/io-connectors/index.html
index f6c6a4c..8902480 100644
--- a/content/docs/en/2.2.1/io-connectors/index.html
+++ b/content/docs/en/2.2.1/io-connectors/index.html
@@ -89,7 +89,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.2.1/io-cdc">CDC Source Connector based on Debezium</a></li>
 <li><a href="io-tcp.md#source">Netty Tcp Source Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.1/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.1/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 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/2.2.1/sql-overview.html b/content/docs/en/2.2.1/sql-overview.html
index 0823e84..34eafe9 100644
--- a/content/docs/en/2.2.1/sql-overview.html
+++ b/content/docs/en/2.2.1/sql-overview.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/en/2.2.1/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture.  Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.2.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><s [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.2.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.1/sql-overview/index.html b/content/docs/en/2.2.1/sql-overview/index.html
index 0823e84..34eafe9 100644
--- a/content/docs/en/2.2.1/sql-overview/index.html
+++ b/content/docs/en/2.2.1/sql-overview/index.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/en/2.2.1/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture.  Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.2.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><s [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.2.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/io-cdc.html b/content/docs/en/2.3.0/io-cdc.html
index 163d06d..fe87102 100644
--- a/content/docs/en/2.3.0/io-cdc.html
+++ b/content/docs/en/2.3.0/io-cdc.html
@@ -83,7 +83,7 @@ Regarding how Debezium works, please reference to <a href="https://debezium.io/d
 <li><a href="/docs/en/2.3.0/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/en/2.3.0/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.3.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/2.3.0/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.3.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/io-cdc/index.html b/content/docs/en/2.3.0/io-cdc/index.html
index 163d06d..fe87102 100644
--- a/content/docs/en/2.3.0/io-cdc/index.html
+++ b/content/docs/en/2.3.0/io-cdc/index.html
@@ -83,7 +83,7 @@ Regarding how Debezium works, please reference to <a href="https://debezium.io/d
 <li><a href="/docs/en/2.3.0/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/en/2.3.0/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.3.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/2.3.0/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.3.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/io-connectors.html b/content/docs/en/2.3.0/io-connectors.html
index 8c1b479..f65fede 100644
--- a/content/docs/en/2.3.0/io-connectors.html
+++ b/content/docs/en/2.3.0/io-connectors.html
@@ -90,7 +90,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.3.0/io-netty#source">Netty Source Connector</a></li>
 <li><a href="/docs/en/2.3.0/io-hbase#sink">Hbase Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.0/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.0/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 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/2.3.0/io-connectors/index.html b/content/docs/en/2.3.0/io-connectors/index.html
index 8c1b479..f65fede 100644
--- a/content/docs/en/2.3.0/io-connectors/index.html
+++ b/content/docs/en/2.3.0/io-connectors/index.html
@@ -90,7 +90,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.3.0/io-netty#source">Netty Source Connector</a></li>
 <li><a href="/docs/en/2.3.0/io-hbase#sink">Hbase Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.0/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.0/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 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/2.3.0/io-develop.html b/content/docs/en/2.3.0/io-develop.html
index 368b5e6..705eff7 100644
--- a/content/docs/en/2.3.0/io-develop.html
+++ b/content/docs/en/2.3.0/io-develop.html
@@ -235,7 +235,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/2.3.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.3.0/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.3.0/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/io-develop/index.html b/content/docs/en/2.3.0/io-develop/index.html
index 368b5e6..705eff7 100644
--- a/content/docs/en/2.3.0/io-develop/index.html
+++ b/content/docs/en/2.3.0/io-develop/index.html
@@ -235,7 +235,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/2.3.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.3.0/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.3.0/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/sql-overview.html b/content/docs/en/2.3.0/sql-overview.html
index 89b99bd..23e194d 100644
--- a/content/docs/en/2.3.0/sql-overview.html
+++ b/content/docs/en/2.3.0/sql-overview.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/en/2.3.0/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture.  Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/en/2.3.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/2.3.0/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/en/2.3.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/sql-overview/index.html b/content/docs/en/2.3.0/sql-overview/index.html
index 89b99bd..23e194d 100644
--- a/content/docs/en/2.3.0/sql-overview/index.html
+++ b/content/docs/en/2.3.0/sql-overview/index.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/en/2.3.0/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture.  Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/en/2.3.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/2.3.0/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/en/2.3.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/io-cdc.html b/content/docs/en/2.3.1/io-cdc.html
index 38ec47c..6148d65 100644
--- a/content/docs/en/2.3.1/io-cdc.html
+++ b/content/docs/en/2.3.1/io-cdc.html
@@ -83,7 +83,7 @@ Regarding how Debezium works, please reference to <a href="https://debezium.io/d
 <li><a href="/docs/en/2.3.1/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/en/2.3.1/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.3.1/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/2.3.1/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.3.1/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/io-cdc/index.html b/content/docs/en/2.3.1/io-cdc/index.html
index 38ec47c..6148d65 100644
--- a/content/docs/en/2.3.1/io-cdc/index.html
+++ b/content/docs/en/2.3.1/io-cdc/index.html
@@ -83,7 +83,7 @@ Regarding how Debezium works, please reference to <a href="https://debezium.io/d
 <li><a href="/docs/en/2.3.1/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/en/2.3.1/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.3.1/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/2.3.1/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.3.1/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/io-connectors.html b/content/docs/en/2.3.1/io-connectors.html
index 3caa412..d3fdb04 100644
--- a/content/docs/en/2.3.1/io-connectors.html
+++ b/content/docs/en/2.3.1/io-connectors.html
@@ -97,7 +97,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.3.1/io-solr#sink">Solr Sink Connector</a></li>
 <li><a href="/docs/en/2.3.1/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.1/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.1/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 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/2.3.1/io-connectors/index.html b/content/docs/en/2.3.1/io-connectors/index.html
index 3caa412..d3fdb04 100644
--- a/content/docs/en/2.3.1/io-connectors/index.html
+++ b/content/docs/en/2.3.1/io-connectors/index.html
@@ -97,7 +97,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.3.1/io-solr#sink">Solr Sink Connector</a></li>
 <li><a href="/docs/en/2.3.1/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.1/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.1/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 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/2.3.1/io-develop.html b/content/docs/en/2.3.1/io-develop.html
index 54a08b9..e60ec75 100644
--- a/content/docs/en/2.3.1/io-develop.html
+++ b/content/docs/en/2.3.1/io-develop.html
@@ -235,7 +235,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/2.3.1/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.3.1/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.3.1/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/io-develop/index.html b/content/docs/en/2.3.1/io-develop/index.html
index 54a08b9..e60ec75 100644
--- a/content/docs/en/2.3.1/io-develop/index.html
+++ b/content/docs/en/2.3.1/io-develop/index.html
@@ -235,7 +235,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/2.3.1/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.3.1/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.3.1/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/sql-overview.html b/content/docs/en/2.3.1/sql-overview.html
index ab2ffca..096ec09 100644
--- a/content/docs/en/2.3.1/sql-overview.html
+++ b/content/docs/en/2.3.1/sql-overview.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/en/2.3.1/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture.  Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/en/2.3.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/2.3.1/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/en/2.3.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/sql-overview/index.html b/content/docs/en/2.3.1/sql-overview/index.html
index ab2ffca..096ec09 100644
--- a/content/docs/en/2.3.1/sql-overview/index.html
+++ b/content/docs/en/2.3.1/sql-overview/index.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/en/2.3.1/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture.  Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/en/2.3.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/2.3.1/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/en/2.3.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/io-cdc.html b/content/docs/en/2.3.2/io-cdc.html
index 40d495c..7265dba 100644
--- a/content/docs/en/2.3.2/io-cdc.html
+++ b/content/docs/en/2.3.2/io-cdc.html
@@ -83,7 +83,7 @@ Regarding how Debezium works, please reference to <a href="https://debezium.io/d
 <li><a href="/docs/en/2.3.2/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/en/2.3.2/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.3.2/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/2.3.2/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.3.2/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/io-cdc/index.html b/content/docs/en/2.3.2/io-cdc/index.html
index 40d495c..7265dba 100644
--- a/content/docs/en/2.3.2/io-cdc/index.html
+++ b/content/docs/en/2.3.2/io-cdc/index.html
@@ -83,7 +83,7 @@ Regarding how Debezium works, please reference to <a href="https://debezium.io/d
 <li><a href="/docs/en/2.3.2/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/en/2.3.2/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.3.2/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/2.3.2/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.3.2/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/io-connectors.html b/content/docs/en/2.3.2/io-connectors.html
index cb872e1..49c2b98 100644
--- a/content/docs/en/2.3.2/io-connectors.html
+++ b/content/docs/en/2.3.2/io-connectors.html
@@ -98,7 +98,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.3.2/io-solr#sink">Solr Sink Connector</a></li>
 <li><a href="/docs/en/2.3.2/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.2/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.2/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 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/2.3.2/io-connectors/index.html b/content/docs/en/2.3.2/io-connectors/index.html
index cb872e1..49c2b98 100644
--- a/content/docs/en/2.3.2/io-connectors/index.html
+++ b/content/docs/en/2.3.2/io-connectors/index.html
@@ -98,7 +98,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.3.2/io-solr#sink">Solr Sink Connector</a></li>
 <li><a href="/docs/en/2.3.2/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.2/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.2/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 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/2.3.2/io-develop.html b/content/docs/en/2.3.2/io-develop.html
index 449fbec..c1b6975 100644
--- a/content/docs/en/2.3.2/io-develop.html
+++ b/content/docs/en/2.3.2/io-develop.html
@@ -235,7 +235,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/2.3.2/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.3.2/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.3.2/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/io-develop/index.html b/content/docs/en/2.3.2/io-develop/index.html
index 449fbec..c1b6975 100644
--- a/content/docs/en/2.3.2/io-develop/index.html
+++ b/content/docs/en/2.3.2/io-develop/index.html
@@ -235,7 +235,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/2.3.2/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.3.2/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.3.2/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/sql-overview.html b/content/docs/en/2.3.2/sql-overview.html
index 06d5211..ea8a905 100644
--- a/content/docs/en/2.3.2/sql-overview.html
+++ b/content/docs/en/2.3.2/sql-overview.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/en/2.3.2/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture.  Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/en/2.3.2/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/2.3.2/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/en/2.3.2/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/sql-overview/index.html b/content/docs/en/2.3.2/sql-overview/index.html
index 06d5211..ea8a905 100644
--- a/content/docs/en/2.3.2/sql-overview/index.html
+++ b/content/docs/en/2.3.2/sql-overview/index.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/en/2.3.2/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture.  Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/en/2.3.2/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/2.3.2/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/en/2.3.2/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.4.0/io-cdc.html b/content/docs/en/2.4.0/io-cdc.html
index e5a7509..c18454c 100644
--- a/content/docs/en/2.4.0/io-cdc.html
+++ b/content/docs/en/2.4.0/io-cdc.html
@@ -83,7 +83,7 @@ Regarding how Debezium works, please reference to <a href="https://debezium.io/d
 <li><a href="/docs/en/2.4.0/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/en/2.4.0/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.0/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.4.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/2.4.0/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.4.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.4.0/io-cdc/index.html b/content/docs/en/2.4.0/io-cdc/index.html
index e5a7509..c18454c 100644
--- a/content/docs/en/2.4.0/io-cdc/index.html
+++ b/content/docs/en/2.4.0/io-cdc/index.html
@@ -83,7 +83,7 @@ Regarding how Debezium works, please reference to <a href="https://debezium.io/d
 <li><a href="/docs/en/2.4.0/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/en/2.4.0/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.0/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/2.4.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/2.4.0/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/2.4.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.4.0/io-connectors.html b/content/docs/en/2.4.0/io-connectors.html
index cfd746f..f9dc260 100644
--- a/content/docs/en/2.4.0/io-connectors.html
+++ b/content/docs/en/2.4.0/io-connectors.html
@@ -98,7 +98,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.4.0/io-solr#sink">Solr Sink Connector</a></li>
 <li><a href="/docs/en/2.4.0/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.0/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.4.0/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.0/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.4.0/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 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/2.4.0/io-connectors/index.html b/content/docs/en/2.4.0/io-connectors/index.html
index cfd746f..f9dc260 100644
--- a/content/docs/en/2.4.0/io-connectors/index.html
+++ b/content/docs/en/2.4.0/io-connectors/index.html
@@ -98,7 +98,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/2.4.0/io-solr#sink">Solr Sink Connector</a></li>
 <li><a href="/docs/en/2.4.0/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.0/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.4.0/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.0/io-managing"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.4.0/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 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/2.4.0/io-develop.html b/content/docs/en/2.4.0/io-develop.html
index acadae7..b12c083 100644
--- a/content/docs/en/2.4.0/io-develop.html
+++ b/content/docs/en/2.4.0/io-develop.html
@@ -235,7 +235,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/2.4.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.4.0/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.4.0/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.4.0/io-develop/index.html b/content/docs/en/2.4.0/io-develop/index.html
index acadae7..b12c083 100644
--- a/content/docs/en/2.4.0/io-develop/index.html
+++ b/content/docs/en/2.4.0/io-develop/index.html
@@ -235,7 +235,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/2.4.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.4.0/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/2.4.0/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.4.0/sql-overview.html b/content/docs/en/2.4.0/sql-overview.html
index 192c4cb..6f50595 100644
--- a/content/docs/en/2.4.0/sql-overview.html
+++ b/content/docs/en/2.4.0/sql-overview.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/en/2.4.0/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture.  Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.0/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/en/2.4.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/2.4.0/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/en/2.4.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.4.0/sql-overview/index.html b/content/docs/en/2.4.0/sql-overview/index.html
index 192c4cb..6f50595 100644
--- a/content/docs/en/2.4.0/sql-overview/index.html
+++ b/content/docs/en/2.4.0/sql-overview/index.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/en/2.4.0/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture.  Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.4.0/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/en/2.4.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/2.4.0/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/en/2.4.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/io-cdc.html b/content/docs/en/io-cdc.html
index fb950d2..3a4044d 100644
--- a/content/docs/en/io-cdc.html
+++ b/content/docs/en/io-cdc.html
@@ -83,7 +83,7 @@ Regarding how Debezium works, please reference to <a href="https://debezium.io/d
 <li><a href="/docs/en/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/en/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyrig [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/io-cdc/index.html b/content/docs/en/io-cdc/index.html
index fb950d2..3a4044d 100644
--- a/content/docs/en/io-cdc/index.html
+++ b/content/docs/en/io-cdc/index.html
@@ -83,7 +83,7 @@ Regarding how Debezium works, please reference to <a href="https://debezium.io/d
 <li><a href="/docs/en/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/en/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyrig [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The  [...]
       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 740bb44..6a79210 100644
--- a/content/docs/en/io-connectors.html
+++ b/content/docs/en/io-connectors.html
@@ -99,7 +99,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 <li><a href="/docs/en/io-jdbc">JDBC Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-debug"><span class="arrow-prev">← </span><span>Debug</span></a><a class="docs-next button" href="/docs/en/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apa [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-debug"><span class="arrow-prev">← </span><span>Debug</span></a><a class="docs-next button" href="/docs/en/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and [...]
       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 740bb44..6a79210 100644
--- a/content/docs/en/io-connectors/index.html
+++ b/content/docs/en/io-connectors/index.html
@@ -99,7 +99,7 @@ Pulsar Functions cluster.</p>
 <li><a href="/docs/en/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 <li><a href="/docs/en/io-jdbc">JDBC Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-debug"><span class="arrow-prev">← </span><span>Debug</span></a><a class="docs-next button" href="/docs/en/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apa [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-debug"><span class="arrow-prev">← </span><span>Debug</span></a><a class="docs-next button" href="/docs/en/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and [...]
       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 a0c81c0..3b3b782 100644
--- a/content/docs/en/io-develop.html
+++ b/content/docs/en/io-develop.html
@@ -235,7 +235,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"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apach [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apach [...]
       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 a0c81c0..3b3b782 100644
--- a/content/docs/en/io-develop/index.html
+++ b/content/docs/en/io-develop/index.html
@@ -235,7 +235,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"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apach [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apach [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/adaptors-kafka.html b/content/docs/en/next/adaptors-kafka.html
index f8fcdaf..6dfb493 100644
--- a/content/docs/en/next/adaptors-kafka.html
+++ b/content/docs/en/next/adaptors-kafka.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/adaptors-kafka/index.html b/content/docs/en/next/adaptors-kafka/index.html
index f8fcdaf..6dfb493 100644
--- a/content/docs/en/next/adaptors-kafka/index.html
+++ b/content/docs/en/next/adaptors-kafka/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/adaptors-spark.html b/content/docs/en/next/adaptors-spark.html
index f48e3fd..3864cf5 100644
--- a/content/docs/en/next/adaptors-spark.html
+++ b/content/docs/en/next/adaptors-spark.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/adaptors-spark/index.html b/content/docs/en/next/adaptors-spark/index.html
index f48e3fd..3864cf5 100644
--- a/content/docs/en/next/adaptors-spark/index.html
+++ b/content/docs/en/next/adaptors-spark/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/adaptors-storm.html b/content/docs/en/next/adaptors-storm.html
index 3d64775..21d1e4c 100644
--- a/content/docs/en/next/adaptors-storm.html
+++ b/content/docs/en/next/adaptors-storm.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/adaptors-storm/index.html b/content/docs/en/next/adaptors-storm/index.html
index 3d64775..21d1e4c 100644
--- a/content/docs/en/next/adaptors-storm/index.html
+++ b/content/docs/en/next/adaptors-storm/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-brokers.html b/content/docs/en/next/admin-api-brokers.html
index 76dd45f..57b232f 100644
--- a/content/docs/en/next/admin-api-brokers.html
+++ b/content/docs/en/next/admin-api-brokers.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-brokers/index.html b/content/docs/en/next/admin-api-brokers/index.html
index 76dd45f..57b232f 100644
--- a/content/docs/en/next/admin-api-brokers/index.html
+++ b/content/docs/en/next/admin-api-brokers/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-clusters.html b/content/docs/en/next/admin-api-clusters.html
index 34592cd..bcb9014 100644
--- a/content/docs/en/next/admin-api-clusters.html
+++ b/content/docs/en/next/admin-api-clusters.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-clusters/index.html b/content/docs/en/next/admin-api-clusters/index.html
index 34592cd..bcb9014 100644
--- a/content/docs/en/next/admin-api-clusters/index.html
+++ b/content/docs/en/next/admin-api-clusters/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-namespaces.html b/content/docs/en/next/admin-api-namespaces.html
index 4a331f8..a817657 100644
--- a/content/docs/en/next/admin-api-namespaces.html
+++ b/content/docs/en/next/admin-api-namespaces.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-namespaces/index.html b/content/docs/en/next/admin-api-namespaces/index.html
index 4a331f8..a817657 100644
--- a/content/docs/en/next/admin-api-namespaces/index.html
+++ b/content/docs/en/next/admin-api-namespaces/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-non-partitioned-topics.html b/content/docs/en/next/admin-api-non-partitioned-topics.html
index ced6aa3..f14c8eb 100644
--- a/content/docs/en/next/admin-api-non-partitioned-topics.html
+++ b/content/docs/en/next/admin-api-non-partitioned-topics.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-non-partitioned-topics/index.html b/content/docs/en/next/admin-api-non-partitioned-topics/index.html
index ced6aa3..f14c8eb 100644
--- a/content/docs/en/next/admin-api-non-partitioned-topics/index.html
+++ b/content/docs/en/next/admin-api-non-partitioned-topics/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-non-persistent-topics.html b/content/docs/en/next/admin-api-non-persistent-topics.html
index af825a8..f962c8e 100644
--- a/content/docs/en/next/admin-api-non-persistent-topics.html
+++ b/content/docs/en/next/admin-api-non-persistent-topics.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-non-persistent-topics/index.html b/content/docs/en/next/admin-api-non-persistent-topics/index.html
index af825a8..f962c8e 100644
--- a/content/docs/en/next/admin-api-non-persistent-topics/index.html
+++ b/content/docs/en/next/admin-api-non-persistent-topics/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-overview.html b/content/docs/en/next/admin-api-overview.html
index 1c29433..14098f4 100644
--- a/content/docs/en/next/admin-api-overview.html
+++ b/content/docs/en/next/admin-api-overview.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-overview/index.html b/content/docs/en/next/admin-api-overview/index.html
index 1c29433..14098f4 100644
--- a/content/docs/en/next/admin-api-overview/index.html
+++ b/content/docs/en/next/admin-api-overview/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-partitioned-topics.html b/content/docs/en/next/admin-api-partitioned-topics.html
index 83f1b21..7ce988e 100644
--- a/content/docs/en/next/admin-api-partitioned-topics.html
+++ b/content/docs/en/next/admin-api-partitioned-topics.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-partitioned-topics/index.html b/content/docs/en/next/admin-api-partitioned-topics/index.html
index 83f1b21..7ce988e 100644
--- a/content/docs/en/next/admin-api-partitioned-topics/index.html
+++ b/content/docs/en/next/admin-api-partitioned-topics/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-permissions.html b/content/docs/en/next/admin-api-permissions.html
index d3d777f..da829eb 100644
--- a/content/docs/en/next/admin-api-permissions.html
+++ b/content/docs/en/next/admin-api-permissions.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-permissions/index.html b/content/docs/en/next/admin-api-permissions/index.html
index d3d777f..da829eb 100644
--- a/content/docs/en/next/admin-api-permissions/index.html
+++ b/content/docs/en/next/admin-api-permissions/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-persistent-topics.html b/content/docs/en/next/admin-api-persistent-topics.html
index fd8fcd0..af5afbe 100644
--- a/content/docs/en/next/admin-api-persistent-topics.html
+++ b/content/docs/en/next/admin-api-persistent-topics.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-persistent-topics/index.html b/content/docs/en/next/admin-api-persistent-topics/index.html
index fd8fcd0..af5afbe 100644
--- a/content/docs/en/next/admin-api-persistent-topics/index.html
+++ b/content/docs/en/next/admin-api-persistent-topics/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-tenants.html b/content/docs/en/next/admin-api-tenants.html
index 504ebf6..e365118 100644
--- a/content/docs/en/next/admin-api-tenants.html
+++ b/content/docs/en/next/admin-api-tenants.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/admin-api-tenants/index.html b/content/docs/en/next/admin-api-tenants/index.html
index 504ebf6..e365118 100644
--- a/content/docs/en/next/admin-api-tenants/index.html
+++ b/content/docs/en/next/admin-api-tenants/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/administration-dashboard.html b/content/docs/en/next/administration-dashboard.html
index 679dabd..1eb0b57 100644
--- a/content/docs/en/next/administration-dashboard.html
+++ b/content/docs/en/next/administration-dashboard.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/administration-dashboard/index.html b/content/docs/en/next/administration-dashboard/index.html
index 679dabd..1eb0b57 100644
--- a/content/docs/en/next/administration-dashboard/index.html
+++ b/content/docs/en/next/administration-dashboard/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/administration-geo.html b/content/docs/en/next/administration-geo.html
index 2d1dc45..15e70ac 100644
--- a/content/docs/en/next/administration-geo.html
+++ b/content/docs/en/next/administration-geo.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/administration-geo/index.html b/content/docs/en/next/administration-geo/index.html
index 2d1dc45..15e70ac 100644
--- a/content/docs/en/next/administration-geo/index.html
+++ b/content/docs/en/next/administration-geo/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/administration-load-balance.html b/content/docs/en/next/administration-load-balance.html
index bcdbafb..4044dc5 100644
--- a/content/docs/en/next/administration-load-balance.html
+++ b/content/docs/en/next/administration-load-balance.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/administration-load-balance/index.html b/content/docs/en/next/administration-load-balance/index.html
index bcdbafb..4044dc5 100644
--- a/content/docs/en/next/administration-load-balance/index.html
+++ b/content/docs/en/next/administration-load-balance/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/administration-proxy.html b/content/docs/en/next/administration-proxy.html
index 5eac27c..11328d3 100644
--- a/content/docs/en/next/administration-proxy.html
+++ b/content/docs/en/next/administration-proxy.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/administration-proxy/index.html b/content/docs/en/next/administration-proxy/index.html
index 5eac27c..11328d3 100644
--- a/content/docs/en/next/administration-proxy/index.html
+++ b/content/docs/en/next/administration-proxy/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/administration-stats.html b/content/docs/en/next/administration-stats.html
index 5b3ebae..d522fdc 100644
--- a/content/docs/en/next/administration-stats.html
+++ b/content/docs/en/next/administration-stats.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/administration-stats/index.html b/content/docs/en/next/administration-stats/index.html
index 5b3ebae..d522fdc 100644
--- a/content/docs/en/next/administration-stats/index.html
+++ b/content/docs/en/next/administration-stats/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/administration-upgrade.html b/content/docs/en/next/administration-upgrade.html
index 0f493bd..338e32c 100644
--- a/content/docs/en/next/administration-upgrade.html
+++ b/content/docs/en/next/administration-upgrade.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/administration-upgrade/index.html b/content/docs/en/next/administration-upgrade/index.html
index 0f493bd..338e32c 100644
--- a/content/docs/en/next/administration-upgrade/index.html
+++ b/content/docs/en/next/administration-upgrade/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/administration-zk-bk.html b/content/docs/en/next/administration-zk-bk.html
index ce2745f..b701431 100644
--- a/content/docs/en/next/administration-zk-bk.html
+++ b/content/docs/en/next/administration-zk-bk.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/administration-zk-bk/index.html b/content/docs/en/next/administration-zk-bk/index.html
index ce2745f..b701431 100644
--- a/content/docs/en/next/administration-zk-bk/index.html
+++ b/content/docs/en/next/administration-zk-bk/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/client-libraries-cpp.html b/content/docs/en/next/client-libraries-cpp.html
index 3564527..b9f48a6 100644
--- a/content/docs/en/next/client-libraries-cpp.html
+++ b/content/docs/en/next/client-libraries-cpp.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/client-libraries-cpp/index.html b/content/docs/en/next/client-libraries-cpp/index.html
index 3564527..b9f48a6 100644
--- a/content/docs/en/next/client-libraries-cpp/index.html
+++ b/content/docs/en/next/client-libraries-cpp/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/client-libraries-go.html b/content/docs/en/next/client-libraries-go.html
index 83838f5..e167a36 100644
--- a/content/docs/en/next/client-libraries-go.html
+++ b/content/docs/en/next/client-libraries-go.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/client-libraries-go/index.html b/content/docs/en/next/client-libraries-go/index.html
index 83838f5..e167a36 100644
--- a/content/docs/en/next/client-libraries-go/index.html
+++ b/content/docs/en/next/client-libraries-go/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/client-libraries-java.html b/content/docs/en/next/client-libraries-java.html
index 237a570..94bc311 100644
--- a/content/docs/en/next/client-libraries-java.html
+++ b/content/docs/en/next/client-libraries-java.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/client-libraries-java/index.html b/content/docs/en/next/client-libraries-java/index.html
index 237a570..94bc311 100644
--- a/content/docs/en/next/client-libraries-java/index.html
+++ b/content/docs/en/next/client-libraries-java/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/client-libraries-python.html b/content/docs/en/next/client-libraries-python.html
index c15b014..6c13717 100644
--- a/content/docs/en/next/client-libraries-python.html
+++ b/content/docs/en/next/client-libraries-python.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/client-libraries-python/index.html b/content/docs/en/next/client-libraries-python/index.html
index c15b014..6c13717 100644
--- a/content/docs/en/next/client-libraries-python/index.html
+++ b/content/docs/en/next/client-libraries-python/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/client-libraries-websocket.html b/content/docs/en/next/client-libraries-websocket.html
index 4d9949b..51b8443 100644
--- a/content/docs/en/next/client-libraries-websocket.html
+++ b/content/docs/en/next/client-libraries-websocket.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/client-libraries-websocket/index.html b/content/docs/en/next/client-libraries-websocket/index.html
index 4d9949b..51b8443 100644
--- a/content/docs/en/next/client-libraries-websocket/index.html
+++ b/content/docs/en/next/client-libraries-websocket/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/client-libraries.html b/content/docs/en/next/client-libraries.html
index a2831e5..f21302d 100644
--- a/content/docs/en/next/client-libraries.html
+++ b/content/docs/en/next/client-libraries.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/client-libraries/index.html b/content/docs/en/next/client-libraries/index.html
index a2831e5..f21302d 100644
--- a/content/docs/en/next/client-libraries/index.html
+++ b/content/docs/en/next/client-libraries/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-architecture-overview.html b/content/docs/en/next/concepts-architecture-overview.html
index 85fd631..932cd52 100644
--- a/content/docs/en/next/concepts-architecture-overview.html
+++ b/content/docs/en/next/concepts-architecture-overview.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-architecture-overview/index.html b/content/docs/en/next/concepts-architecture-overview/index.html
index 85fd631..932cd52 100644
--- a/content/docs/en/next/concepts-architecture-overview/index.html
+++ b/content/docs/en/next/concepts-architecture-overview/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-authentication.html b/content/docs/en/next/concepts-authentication.html
index 014d347..666d894 100644
--- a/content/docs/en/next/concepts-authentication.html
+++ b/content/docs/en/next/concepts-authentication.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-authentication/index.html b/content/docs/en/next/concepts-authentication/index.html
index 014d347..666d894 100644
--- a/content/docs/en/next/concepts-authentication/index.html
+++ b/content/docs/en/next/concepts-authentication/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-clients.html b/content/docs/en/next/concepts-clients.html
index ecf6562..6a8c0a2 100644
--- a/content/docs/en/next/concepts-clients.html
+++ b/content/docs/en/next/concepts-clients.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-clients/index.html b/content/docs/en/next/concepts-clients/index.html
index ecf6562..6a8c0a2 100644
--- a/content/docs/en/next/concepts-clients/index.html
+++ b/content/docs/en/next/concepts-clients/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-messaging.html b/content/docs/en/next/concepts-messaging.html
index 5e0f449..fc6ae6d 100644
--- a/content/docs/en/next/concepts-messaging.html
+++ b/content/docs/en/next/concepts-messaging.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-messaging/index.html b/content/docs/en/next/concepts-messaging/index.html
index 5e0f449..fc6ae6d 100644
--- a/content/docs/en/next/concepts-messaging/index.html
+++ b/content/docs/en/next/concepts-messaging/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-multi-tenancy.html b/content/docs/en/next/concepts-multi-tenancy.html
index 363d299..18f6d50 100644
--- a/content/docs/en/next/concepts-multi-tenancy.html
+++ b/content/docs/en/next/concepts-multi-tenancy.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-multi-tenancy/index.html b/content/docs/en/next/concepts-multi-tenancy/index.html
index 363d299..18f6d50 100644
--- a/content/docs/en/next/concepts-multi-tenancy/index.html
+++ b/content/docs/en/next/concepts-multi-tenancy/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-overview.html b/content/docs/en/next/concepts-overview.html
index 1ac9050..9b005f5 100644
--- a/content/docs/en/next/concepts-overview.html
+++ b/content/docs/en/next/concepts-overview.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-overview/index.html b/content/docs/en/next/concepts-overview/index.html
index 1ac9050..9b005f5 100644
--- a/content/docs/en/next/concepts-overview/index.html
+++ b/content/docs/en/next/concepts-overview/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-replication.html b/content/docs/en/next/concepts-replication.html
index 4ade975..23e84e7 100644
--- a/content/docs/en/next/concepts-replication.html
+++ b/content/docs/en/next/concepts-replication.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-replication/index.html b/content/docs/en/next/concepts-replication/index.html
index 4ade975..23e84e7 100644
--- a/content/docs/en/next/concepts-replication/index.html
+++ b/content/docs/en/next/concepts-replication/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-tiered-storage.html b/content/docs/en/next/concepts-tiered-storage.html
index 6a22735..952d7bc 100644
--- a/content/docs/en/next/concepts-tiered-storage.html
+++ b/content/docs/en/next/concepts-tiered-storage.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-tiered-storage/index.html b/content/docs/en/next/concepts-tiered-storage/index.html
index 6a22735..952d7bc 100644
--- a/content/docs/en/next/concepts-tiered-storage/index.html
+++ b/content/docs/en/next/concepts-tiered-storage/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-topic-compaction.html b/content/docs/en/next/concepts-topic-compaction.html
index 0c3c5db..420da18 100644
--- a/content/docs/en/next/concepts-topic-compaction.html
+++ b/content/docs/en/next/concepts-topic-compaction.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/concepts-topic-compaction/index.html b/content/docs/en/next/concepts-topic-compaction/index.html
index 0c3c5db..420da18 100644
--- a/content/docs/en/next/concepts-topic-compaction/index.html
+++ b/content/docs/en/next/concepts-topic-compaction/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-bookkeepermetadata.html b/content/docs/en/next/cookbooks-bookkeepermetadata.html
index b68ad54..de76cc8 100644
--- a/content/docs/en/next/cookbooks-bookkeepermetadata.html
+++ b/content/docs/en/next/cookbooks-bookkeepermetadata.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-bookkeepermetadata/index.html b/content/docs/en/next/cookbooks-bookkeepermetadata/index.html
index b68ad54..de76cc8 100644
--- a/content/docs/en/next/cookbooks-bookkeepermetadata/index.html
+++ b/content/docs/en/next/cookbooks-bookkeepermetadata/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-compaction.html b/content/docs/en/next/cookbooks-compaction.html
index d4e681a..49e3232 100644
--- a/content/docs/en/next/cookbooks-compaction.html
+++ b/content/docs/en/next/cookbooks-compaction.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-compaction/index.html b/content/docs/en/next/cookbooks-compaction/index.html
index d4e681a..49e3232 100644
--- a/content/docs/en/next/cookbooks-compaction/index.html
+++ b/content/docs/en/next/cookbooks-compaction/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-deduplication.html b/content/docs/en/next/cookbooks-deduplication.html
index 1a6b2eb..dba1f41 100644
--- a/content/docs/en/next/cookbooks-deduplication.html
+++ b/content/docs/en/next/cookbooks-deduplication.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-deduplication/index.html b/content/docs/en/next/cookbooks-deduplication/index.html
index 1a6b2eb..dba1f41 100644
--- a/content/docs/en/next/cookbooks-deduplication/index.html
+++ b/content/docs/en/next/cookbooks-deduplication/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-encryption.html b/content/docs/en/next/cookbooks-encryption.html
index bcdfd6f..11d84a3 100644
--- a/content/docs/en/next/cookbooks-encryption.html
+++ b/content/docs/en/next/cookbooks-encryption.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-encryption/index.html b/content/docs/en/next/cookbooks-encryption/index.html
index bcdfd6f..11d84a3 100644
--- a/content/docs/en/next/cookbooks-encryption/index.html
+++ b/content/docs/en/next/cookbooks-encryption/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-message-queue.html b/content/docs/en/next/cookbooks-message-queue.html
index 700d9a2..b49b4d5 100644
--- a/content/docs/en/next/cookbooks-message-queue.html
+++ b/content/docs/en/next/cookbooks-message-queue.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-message-queue/index.html b/content/docs/en/next/cookbooks-message-queue/index.html
index 700d9a2..b49b4d5 100644
--- a/content/docs/en/next/cookbooks-message-queue/index.html
+++ b/content/docs/en/next/cookbooks-message-queue/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-non-persistent.html b/content/docs/en/next/cookbooks-non-persistent.html
index a3ed428..ddd64ff 100644
--- a/content/docs/en/next/cookbooks-non-persistent.html
+++ b/content/docs/en/next/cookbooks-non-persistent.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-non-persistent/index.html b/content/docs/en/next/cookbooks-non-persistent/index.html
index a3ed428..ddd64ff 100644
--- a/content/docs/en/next/cookbooks-non-persistent/index.html
+++ b/content/docs/en/next/cookbooks-non-persistent/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-partitioned.html b/content/docs/en/next/cookbooks-partitioned.html
index 4ace971..ca883fa 100644
--- a/content/docs/en/next/cookbooks-partitioned.html
+++ b/content/docs/en/next/cookbooks-partitioned.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-partitioned/index.html b/content/docs/en/next/cookbooks-partitioned/index.html
index 4ace971..ca883fa 100644
--- a/content/docs/en/next/cookbooks-partitioned/index.html
+++ b/content/docs/en/next/cookbooks-partitioned/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-retention-expiry.html b/content/docs/en/next/cookbooks-retention-expiry.html
index 6ffe3a3..39e7dd3 100644
--- a/content/docs/en/next/cookbooks-retention-expiry.html
+++ b/content/docs/en/next/cookbooks-retention-expiry.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-retention-expiry/index.html b/content/docs/en/next/cookbooks-retention-expiry/index.html
index 6ffe3a3..39e7dd3 100644
--- a/content/docs/en/next/cookbooks-retention-expiry/index.html
+++ b/content/docs/en/next/cookbooks-retention-expiry/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-tiered-storage.html b/content/docs/en/next/cookbooks-tiered-storage.html
index 7817069..e817c84 100644
--- a/content/docs/en/next/cookbooks-tiered-storage.html
+++ b/content/docs/en/next/cookbooks-tiered-storage.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/cookbooks-tiered-storage/index.html b/content/docs/en/next/cookbooks-tiered-storage/index.html
index 7817069..e817c84 100644
--- a/content/docs/en/next/cookbooks-tiered-storage/index.html
+++ b/content/docs/en/next/cookbooks-tiered-storage/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/deploy-aws.html b/content/docs/en/next/deploy-aws.html
index b477068..ceaf1c9 100644
--- a/content/docs/en/next/deploy-aws.html
+++ b/content/docs/en/next/deploy-aws.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/deploy-aws/index.html b/content/docs/en/next/deploy-aws/index.html
index b477068..ceaf1c9 100644
--- a/content/docs/en/next/deploy-aws/index.html
+++ b/content/docs/en/next/deploy-aws/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/deploy-bare-metal-multi-cluster.html b/content/docs/en/next/deploy-bare-metal-multi-cluster.html
index 926180e..4b8422f 100644
--- a/content/docs/en/next/deploy-bare-metal-multi-cluster.html
+++ b/content/docs/en/next/deploy-bare-metal-multi-cluster.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -147,10 +147,10 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <h2><a class="anchor" aria-hidden="true" id="deploying-zookeeper"></a><a href="#deploying-zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
 <p>Each Pulsar instance relies on two separate ZooKeeper quorums.</p>
 <ul>
-<li><a href="#deploying-local-zookeeper">Local ZooKeeper</a> operates at the cluster level and provides cluster-specific configuration management and coordination. Each Pulsar cluster needs to have a dedicated ZooKeeper cluster.</li>
-<li><a href="#deploying-configuration-store">Configuration Store</a> operates at the instance level and provides configuration management for the entire system (and thus across clusters). The configuration store quorum can be provided by an independent cluster of machines or by the same machines used by local ZooKeeper.</li>
+<li><a href="#deploy-local-zookeeper">Local ZooKeeper</a> operates at the cluster level and provides cluster-specific configuration management and coordination. Each Pulsar cluster needs to have a dedicated ZooKeeper cluster.</li>
+<li><a href="#deploy-the-configuration-store">Configuration Store</a> operates at the instance level and provides configuration management for the entire system (and thus across clusters). The configuration store quorum can be provided by an independent cluster of machines or by the same machines used by local ZooKeeper.</li>
 </ul>
-<h3><a class="anchor" aria-hidden="true" id="deploying-local-zookeeper"></a><a href="#deploying-local-zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
+<h3><a class="anchor" aria-hidden="true" id="deploy-local-zookeeper"></a><a href="#deploy-local-zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>ZooKeeper manages a variety of essential coordination- and configuration-related tasks for Pulsar.</p>
 <p>Deploying a Pulsar instance requires you to stand up one local ZooKeeper cluster <em>per Pulsar cluster</em>.</p>
 <p>To begin, add all ZooKeeper servers to the quorum configuration specified in the <a href="/docs/en/next/reference-configuration#zookeeper"><code>conf/zookeeper.conf</code></a> file. Add a <code>server.N</code> line for each node in the cluster to the configuration, where <code>N</code> is the number of the ZooKeeper node. Here's an example for a three-node cluster:</p>
@@ -170,12 +170,19 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <p>Once each server has been added to the <code>zookeeper.conf</code> configuration and has the appropriate <code>myid</code> entry, you can start ZooKeeper on all hosts (in the background, using nohup) with the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start zookeeper</span>
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="deploying-the-configuration-store"></a><a href="#deploying-the-configuration-store" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
+<blockquote>
+<p>Note
+If you deploy ZooKeeper with bookie on the same node, you need to start ZooKeeper by using different stats port.</p>
+</blockquote>
+<p>Start ZooKeeper with <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool like:</p>
+<pre><code class="hljs css language-bash">$ PULSAR_EXTRA_OPTS=<span class="hljs-string">"-Dstats_server_port=8001"</span> bin/pulsar-daemon start zookeeper
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="deploy-the-configuration-store"></a><a href="#deploy-the-configuration-store" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 1 [...]
 <p>The ZooKeeper cluster configured and started up in the section above is a <em>local</em> ZooKeeper cluster used to manage a single Pulsar cluster. In addition to a local cluster, however, a full Pulsar instance also requires a configuration store for handling some instance-level configuration and coordination tasks.</p>
 <p>If you're deploying a <a href="#single-cluster-pulsar-instance">single-cluster</a> instance, then you will not need a separate cluster for the configuration store. If, however, you're deploying a <a href="#multi-cluster-pulsar-instance">multi-cluster</a> instance, then you should stand up a separate ZooKeeper cluster for configuration tasks.</p>
 <h4><a class="anchor" aria-hidden="true" id="single-cluster-pulsar-instance"></a><a href="#single-cluster-pulsar-instance" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 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>If your Pulsar instance will consist of just one cluster, then you can deploy a configuration store on the same machines as the local ZooKeeper quorum but running on different TCP ports.</p>
-<p>To deploy a ZooKeeper configuration store in a single-cluster instance, add the same ZooKeeper servers used by the local quorom to the configuration file in <a href="/docs/en/next/reference-configuration#configuration-store"><code>conf/global_zookeeper.conf</code></a> using the same method for <a href="#local-zookeeper">local ZooKeeper</a>, but make sure to use a different port (2181 is the default for ZooKeeper). Here's an example that uses port 2184 for a three-node ZooKeeper cluster:</p>
+<p>To deploy a ZooKeeper configuration store in a single-cluster instance, add the same ZooKeeper servers used by the local quorom to the configuration file in <a href="/docs/en/next/reference-configuration#configuration-store"><code>conf/global_zookeeper.conf</code></a> using the same method for <a href="#deploy-local-zookeeper">Local ZooKeeper</a>, but make sure to use a different port (2181 is the default for ZooKeeper). Here's an example that uses port 2184 for a three-node ZooKeeper [...]
 <pre><code class="hljs css language-properties"><span class="hljs-attr">clientPort</span>=<span class="hljs-string">2184</span>
 <span class="hljs-meta">server.1</span>=<span class="hljs-string">zk1.us-west.example.com:2185:2186</span>
 <span class="hljs-meta">server.2</span>=<span class="hljs-string">zk2.us-west.example.com:2185:2186</span>
@@ -225,7 +232,7 @@ of these regions is unreachable.</p>
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="cluster-metadata-initialization"></a><a href="#cluster-metadata-initialization" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 [...]
 <p>Once you've set up the cluster-specific ZooKeeper and configuration store quorums for your instance, there is some metadata that needs to be written to ZooKeeper for each cluster in your instance. <strong>It only needs to be written once</strong>.</p>
-<p>You can initialize this metadata using the <a href="/docs/en/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/en/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. Here's an example:</p>
+<p>You can initialize this metadata using the <a href="/docs/en/next/reference-cli-tools#initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/en/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. Here's an example:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar initialize-cluster-metadata \</span>
   --cluster us-west \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -250,17 +257,24 @@ of these regions is unreachable.</p>
 <p>Each Pulsar broker needs to have its own cluster of bookies. The BookKeeper cluster shares a local ZooKeeper quorum with the Pulsar cluster.</p>
 <h3><a class="anchor" aria-hidden="true" id="configuring-bookies"></a><a href="#configuring-bookies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>BookKeeper bookies can be configured using the <a href="/docs/en/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important aspect of configuring each bookie is ensuring that the <a href="/docs/en/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> parameter is set to the connection string for the Pulsar cluster's local ZooKeeper.</p>
-<h3><a class="anchor" aria-hidden="true" id="starting-up-bookies"></a><a href="#starting-up-bookies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 can start up a bookie in two ways: in the foreground or as a background daemon.</p>
-<p>To start up a bookie in the foreground, use the <a href="/docs/en/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a></p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start bookie</span>
+<h3><a class="anchor" aria-hidden="true" id="start-bookies"></a><a href="#start-bookies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>You can start a bookie in two ways: in the foreground or as a background daemon.</p>
+<p>To start a bookie in the background, use the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/pulsar-daemon start bookie
 </code></pre>
-<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/en/next/reference-cli-tools#bookkeeper-shell">BookKeeper shell</a>:</p>
+<p>To start a bookie in the foreground:</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
+</code></pre>
+<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/en/next/reference-cli-tools#shell">BookKeeper shell</a>:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/bookkeeper shell bookiesanity</span>
 </code></pre>
 <p>This will create a new ledger on the local bookie, write a few entries, read them back and finally delete the ledger.</p>
-<h3><a class="anchor" aria-hidden="true" id="hardware-considerations"></a><a href="#hardware-considerations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 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>Bookie hosts are responsible for storing message data on disk. In order for bookies to provide optimal performance, it's essential that they have a suitable hardware configuration. There are two key dimensions to bookie hardware capacity:</p>
+<p>After you have started all bookies, you can use the <code>simpletest</code> command for <a href="/docs/en/next/reference-cli-tools#shell">BookKeeper shell</a> on any bookie node, to verify that all bookies in the cluster are running.</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper shell simpletest --ensemble &lt;num-bookies&gt; --writeQuorum &lt;num-bookies&gt; --ackQuorum &lt;num-bookies&gt; --numEntries &lt;num-entries&gt;
+</code></pre>
+<p>This command creates a <code>num-bookies</code> sized ledger on the cluster, writes a few entries, and finally deletes the ledger.</p>
+<h3><a class="anchor" aria-hidden="true" id="hardware-requirements"></a><a href="#hardware-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 [...]
+<p>Bookie hosts are responsible for storing message data on disk. To provide optimal performance for bookies, it's essential that you have a suitable hardware configuration. The following are key dimensions for bookie hardware capacity.</p>
 <ul>
 <li>Disk I/O capacity read/write</li>
 <li>Storage capacity</li>
@@ -301,10 +315,10 @@ designed to use multiple devices:</p>
 <h3><a class="anchor" aria-hidden="true" id="broker-hardware"></a><a href="#broker-hardware" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
 <p>Pulsar brokers do not require any special hardware since they don't use the local disk. Fast CPUs and 10Gbps <a href="https://en.wikipedia.org/wiki/Network_interface_controller">NIC</a> are recommended since the software can take full advantage of that.</p>
 <h3><a class="anchor" aria-hidden="true" id="starting-the-broker-service"></a><a href="#starting-the-broker-service" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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 start a broker in the background using <a href="https://en.wikipedia.org/wiki/Nohup">nohup</a> with the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<p>You can start a broker in the background by using <a href="https://en.wikipedia.org/wiki/Nohup">nohup</a> with the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start broker</span>
 </code></pre>
-<p>You can also start brokers in the foreground using <a href="/docs/en/next/reference-cli-tools#pulsar-broker"><code>pulsar broker</code></a>:</p>
+<p>You can also start brokers in the foreground by using <a href="/docs/en/next/reference-cli-tools#broker"><code>pulsar broker</code></a>:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar broker</span>
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="service-discovery"></a><a href="#service-discovery" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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- [...]
@@ -333,20 +347,19 @@ store</a> quorum connection string.</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">serviceUrl</span>=<span class="hljs-string">http://pulsar.us-west.example.com:8080/</span>
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="provisioning-new-tenants"></a><a href="#provisioning-new-tenants" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.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>Pulsar was built as a fundamentally multi-tenant system.</p>
-<p>To allow a new tenant to use the system, we need to create a new one. You can create a new tenant using the <a href="/docs/en/next/pulsar-admin#tenants-create"><code>pulsar-admin</code></a> CLI tool:</p>
+<p>Pulsar is built as a fundamentally multi-tenant system.</p>
+<p>If a new tenant wants to use the system, you need to create a new one. You can create a new tenant by using the <a href="/docs/en/next/pulsar-admin#tenants"><code>pulsar-admin</code></a> CLI tool:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin tenants create <span class="hljs-built_in">test</span>-tentant \</span>
   --allowed-clusters us-west \
   --admin-roles test-admin-role
 </code></pre>
-<p>This will allow users who identify with role <code>test-admin-role</code> to administer the configuration for the tenant <code>test</code> which will only be allowed to use the cluster <code>us-west</code>. From now on, this tenant will be able to self-manage its resources.</p>
-<p>Once a tenant has been created, you will need to create <a href="/docs/en/next/reference-terminology#namespace">namespaces</a> for topics within that tenant.</p>
+<p>In this command, users who identify with <code>test-admin-role</code> role can administer the configuration for the <code>test-tenant</code> tenant. The <code>test-tenant</code> tenant can only use the <code>us-west</code> cluster. From now on, this tenant can manage its resources.</p>
+<p>Once a tenant has been created, you need to create <a href="/docs/en/next/reference-terminology#namespace">namespaces</a> for topics within that tenant.</p>
 <p>The first step is to create a namespace. A namespace is an administrative unit that can contain many topics. A common practice is to create a namespace for each different use case from a single tenant.</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin namespaces create <span class="hljs-built_in">test</span>-tenant/ns1</span>
 </code></pre>
 <h5><a class="anchor" aria-hidden="true" id="testing-producer-and-consumer"></a><a href="#testing-producer-and-consumer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
-<p>Everything is now ready to send and receive messages. The quickest way to test
-the system is through the <code>pulsar-perf</code> client tool.</p>
+<p>Everything is now ready to send and receive messages. The quickest way to test the system is through the <a href="/docs/en/next/reference-cli-tools#pulsar-perf"><code>pulsar-perf</code></a> client tool.</p>
 <p>Let's use a topic in the namespace we just created. Topics are automatically
 created the first time a producer or a consumer tries to use them.</p>
 <p>The topic name in this case could be:</p>
@@ -354,16 +367,16 @@ created the first time a producer or a consumer tries to use them.</p>
 </code></pre>
 <p>Start a consumer that will create a subscription on the topic and will wait
 for messages:</p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf consume persistent://<span class="hljs-built_in">test</span>-tenant/us-west/ns1/my-topic</span>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf consume persistent://<span class="hljs-built_in">test</span>-tenant/ns1/my-topic</span>
 </code></pre>
 <p>Start a producer that publishes messages at a fixed rate and report stats every
 10 seconds:</p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf produce persistent://<span class="hljs-built_in">test</span>-tenant/us-west/ns1/my-topic</span>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf produce persistent://<span class="hljs-built_in">test</span>-tenant/ns1/my-topic</span>
 </code></pre>
 <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>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics stats persistent://<span class="hljs-built_in">test</span>-tenant/ns1/my-topic</span>
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/deploy-bare-metal"><span class="arrow-prev">← </span><span>Bare metal</span></a><a class="docs-next button" href="/docs/en/next/deploy-dcos"><span>DC/OS</span><span class="arrow-next"> →</span></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>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/deploy-bare-metal"><span class="arrow-prev">← </span><span>Bare metal</span></a><a class="docs-next button" href="/docs/en/next/deploy-dcos"><span>DC/OS</span><span class="arrow-next"> →</span></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>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/deploy-bare-metal-multi-cluster/index.html b/content/docs/en/next/deploy-bare-metal-multi-cluster/index.html
index 926180e..4b8422f 100644
--- a/content/docs/en/next/deploy-bare-metal-multi-cluster/index.html
+++ b/content/docs/en/next/deploy-bare-metal-multi-cluster/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -147,10 +147,10 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <h2><a class="anchor" aria-hidden="true" id="deploying-zookeeper"></a><a href="#deploying-zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
 <p>Each Pulsar instance relies on two separate ZooKeeper quorums.</p>
 <ul>
-<li><a href="#deploying-local-zookeeper">Local ZooKeeper</a> operates at the cluster level and provides cluster-specific configuration management and coordination. Each Pulsar cluster needs to have a dedicated ZooKeeper cluster.</li>
-<li><a href="#deploying-configuration-store">Configuration Store</a> operates at the instance level and provides configuration management for the entire system (and thus across clusters). The configuration store quorum can be provided by an independent cluster of machines or by the same machines used by local ZooKeeper.</li>
+<li><a href="#deploy-local-zookeeper">Local ZooKeeper</a> operates at the cluster level and provides cluster-specific configuration management and coordination. Each Pulsar cluster needs to have a dedicated ZooKeeper cluster.</li>
+<li><a href="#deploy-the-configuration-store">Configuration Store</a> operates at the instance level and provides configuration management for the entire system (and thus across clusters). The configuration store quorum can be provided by an independent cluster of machines or by the same machines used by local ZooKeeper.</li>
 </ul>
-<h3><a class="anchor" aria-hidden="true" id="deploying-local-zookeeper"></a><a href="#deploying-local-zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
+<h3><a class="anchor" aria-hidden="true" id="deploy-local-zookeeper"></a><a href="#deploy-local-zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>ZooKeeper manages a variety of essential coordination- and configuration-related tasks for Pulsar.</p>
 <p>Deploying a Pulsar instance requires you to stand up one local ZooKeeper cluster <em>per Pulsar cluster</em>.</p>
 <p>To begin, add all ZooKeeper servers to the quorum configuration specified in the <a href="/docs/en/next/reference-configuration#zookeeper"><code>conf/zookeeper.conf</code></a> file. Add a <code>server.N</code> line for each node in the cluster to the configuration, where <code>N</code> is the number of the ZooKeeper node. Here's an example for a three-node cluster:</p>
@@ -170,12 +170,19 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <p>Once each server has been added to the <code>zookeeper.conf</code> configuration and has the appropriate <code>myid</code> entry, you can start ZooKeeper on all hosts (in the background, using nohup) with the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start zookeeper</span>
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="deploying-the-configuration-store"></a><a href="#deploying-the-configuration-store" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
+<blockquote>
+<p>Note
+If you deploy ZooKeeper with bookie on the same node, you need to start ZooKeeper by using different stats port.</p>
+</blockquote>
+<p>Start ZooKeeper with <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool like:</p>
+<pre><code class="hljs css language-bash">$ PULSAR_EXTRA_OPTS=<span class="hljs-string">"-Dstats_server_port=8001"</span> bin/pulsar-daemon start zookeeper
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="deploy-the-configuration-store"></a><a href="#deploy-the-configuration-store" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 1 [...]
 <p>The ZooKeeper cluster configured and started up in the section above is a <em>local</em> ZooKeeper cluster used to manage a single Pulsar cluster. In addition to a local cluster, however, a full Pulsar instance also requires a configuration store for handling some instance-level configuration and coordination tasks.</p>
 <p>If you're deploying a <a href="#single-cluster-pulsar-instance">single-cluster</a> instance, then you will not need a separate cluster for the configuration store. If, however, you're deploying a <a href="#multi-cluster-pulsar-instance">multi-cluster</a> instance, then you should stand up a separate ZooKeeper cluster for configuration tasks.</p>
 <h4><a class="anchor" aria-hidden="true" id="single-cluster-pulsar-instance"></a><a href="#single-cluster-pulsar-instance" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 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>If your Pulsar instance will consist of just one cluster, then you can deploy a configuration store on the same machines as the local ZooKeeper quorum but running on different TCP ports.</p>
-<p>To deploy a ZooKeeper configuration store in a single-cluster instance, add the same ZooKeeper servers used by the local quorom to the configuration file in <a href="/docs/en/next/reference-configuration#configuration-store"><code>conf/global_zookeeper.conf</code></a> using the same method for <a href="#local-zookeeper">local ZooKeeper</a>, but make sure to use a different port (2181 is the default for ZooKeeper). Here's an example that uses port 2184 for a three-node ZooKeeper cluster:</p>
+<p>To deploy a ZooKeeper configuration store in a single-cluster instance, add the same ZooKeeper servers used by the local quorom to the configuration file in <a href="/docs/en/next/reference-configuration#configuration-store"><code>conf/global_zookeeper.conf</code></a> using the same method for <a href="#deploy-local-zookeeper">Local ZooKeeper</a>, but make sure to use a different port (2181 is the default for ZooKeeper). Here's an example that uses port 2184 for a three-node ZooKeeper [...]
 <pre><code class="hljs css language-properties"><span class="hljs-attr">clientPort</span>=<span class="hljs-string">2184</span>
 <span class="hljs-meta">server.1</span>=<span class="hljs-string">zk1.us-west.example.com:2185:2186</span>
 <span class="hljs-meta">server.2</span>=<span class="hljs-string">zk2.us-west.example.com:2185:2186</span>
@@ -225,7 +232,7 @@ of these regions is unreachable.</p>
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="cluster-metadata-initialization"></a><a href="#cluster-metadata-initialization" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 [...]
 <p>Once you've set up the cluster-specific ZooKeeper and configuration store quorums for your instance, there is some metadata that needs to be written to ZooKeeper for each cluster in your instance. <strong>It only needs to be written once</strong>.</p>
-<p>You can initialize this metadata using the <a href="/docs/en/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/en/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. Here's an example:</p>
+<p>You can initialize this metadata using the <a href="/docs/en/next/reference-cli-tools#initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/en/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. Here's an example:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar initialize-cluster-metadata \</span>
   --cluster us-west \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -250,17 +257,24 @@ of these regions is unreachable.</p>
 <p>Each Pulsar broker needs to have its own cluster of bookies. The BookKeeper cluster shares a local ZooKeeper quorum with the Pulsar cluster.</p>
 <h3><a class="anchor" aria-hidden="true" id="configuring-bookies"></a><a href="#configuring-bookies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>BookKeeper bookies can be configured using the <a href="/docs/en/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important aspect of configuring each bookie is ensuring that the <a href="/docs/en/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> parameter is set to the connection string for the Pulsar cluster's local ZooKeeper.</p>
-<h3><a class="anchor" aria-hidden="true" id="starting-up-bookies"></a><a href="#starting-up-bookies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 can start up a bookie in two ways: in the foreground or as a background daemon.</p>
-<p>To start up a bookie in the foreground, use the <a href="/docs/en/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a></p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start bookie</span>
+<h3><a class="anchor" aria-hidden="true" id="start-bookies"></a><a href="#start-bookies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>You can start a bookie in two ways: in the foreground or as a background daemon.</p>
+<p>To start a bookie in the background, use the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/pulsar-daemon start bookie
 </code></pre>
-<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/en/next/reference-cli-tools#bookkeeper-shell">BookKeeper shell</a>:</p>
+<p>To start a bookie in the foreground:</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
+</code></pre>
+<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/en/next/reference-cli-tools#shell">BookKeeper shell</a>:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/bookkeeper shell bookiesanity</span>
 </code></pre>
 <p>This will create a new ledger on the local bookie, write a few entries, read them back and finally delete the ledger.</p>
-<h3><a class="anchor" aria-hidden="true" id="hardware-considerations"></a><a href="#hardware-considerations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 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>Bookie hosts are responsible for storing message data on disk. In order for bookies to provide optimal performance, it's essential that they have a suitable hardware configuration. There are two key dimensions to bookie hardware capacity:</p>
+<p>After you have started all bookies, you can use the <code>simpletest</code> command for <a href="/docs/en/next/reference-cli-tools#shell">BookKeeper shell</a> on any bookie node, to verify that all bookies in the cluster are running.</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper shell simpletest --ensemble &lt;num-bookies&gt; --writeQuorum &lt;num-bookies&gt; --ackQuorum &lt;num-bookies&gt; --numEntries &lt;num-entries&gt;
+</code></pre>
+<p>This command creates a <code>num-bookies</code> sized ledger on the cluster, writes a few entries, and finally deletes the ledger.</p>
+<h3><a class="anchor" aria-hidden="true" id="hardware-requirements"></a><a href="#hardware-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 [...]
+<p>Bookie hosts are responsible for storing message data on disk. To provide optimal performance for bookies, it's essential that you have a suitable hardware configuration. The following are key dimensions for bookie hardware capacity.</p>
 <ul>
 <li>Disk I/O capacity read/write</li>
 <li>Storage capacity</li>
@@ -301,10 +315,10 @@ designed to use multiple devices:</p>
 <h3><a class="anchor" aria-hidden="true" id="broker-hardware"></a><a href="#broker-hardware" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
 <p>Pulsar brokers do not require any special hardware since they don't use the local disk. Fast CPUs and 10Gbps <a href="https://en.wikipedia.org/wiki/Network_interface_controller">NIC</a> are recommended since the software can take full advantage of that.</p>
 <h3><a class="anchor" aria-hidden="true" id="starting-the-broker-service"></a><a href="#starting-the-broker-service" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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 start a broker in the background using <a href="https://en.wikipedia.org/wiki/Nohup">nohup</a> with the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<p>You can start a broker in the background by using <a href="https://en.wikipedia.org/wiki/Nohup">nohup</a> with the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start broker</span>
 </code></pre>
-<p>You can also start brokers in the foreground using <a href="/docs/en/next/reference-cli-tools#pulsar-broker"><code>pulsar broker</code></a>:</p>
+<p>You can also start brokers in the foreground by using <a href="/docs/en/next/reference-cli-tools#broker"><code>pulsar broker</code></a>:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar broker</span>
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="service-discovery"></a><a href="#service-discovery" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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- [...]
@@ -333,20 +347,19 @@ store</a> quorum connection string.</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">serviceUrl</span>=<span class="hljs-string">http://pulsar.us-west.example.com:8080/</span>
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="provisioning-new-tenants"></a><a href="#provisioning-new-tenants" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.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>Pulsar was built as a fundamentally multi-tenant system.</p>
-<p>To allow a new tenant to use the system, we need to create a new one. You can create a new tenant using the <a href="/docs/en/next/pulsar-admin#tenants-create"><code>pulsar-admin</code></a> CLI tool:</p>
+<p>Pulsar is built as a fundamentally multi-tenant system.</p>
+<p>If a new tenant wants to use the system, you need to create a new one. You can create a new tenant by using the <a href="/docs/en/next/pulsar-admin#tenants"><code>pulsar-admin</code></a> CLI tool:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin tenants create <span class="hljs-built_in">test</span>-tentant \</span>
   --allowed-clusters us-west \
   --admin-roles test-admin-role
 </code></pre>
-<p>This will allow users who identify with role <code>test-admin-role</code> to administer the configuration for the tenant <code>test</code> which will only be allowed to use the cluster <code>us-west</code>. From now on, this tenant will be able to self-manage its resources.</p>
-<p>Once a tenant has been created, you will need to create <a href="/docs/en/next/reference-terminology#namespace">namespaces</a> for topics within that tenant.</p>
+<p>In this command, users who identify with <code>test-admin-role</code> role can administer the configuration for the <code>test-tenant</code> tenant. The <code>test-tenant</code> tenant can only use the <code>us-west</code> cluster. From now on, this tenant can manage its resources.</p>
+<p>Once a tenant has been created, you need to create <a href="/docs/en/next/reference-terminology#namespace">namespaces</a> for topics within that tenant.</p>
 <p>The first step is to create a namespace. A namespace is an administrative unit that can contain many topics. A common practice is to create a namespace for each different use case from a single tenant.</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin namespaces create <span class="hljs-built_in">test</span>-tenant/ns1</span>
 </code></pre>
 <h5><a class="anchor" aria-hidden="true" id="testing-producer-and-consumer"></a><a href="#testing-producer-and-consumer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
-<p>Everything is now ready to send and receive messages. The quickest way to test
-the system is through the <code>pulsar-perf</code> client tool.</p>
+<p>Everything is now ready to send and receive messages. The quickest way to test the system is through the <a href="/docs/en/next/reference-cli-tools#pulsar-perf"><code>pulsar-perf</code></a> client tool.</p>
 <p>Let's use a topic in the namespace we just created. Topics are automatically
 created the first time a producer or a consumer tries to use them.</p>
 <p>The topic name in this case could be:</p>
@@ -354,16 +367,16 @@ created the first time a producer or a consumer tries to use them.</p>
 </code></pre>
 <p>Start a consumer that will create a subscription on the topic and will wait
 for messages:</p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf consume persistent://<span class="hljs-built_in">test</span>-tenant/us-west/ns1/my-topic</span>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf consume persistent://<span class="hljs-built_in">test</span>-tenant/ns1/my-topic</span>
 </code></pre>
 <p>Start a producer that publishes messages at a fixed rate and report stats every
 10 seconds:</p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf produce persistent://<span class="hljs-built_in">test</span>-tenant/us-west/ns1/my-topic</span>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf produce persistent://<span class="hljs-built_in">test</span>-tenant/ns1/my-topic</span>
 </code></pre>
 <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>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics stats persistent://<span class="hljs-built_in">test</span>-tenant/ns1/my-topic</span>
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/deploy-bare-metal"><span class="arrow-prev">← </span><span>Bare metal</span></a><a class="docs-next button" href="/docs/en/next/deploy-dcos"><span>DC/OS</span><span class="arrow-next"> →</span></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>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/deploy-bare-metal"><span class="arrow-prev">← </span><span>Bare metal</span></a><a class="docs-next button" href="/docs/en/next/deploy-dcos"><span>DC/OS</span><span class="arrow-next"> →</span></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>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/deploy-bare-metal.html b/content/docs/en/next/deploy-bare-metal.html
index 26b9734..8cffabb 100644
--- a/content/docs/en/next/deploy-bare-metal.html
+++ b/content/docs/en/next/deploy-bare-metal.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Deploying a cluster on bare metal · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&gt; ### Tips"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Deploying a cluster on bare metal · Apa [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Deploy a cluster on bare metal · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&gt; ### Tips"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Deploy a cluster on bare metal · Apache Pu [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -74,70 +74,70 @@
                 };
               }
             });
-        </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"><div class="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">Deploy 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
-Pulsar or using it in a startup or on a single team, we recommend opting for a single cluster. If you do need to run a multi-cluster Pulsar instance,
-however, see the guide <a href="/docs/en/next/deploy-bare-metal-multi-cluster">here</a>.</p></li>
+<li><p>Single-cluster Pulsar installations should be sufficient for all but the most ambitious use cases. If you are interested in experimenting with
+Pulsar or using Pulsar in a startup or on a single team, you had better opt for a single cluster. If you do need to run a multi-cluster Pulsar instance,
+see the guide <a href="/docs/en/next/deploy-bare-metal-multi-cluster">here</a>.</p></li>
 <li><p>If you want to use all builtin <a href="/docs/en/next/io-overview">Pulsar IO</a> connectors in your Pulsar deployment, you need to download <code>apache-pulsar-io-connectors</code>
-package and make sure it is installed under <code>connectors</code> directory in the pulsar directory on every broker node or on every function-worker node if you
+package and install <code>apache-pulsar-io-connectors</code> under <code>connectors</code> directory in the pulsar directory on every broker node or on every function-worker node if you
 have run a separate cluster of function workers for <a href="/docs/en/next/functions-overview">Pulsar Functions</a>.</p></li>
 <li><p>If you want to use <a href="/docs/en/next/concepts-tiered-storage">Tiered Storage</a> feature in your Pulsar deployment, you need to download <code>apache-pulsar-offloaders</code>
-package and make sure it is installed under <code>offloaders</code> directory in the pulsar directory on every broker node. For more details of how to configure
-this feature, you could reference this <a href="/docs/en/next/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p></li>
+package and install <code>apache-pulsar-offloaders</code> under <code>offloaders</code> directory in the pulsar directory on every broker node. For more details of how to configure
+this feature, you can refer to the <a href="/docs/en/next/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p></li>
 </ol>
 </blockquote>
 <p>Deploying a Pulsar cluster involves doing the following (in order):</p>
 <ul>
-<li>Deploying a <a href="#deploying-a-zookeeper-cluster">ZooKeeper</a> cluster (optional)</li>
-<li>Initializing <a href="#initializing-cluster-metadata">cluster metadata</a></li>
-<li>Deploying a <a href="#deploying-a-bookkeeper-cluster">BookKeeper</a> cluster</li>
-<li>Deploying one or more Pulsar <a href="#deploying-pulsar-brokers">brokers</a></li>
+<li>Deploy a <a href="#deploy-a-zookeeper-cluster">ZooKeeper</a> cluster (optional)</li>
+<li>Initialize <a href="#initialize-cluster-metadata">cluster metadata</a></li>
+<li>Deploy a <a href="#deploy-a-bookkeeper-cluster">BookKeeper</a> cluster</li>
+<li>Deploy one or more Pulsar <a href="#deploy-pulsar-brokers">brokers</a></li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="preparation"></a><a href="#preparation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 [...]
 <h3><a class="anchor" aria-hidden="true" id="requirements"></a><a href="#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.22-2-2.5 0-.83. [...]
 <blockquote>
-<p>If you already have an existing zookeeper cluster and would like to reuse it, you don't need to prepare the machines
+<p>If you already have an existing zookeeper cluster and want to reuse it, you do not need to prepare the machines
 for running ZooKeeper.</p>
 </blockquote>
-<p>To run Pulsar on bare metal, you are recommended to have:</p>
+<p>To run Pulsar on bare metal, you had better have the following:</p>
 <ul>
 <li>At least 6 Linux machines or VMs
 <ul>
-<li>3 running <a href="https://zookeeper.apache.org">ZooKeeper</a></li>
-<li>3 running a Pulsar broker, and a <a href="https://bookkeeper.apache.org">BookKeeper</a> bookie</li>
+<li>3 for running <a href="https://zookeeper.apache.org">ZooKeeper</a></li>
+<li>3 for running a Pulsar broker, and a <a href="https://bookkeeper.apache.org">BookKeeper</a> bookie</li>
 </ul></li>
 <li>A single <a href="https://en.wikipedia.org/wiki/Domain_Name_System">DNS</a> name covering all of the Pulsar broker hosts</li>
 </ul>
 <blockquote>
-<p>However if you don't have enough machines, or are trying out Pulsar in cluster mode (and expand the cluster later),
-you can even deploy Pulsar in one node, where it will run zookeeper, bookie and broker in same machine.</p>
+<p>If you do not have enough machines, or try out Pulsar in cluster mode (and expand the cluster later),
+you can even deploy Pulsar in one node, where Zookeeper, bookie and broker are run in the same machine.</p>
 </blockquote>
 <blockquote>
-<p>If you don't have a DNS server, you can use multi-host in service URL instead.</p>
+<p>If you do not have a DNS server, you can use multi-host in service URL instead.</p>
 </blockquote>
-<p>Each machine in your cluster will need to have <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java 8</a> or higher installed.</p>
-<p>Here's a diagram showing the basic setup:</p>
+<p>Each machine in your cluster needs to have <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java 8</a> or higher version of Java installed.</p>
+<p>The following is a diagram showing the basic setup:</p>
 <p><img src="/docs/assets/pulsar-basic-setup.png" alt="alt-text"></p>
-<p>In this diagram, connecting clients need to be able to communicate with the Pulsar cluster using a single URL, in this case <code>pulsar-cluster.acme.com</code>, that abstracts over all of the message-handling brokers. Pulsar message brokers run on machines alongside BookKeeper bookies; brokers and bookies, in turn, rely on ZooKeeper.</p>
+<p>In this diagram, connecting clients need to be able to communicate with the Pulsar cluster using a single URL, in this case <code>pulsar-cluster.acme.com</code> abstracts over all of the message-handling brokers. Pulsar message brokers run on machines alongside BookKeeper bookies; brokers and bookies, in turn, rely on ZooKeeper.</p>
 <h3><a class="anchor" aria-hidden="true" id="hardware-considerations"></a><a href="#hardware-considerations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 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>When deploying a Pulsar cluster, we have some basic recommendations that you should keep in mind when capacity planning.</p>
+<p>When you deploy a Pulsar cluster, keep in mind the following basic better choices when you do the capacity planning.</p>
 <h4><a class="anchor" aria-hidden="true" id="zookeeper"></a><a href="#zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>For machines running ZooKeeper, we recommend using lighter-weight machines or VMs. Pulsar uses ZooKeeper only for periodic coordination- and configuration-related tasks, <em>not</em> for basic operations. If you're running Pulsar on <a href="https://aws.amazon.com/">Amazon Web Services</a> (AWS), for example, a <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html">t2.small</a> instance would likely suffice.</p>
-<h4><a class="anchor" aria-hidden="true" id="bookies-brokers"></a><a href="#bookies-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
-<p>For machines running a bookie and a Pulsar broker, we recommend using more powerful machines. For an AWS deployment, for example, <a href="https://aws.amazon.com/blogs/aws/now-available-i3-instances-for-demanding-io-intensive-applications/">i3.4xlarge</a> instances may be appropriate. On those machines we also recommend:</p>
+<p>For machines running ZooKeeper, you had better use lighter-weight machines or VMs. Pulsar uses ZooKeeper only for periodic coordination-related and configuration-related tasks, <em>not</em> for basic operations. If you run Pulsar on <a href="https://aws.amazon.com/">Amazon Web Services</a> (AWS), for example, a <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html">t2.small</a> instance might likely suffice.</p>
+<h4><a class="anchor" aria-hidden="true" id="bookies-and-brokers"></a><a href="#bookies-and-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>For machines running a bookie and a Pulsar broker, you had better use more powerful machines. For an AWS deployment, for example, <a href="https://aws.amazon.com/blogs/aws/now-available-i3-instances-for-demanding-io-intensive-applications/">i3.4xlarge</a> instances may be appropriate. On those machines you can use the following:</p>
 <ul>
 <li>Fast CPUs and 10Gbps <a href="https://en.wikipedia.org/wiki/Network_interface_controller">NIC</a> (for Pulsar brokers)</li>
 <li>Small and fast <a href="https://en.wikipedia.org/wiki/Solid-state_drive">solid-state drives</a> (SSDs) or <a href="https://en.wikipedia.org/wiki/Hard_disk_drive">hard disk drives</a> (HDDs) with a <a href="https://en.wikipedia.org/wiki/RAID">RAID</a> controller and a battery-backed write cache (for BookKeeper bookies)</li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="installing-the-pulsar-binary-package"></a><a href="#installing-the-pulsar-binary-package" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 [...]
+<h2><a class="anchor" aria-hidden="true" id="install-the-pulsar-binary-package"></a><a href="#install-the-pulsar-binary-package" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
 <blockquote>
-<p>You'll need to install the Pulsar binary package on <em>each machine in the cluster</em>, including machines running <a href="#deploying-a-zookeeper-cluster">ZooKeeper</a> and <a href="#deploying-a-bookkeeper-cluster">BookKeeper</a>.</p>
+<p>You need to install the Pulsar binary package on <em>each machine in the cluster</em>, including machines running <a href="#deploy-a-zookeeper-cluster">ZooKeeper</a> and <a href="#deploy-a-bookkeeper-cluster">BookKeeper</a>.</p>
 </blockquote>
-<p>To get started deploying a Pulsar cluster on bare metal, you'll need to download a binary tarball release in one of the following ways:</p>
+<p>To get started deploying a Pulsar cluster on bare metal, you need to download a binary tarball release in one of the following ways:</p>
 <ul>
-<li>By clicking on the link directly below, which will automatically trigger a download:
+<li>By clicking on the link below directly, which automatically triggers a download:
 <ul>
 <li><a href="https://archive.apache.org/dist/pulsar/pulsar-2.4.1/apache-pulsar-2.4.1-bin.tar.gz" download>Pulsar 2.4.1 binary release</a></li>
 </ul></li>
@@ -147,7 +147,7 @@ you can even deploy Pulsar in one node, where it will run zookeeper, bookie and
 </ul>
 <pre><code class="hljs css language-bash">$ wget https://archive.apache.org/dist/pulsar/pulsar-2.4.1/apache-pulsar-2.4.1-bin.tar.gz
 </code></pre>
-<p>Once you've downloaded the tarball, untar it and <code>cd</code> into the resulting directory:</p>
+<p>Once you download the tarball, untar it and <code>cd</code> into the resulting directory:</p>
 <pre><code class="hljs css language-bash">$ tar xvzf apache-pulsar-2.4.1-bin.tar.gz
 $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 </code></pre>
@@ -157,21 +157,20 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <tr><th style="text-align:left">Directory</th><th style="text-align:left">Contains</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left">Pulsar's <a href="/docs/en/next/reference-cli-tools">command-line tools</a>, such as <a href="/docs/en/next/reference-cli-tools#pulsar"><code>pulsar</code></a> and <a href="/docs/en/next/pulsar-admin"><code>pulsar-admin</code></a></td></tr>
+<tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left"><a href="/docs/en/next/reference-cli-tools">command-line tools</a> of Pulsar, such as <a href="/docs/en/next/reference-cli-tools#pulsar"><code>pulsar</code></a> and <a href="/docs/en/next/pulsar-admin"><code>pulsar-admin</code></a></td></tr>
 <tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including for <a href="/docs/en/next/reference-configuration#broker">broker configuration</a>, <a href="/docs/en/next/reference-configuration#zookeeper">ZooKeeper configuration</a>, and more</td></tr>
-<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by ZooKeeper and BookKeeper.</td></tr>
-<tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files used by Pulsar.</td></tr>
-<tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">Logs created by the installation.</td></tr>
+<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory that ZooKeeper and BookKeeper use</td></tr>
+<tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files that Pulsar uses</td></tr>
+<tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">Logs that the installation creates</td></tr>
 </tbody>
 </table>
-<h2><a class="anchor" aria-hidden="true" id="installing-builtin-connectors-optional"></a><a href="#installing-builtin-connectors-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<h2><a class="anchor" aria-hidden="true" id="install-builtin-connectors-optional-https-pulsarapacheorg-docs-en-next-standalone-install-builtin-connectors-optional"></a><a href="#install-builtin-connectors-optional-https-pulsarapacheorg-docs-en-next-standalone-install-builtin-connectors-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69- [...]
 <blockquote>
-<p>Since release <code>2.1.0-incubating</code>, Pulsar releases a separate binary distribution, containing all the <code>builtin</code> connectors.
-If you would like to enable those <code>builtin</code> connectors, you can follow the instructions as below; otherwise you can
+<p>Since Pulsar releases <code>2.1.0-incubating</code>, Pulsar releases a separate binary distribution, containing all the <code>builtin</code> connectors.
+If you want to enable those <code>builtin</code> connectors, you can follow the instructions as below; otherwise you can
 skip this section for now.</p>
 </blockquote>
-<p>To get started using builtin connectors, you'll need to download the connectors tarball release on every broker node in
-one of the following ways:</p>
+<p>To get started using builtin connectors, you need to download the connectors tarball release on every broker node in one of the following ways:</p>
 <ul>
 <li><p>by clicking the link below and downloading the release from an Apache mirror:</p>
 <ul>
@@ -183,8 +182,8 @@ one of the following ways:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> wget https://archive.apache.org/dist/pulsar/pulsar-2.4.1/connectors/{connector}-2.4.1.nar</span>
 </code></pre></li>
 </ul>
-<p>Once the nar file is downloaded, copy the file to directory <code>connectors</code> in the pulsar directory,
-for example, if the connector file <code>pulsar-io-aerospike-2.4.1.nar</code> is downloaded:</p>
+<p>Once you download the nar file, copy the file to directory <code>connectors</code> in the pulsar directory,
+for example, if you download the connector file <code>pulsar-io-aerospike-2.4.1.nar</code>:</p>
 <pre><code class="hljs css language-bash">$ mkdir connectors
 $ mv pulsar-io-aerospike-2.4.1.nar connectors
 
@@ -192,14 +191,13 @@ $ ls connectors
 pulsar-io-aerospike-2.4.1.nar
 ...
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="installing-tiered-storage-offloaders-optional"></a><a href="#installing-tiered-storage-offloaders-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h- [...]
+<h2><a class="anchor" aria-hidden="true" id="install-tiered-storage-offloaders-optional-https-pulsarapacheorg-docs-en-next-standalone-install-tiered-storage-offloaders-optional"></a><a href="#install-tiered-storage-offloaders-optional-https-pulsarapacheorg-docs-en-next-standalone-install-tiered-storage-offloaders-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd"  [...]
 <blockquote>
-<p>Since release <code>2.2.0</code>, Pulsar releases a separate binary distribution, containing the tiered storage offloaders.
-If you would like to enable tiered storage feature, you can follow the instructions as below; otherwise you can
+<p>Since Pulsar release <code>2.2.0</code>, Pulsar releases a separate binary distribution, containing the tiered storage offloaders.
+If you want to enable tiered storage feature, you can follow the instructions as below; otherwise you can
 skip this section for now.</p>
 </blockquote>
-<p>To get started using tiered storage offloaders, you'll need to download the offloaders tarball release on every broker node in
-one of the following ways:</p>
+<p>To get started using tiered storage offloaders, you need to download the offloaders tarball release on every broker node in one of the following ways:</p>
 <ul>
 <li><p>by clicking the link below and downloading the release from an Apache mirror:</p>
 <ul>
@@ -211,11 +209,10 @@ one of the following ways:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> wget https://archive.apache.org/dist/pulsar/pulsar-2.4.1/apache-pulsar-offloaders-2.4.1-bin.tar.gz</span>
 </code></pre></li>
 </ul>
-<p>Once the tarball is downloaded, in the pulsar directory, untar the offloaders package and copy the offloaders as <code>offloaders</code>
-in the pulsar directory:</p>
+<p>Once you download the tarball, in the pulsar directory, untar the offloaders package and copy the offloaders as <code>offloaders</code> in the pulsar directory:</p>
 <pre><code class="hljs css language-bash">$ tar xvfz apache-pulsar-offloaders-2.4.1-bin.tar.gz
 
-// you will find a directory named `apache-pulsar-offloaders-2.4.1` <span class="hljs-keyword">in</span> the pulsar directory
+// you can find a directory named `apache-pulsar-offloaders-2.4.1` <span class="hljs-keyword">in</span> the pulsar directory
 // <span class="hljs-keyword">then</span> copy the offloaders
 
 $ mv apache-pulsar-offloaders-2.4.1/offloaders offloaders
@@ -223,13 +220,13 @@ $ mv apache-pulsar-offloaders-2.4.1/offloaders offloaders
 $ ls offloaders
 tiered-storage-jcloud-2.4.1.nar
 </code></pre>
-<p>For more details of how to configure tiered storage feature, you could reference this <a href="/docs/en/next/cookbooks-tiered-storage">Tiered storage cookbook</a></p>
-<h2><a class="anchor" aria-hidden="true" id="deploying-a-zookeeper-cluster"></a><a href="#deploying-a-zookeeper-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
+<p>For more details of how to configure tiered storage feature, you can refer to the <a href="/docs/en/next/cookbooks-tiered-storage">Tiered storage cookbook</a></p>
+<h2><a class="anchor" aria-hidden="true" id="deploy-a-zookeeper-cluster"></a><a href="#deploy-a-zookeeper-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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 [...]
 <blockquote>
-<p>If you already have an exsiting zookeeper cluster and would like to use it, you can skip this section.</p>
+<p>If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.</p>
 </blockquote>
-<p><a href="https://zookeeper.apache.org">ZooKeeper</a> manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you'll need to deploy ZooKeeper first (before all other components). We recommend deploying a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.</p>
-<p>To begin, add all ZooKeeper servers to the configuration specified in <a href="/docs/en/next/reference-configuration#zookeeper"><code>conf/zookeeper.conf</code></a> (in the Pulsar directory you created <a href="#installing-the-pulsar-binary-package">above</a>). Here's an example:</p>
+<p><a href="https://zookeeper.apache.org">ZooKeeper</a> manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you need to deploy ZooKeeper first (before all other components). You had better deploy a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.</p>
+<p>To begin, add all ZooKeeper servers to the configuration specified in <a href="/docs/en/next/reference-configuration#zookeeper"><code>conf/zookeeper.conf</code></a> (in the Pulsar directory that you create <a href="#install-the-pulsar-binary-package">above</a>). The following is an example:</p>
 <pre><code class="hljs css language-properties"><span class="hljs-meta">server.1</span>=<span class="hljs-string">zk1.us-west.example.com:2888:3888</span>
 <span class="hljs-meta">server.2</span>=<span class="hljs-string">zk2.us-west.example.com:2888:3888</span>
 <span class="hljs-meta">server.3</span>=<span class="hljs-string">zk3.us-west.example.com:2888:3888</span>
@@ -237,28 +234,28 @@ tiered-storage-jcloud-2.4.1.nar
 <blockquote>
 <p>If you have only one machine to deploy Pulsar, you just need to add one server entry in the configuration file.</p>
 </blockquote>
-<p>On each host, you need to specify the ID of the node in each node's <code>myid</code> file, which is in each server's <code>data/zookeeper</code> folder by default (this can be changed via the <a href="/docs/en/next/reference-configuration#zookeeper-dataDir"><code>dataDir</code></a> parameter).</p>
+<p>On each host, you need to specify the ID of the node in the <code>myid</code> file of each node, which is in each <code>data/zookeeper</code> folder of server by default (you can change the file location via the <a href="/docs/en/next/reference-configuration#zookeeper-dataDir"><code>dataDir</code></a> parameter).</p>
 <blockquote>
-<p>See the <a href="https://zookeeper.apache.org/doc/r3.4.10/zookeeperAdmin.html#sc_zkMulitServerSetup">Multi-server setup guide</a> in the ZooKeeper documentation for detailed info on <code>myid</code> and more.</p>
+<p>See the <a href="https://zookeeper.apache.org/doc/r3.4.10/zookeeperAdmin.html#sc_zkMulitServerSetup">Multi-server setup guide</a> in the ZooKeeper documentation for detailed information on <code>myid</code> and more.</p>
 </blockquote>
-<p>On a ZooKeeper server at <code>zk1.us-west.example.com</code>, for example, you could set the <code>myid</code> value like this:</p>
+<p>On a ZooKeeper server at <code>zk1.us-west.example.com</code>, for example, you can set the <code>myid</code> value like this:</p>
 <pre><code class="hljs css language-bash">$ mkdir -p data/zookeeper
 $ <span class="hljs-built_in">echo</span> 1 &gt; data/zookeeper/myid
 </code></pre>
-<p>On <code>zk2.us-west.example.com</code> the command would be <code>echo 2 &gt; data/zookeeper/myid</code> and so on.</p>
-<p>Once each server has been added to the <code>zookeeper.conf</code> configuration and has the appropriate <code>myid</code> entry, you can start ZooKeeper on all hosts (in the background, using nohup) with the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<p>On <code>zk2.us-west.example.com</code> the command is <code>echo 2 &gt; data/zookeeper/myid</code> and so on.</p>
+<p>Once you add each server to the <code>zookeeper.conf</code> configuration and have the appropriate <code>myid</code> entry, you can start ZooKeeper on all hosts (in the background, using nohup) with the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-daemon start zookeeper
 </code></pre>
 <blockquote>
-<p>If you are planning to deploy zookeeper with bookie on the same node, you
+<p>If you plan to deploy zookeeper with bookie on the same node, you
 need to start zookeeper by using different stats port.</p>
 </blockquote>
 <p>Start zookeeper with <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool like:</p>
 <pre><code class="hljs css language-bash">$ PULSAR_EXTRA_OPTS=<span class="hljs-string">"-Dstats_server_port=8001"</span> bin/pulsar-daemon start zookeeper
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="initializing-cluster-metadata"></a><a href="#initializing-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
-<p>Once you've deployed ZooKeeper for your cluster, there is some metadata that needs to be written to ZooKeeper for each cluster in your instance. It only needs to be written <strong>once</strong>.</p>
-<p>You can initialize this metadata using the <a href="/docs/en/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/en/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. This command can be run on any machine in your ZooKeeper cluster. Here's an example:</p>
+<h2><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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>Once you deploy ZooKeeper for your cluster, you need to write some metadata to ZooKeeper for each cluster in your instance. You only need to write <strong>once</strong>.</p>
+<p>You can initialize this metadata using the <a href="/docs/en/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/en/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. This command can be run on any machine in your ZooKeeper cluster. The following is an example:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar initialize-cluster-metadata \</span>
   --cluster pulsar-cluster-1 \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -268,7 +265,8 @@ need to start zookeeper by using different stats port.</p>
   --broker-service-url pulsar://pulsar.us-west.example.com:6650 \
   --broker-service-url-tls pulsar+ssl://pulsar.us-west.example.com:6651
 </code></pre>
-<p>As you can see from the example above, the following needs to be specified:</p>
+<p>As you can see from the example above, you
+need to specify the following:</p>
 <table>
 <thead>
 <tr><th style="text-align:left">Flag</th><th style="text-align:left">Description</th></tr>
@@ -277,10 +275,10 @@ need to start zookeeper by using different stats port.</p>
 <tr><td style="text-align:left"><code>--cluster</code></td><td style="text-align:left">A name for the cluster</td></tr>
 <tr><td style="text-align:left"><code>--zookeeper</code></td><td style="text-align:left">A &quot;local&quot; ZooKeeper connection string for the cluster. This connection string only needs to include <em>one</em> machine in the ZooKeeper cluster.</td></tr>
 <tr><td style="text-align:left"><code>--configuration-store</code></td><td style="text-align:left">The configuration store connection string for the entire instance. As with the <code>--zookeeper</code> flag, this connection string only needs to include <em>one</em> machine in the ZooKeeper cluster.</td></tr>
-<tr><td style="text-align:left"><code>--web-service-url</code></td><td style="text-align:left">The web service URL for the cluster, plus a port. This URL should be a standard DNS name. The default port is 8080 (we don't recommend using a different port).</td></tr>
-<tr><td style="text-align:left"><code>--web-service-url-tls</code></td><td style="text-align:left">If you're using <a href="/docs/en/next/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster. The default port is 8443 (we don't recommend using a different port).</td></tr>
-<tr><td style="text-align:left"><code>--broker-service-url</code></td><td style="text-align:left">A broker service URL enabling interaction with the brokers in the cluster. This URL should use the same DNS name as the web service URL but should use the <code>pulsar</code> scheme instead. The default port is 6650 (we don't recommend using a different port).</td></tr>
-<tr><td style="text-align:left"><code>--broker-service-url-tls</code></td><td style="text-align:left">If you're using <a href="/docs/en/next/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster. The default port is 6651 (we don't recommend using a different port).</td></tr>
+<tr><td style="text-align:left"><code>--web-service-url</code></td><td style="text-align:left">The web service URL for the cluster, plus a port. This URL should be a standard DNS name. The default port is 8080 (you had better not use a different port).</td></tr>
+<tr><td style="text-align:left"><code>--web-service-url-tls</code></td><td style="text-align:left">If you use <a href="/docs/en/next/security-tls-transport">TLS</a>, you also need to specify a TLS web service URL for the cluster. The default port is 8443 (you had better not use a different port).</td></tr>
+<tr><td style="text-align:left"><code>--broker-service-url</code></td><td style="text-align:left">A broker service URL enabling interaction with the brokers in the cluster. This URL should not use the same DNS name as the web service URL but should use the <code>pulsar</code> scheme instead. The default port is 6650 (you had better not use a different port).</td></tr>
+<tr><td style="text-align:left"><code>--broker-service-url-tls</code></td><td style="text-align:left">If you use <a href="/docs/en/next/security-tls-transport">TLS</a>, you also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster. The default port is 6651 (you had better not use a different port).</td></tr>
 </tbody>
 </table>
 <blockquote>
@@ -291,46 +289,46 @@ need to start zookeeper by using different stats port.</p>
 --broker-service-url-tls pulsar+ssl://host1:6651,host2:6651,host3:6651</span>
 </code></pre>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="deploying-a-bookkeeper-cluster"></a><a href="#deploying-a-bookkeeper-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 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><a href="https://bookkeeper.apache.org">BookKeeper</a> handles all persistent data storage in Pulsar. You will need to deploy a cluster of BookKeeper bookies to use Pulsar. We recommend running a <strong>3-bookie BookKeeper cluster</strong>.</p>
-<p>BookKeeper bookies can be configured using the <a href="/docs/en/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important step in configuring bookies for our purposes here is ensuring that the <a href="/docs/en/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> is set to the connection string for the ZooKeeper cluster. Here's an example:</p>
+<h2><a class="anchor" aria-hidden="true" id="deploy-a-bookkeeper-cluster"></a><a href="#deploy-a-bookkeeper-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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><a href="https://bookkeeper.apache.org">BookKeeper</a> handles all persistent data storage in Pulsar. You need to deploy a cluster of BookKeeper bookies to use Pulsar. You can choose to run a <strong>3-bookie BookKeeper cluster</strong>.</p>
+<p>You can configure BookKeeper bookies using the <a href="/docs/en/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important step in configuring bookies for our purposes here is ensuring that the <a href="/docs/en/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> is set to the connection string for the ZooKeeper cluster. The following is an example:</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">zkServers</span>=<span class="hljs-string">zk1.us-west.example.com:2181,zk2.us-west.example.com:2181,zk3.us-west.example.com:2181</span>
 </code></pre>
-<p>Once you've appropriately modified the <code>zkServers</code> parameter, you can provide any other configuration modifications you need. You can find a full listing of the available BookKeeper configuration parameters <a href="/docs/en/next/reference-configuration#bookkeeper">here</a>, although we would recommend consulting the <a href="http://bookkeeper.apache.org/docs/latest/reference/config/">BookKeeper documentation</a> for a more in-depth guide.</p>
+<p>Once you appropriately modify the <code>zkServers</code> parameter, you can provide any other configuration modifications you need. You can find a full listing of the available BookKeeper configuration parameters <a href="/docs/en/next/reference-configuration#bookkeeper">here</a>, although consulting the <a href="http://bookkeeper.apache.org/docs/latest/reference/config/">BookKeeper documentation</a> for a more in-depth guide might be a better choice.</p>
 <blockquote>
 <h5><a class="anchor" aria-hidden="true" id="notes"></a><a href="#notes" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Since Pulsar 2.1.0 release, Pulsar introduces <a href="functions-state.md">stateful function</a> for Pulsar Functions. If you would like to enable that feature,
-you need to enable table service on BookKeeper by setting following setting in <code>conf/bookkeeper.conf</code> file.</p>
+<p>Since Pulsar 2.1.0 releases, Pulsar introduces <a href="functions-state.md">stateful function</a> for Pulsar Functions. If you want to enable that feature,
+you need to enable table service on BookKeeper by doing the following setting in <code>conf/bookkeeper.conf</code> file.</p>
 <pre><code class="hljs css language-conf">extraServerComponents=org<span class="hljs-selector-class">.apache</span><span class="hljs-selector-class">.bookkeeper</span><span class="hljs-selector-class">.stream</span><span class="hljs-selector-class">.server</span><span class="hljs-selector-class">.StreamStorageLifecycleComponent</span>
 </code></pre>
 </blockquote>
-<p>Once you've applied the desired configuration in <code>conf/bookkeeper.conf</code>, you can start up a bookie on each of your BookKeeper hosts. You can start up each bookie either in the background, using <a href="https://en.wikipedia.org/wiki/Nohup">nohup</a>, or in the foreground.</p>
+<p>Once you apply the desired configuration in <code>conf/bookkeeper.conf</code>, you can start up a bookie on each of your BookKeeper hosts. You can start up each bookie either in the background, using <a href="https://en.wikipedia.org/wiki/Nohup">nohup</a>, or in the foreground.</p>
 <p>To start the bookie in the background, use the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-daemon start bookie
 </code></pre>
 <p>To start the bookie in the foreground:</p>
 <pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
 </code></pre>
-<p>You can verify that a bookie is working properly by running the <code>bookiesanity</code> command for the <a href="/docs/en/next/reference-cli-tools#shell">BookKeeper shell</a> on it:</p>
+<p>You can verify that a bookie works properly by running the <code>bookiesanity</code> command for the <a href="/docs/en/next/reference-cli-tools#shell">BookKeeper shell</a> on it:</p>
 <pre><code class="hljs css language-bash">$ bin/bookkeeper shell bookiesanity
 </code></pre>
-<p>This will create an ephemeral BookKeeper ledger on the local bookie, write a few entries, read them back, and finally delete the ledger.</p>
-<p>After you have started all the bookies, you can use <code>simpletest</code> command for <a href="/docs/en/next/reference-cli-tools#shell">BookKeeper shell</a> on any bookie node, to
+<p>This command creates an ephemeral BookKeeper ledger on the local bookie, writes a few entries, reads them back, and finally deletes the ledger.</p>
+<p>After you start all the bookies, you can use <code>simpletest</code> command for <a href="/docs/en/next/reference-cli-tools#shell">BookKeeper shell</a> on any bookie node, to
 verify all the bookies in the cluster are up running.</p>
 <pre><code class="hljs css language-bash">$ bin/bookkeeper shell simpletest --ensemble &lt;num-bookies&gt; --writeQuorum &lt;num-bookies&gt; --ackQuorum &lt;num-bookies&gt; --numEntries &lt;num-entries&gt;
 </code></pre>
-<p>This command will create a <code>num-bookies</code> sized ledger on the cluster, write a few entries, and finally delete the ledger.</p>
-<h2><a class="anchor" aria-hidden="true" id="deploying-pulsar-brokers"></a><a href="#deploying-pulsar-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.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>Pulsar brokers are the last thing you need to deploy in your Pulsar cluster. Brokers handle Pulsar messages and provide Pulsar's administrative interface. We recommend running <strong>3 brokers</strong>, one for each machine that's already running a BookKeeper bookie.</p>
-<h3><a class="anchor" aria-hidden="true" id="configuring-brokers"></a><a href="#configuring-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p>The most important element of broker configuration is ensuring that each broker is aware of the ZooKeeper cluster that you've deployed. Make sure that the <a href="/docs/en/next/reference-configuration#broker-zookeeperServers"><code>zookeeperServers</code></a> and <a href="/docs/en/next/reference-configuration#broker-configurationStoreServers"><code>configurationStoreServers</code></a> parameters. In this case, since we only have 1 cluster and no configuration store setup, the <code>c [...]
+<p>This command creates a <code>num-bookies</code> sized ledger on the cluster, writes a few entries, and finally deletes the ledger.</p>
+<h2><a class="anchor" aria-hidden="true" id="deploy-pulsar-brokers"></a><a href="#deploy-pulsar-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<p>Pulsar brokers are the last thing you need to deploy in your Pulsar cluster. Brokers handle Pulsar messages and provide the administrative interface of Pulsar. A good choice is to run <strong>3 brokers</strong>, one for each machine that already runs a BookKeeper bookie.</p>
+<h3><a class="anchor" aria-hidden="true" id="configure-brokers"></a><a href="#configure-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>The most important element of broker configuration is ensuring that each broker is aware of the ZooKeeper cluster that you have deployed. Make sure that the <a href="/docs/en/next/reference-configuration#broker-zookeeperServers"><code>zookeeperServers</code></a> and <a href="/docs/en/next/reference-configuration#broker-configurationStoreServers"><code>configurationStoreServers</code></a> parameters. In this case, since you only have 1 cluster and no configuration store setup, the <cod [...]
 <pre><code class="hljs css language-properties"><span class="hljs-attr">zookeeperServers</span>=<span class="hljs-string">zk1.us-west.example.com:2181,zk2.us-west.example.com:2181,zk3.us-west.example.com:2181</span>
 <span class="hljs-attr">configurationStoreServers</span>=<span class="hljs-string">zk1.us-west.example.com:2181,zk2.us-west.example.com:2181,zk3.us-west.example.com:2181</span>
 </code></pre>
-<p>You also need to specify the cluster name (matching the name that you provided when <a href="#initializing-cluster-metadata">initializing the cluster's metadata</a>):</p>
+<p>You also need to specify the cluster name (matching the name that you provide when you <a href="#initialize-cluster-metadata">initialize the metadata of the cluster</a>):</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">clusterName</span>=<span class="hljs-string">pulsar-cluster-1</span>
 </code></pre>
-<p>In addition, you need to match the broker and web service ports provided when initializing the cluster's metadata (especially when using a different port from default):</p>
+<p>In addition, you need to match the broker and web service ports provided when you initialize the metadata of the cluster (especially when you use a different port from default):</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">brokerServicePort</span>=<span class="hljs-string">6650</span>
 <span class="hljs-attr">brokerServicePortTls</span>=<span class="hljs-string">6651</span>
 <span class="hljs-attr">webServicePort</span>=<span class="hljs-string">8080</span>
@@ -348,29 +346,29 @@ verify all the bookies in the cluster are up running.</p>
 <span class="hljs-attr">managedLedgerDefaultAckQuorum</span>=<span class="hljs-string">1</span>
 </code></pre>
 </blockquote>
-<h3><a class="anchor" aria-hidden="true" id="enabling-pulsar-functions-optional"></a><a href="#enabling-pulsar-functions-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5 [...]
+<h3><a class="anchor" aria-hidden="true" id="enable-pulsar-functions-optional"></a><a href="#enable-pulsar-functions-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.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>If you want to enable <a href="/docs/en/next/functions-overview">Pulsar Functions</a>, you can follow the instructions as below:</p>
 <ol>
 <li><p>Edit <code>conf/broker.conf</code> to enable functions worker, by setting <code>functionsWorkerEnabled</code> to <code>true</code>.</p>
 <pre><code class="hljs css language-conf"><span class="hljs-attr">functionsWorkerEnabled</span>=<span class="hljs-literal">true</span>
 </code></pre></li>
-<li><p>Edit <code>conf/functions_worker.yml</code> and set <code>pulsarFunctionsCluster</code> to the cluster name that you provided when <a href="#initializing-cluster-metadata">initializing the cluster's metadata</a>.</p>
+<li><p>Edit <code>conf/functions_worker.yml</code> and set <code>pulsarFunctionsCluster</code> to the cluster name that you provide when you <a href="#initialize-cluster-metadata">initialize the metadata of the cluster</a>.</p>
 <pre><code class="hljs css language-conf">pulsarFunctionsCluster: pulsar-cluster<span class="hljs-number">-1</span>
 </code></pre></li>
 </ol>
-<p>If you would like to learn more options about deploying functions worker, please checkout <a href="/docs/en/next/functions-worker">Deploy and manage functions worker</a>.</p>
-<h3><a class="anchor" aria-hidden="true" id="starting-brokers"></a><a href="#starting-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 then provide any other configuration changes that you'd like in the <a href="/docs/en/next/reference-configuration#broker"><code>conf/broker.conf</code></a> file. Once you've decided on a configuration, you can start up the brokers for your Pulsar cluster. Like ZooKeeper and BookKeeper, brokers can be started either in the foreground or in the background, using nohup.</p>
+<p>If you want to learn more options about deploying functions worker, checkout <a href="/docs/en/next/functions-worker">Deploy and manage functions worker</a>.</p>
+<h3><a class="anchor" aria-hidden="true" id="start-brokers"></a><a href="#start-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>You can then provide any other configuration changes that you want in the <a href="/docs/en/next/reference-configuration#broker"><code>conf/broker.conf</code></a> file. Once you decide on a configuration, you can start up the brokers for your Pulsar cluster. Like ZooKeeper and BookKeeper, you can start brokers either in the foreground or in the background, using nohup.</p>
 <p>You can start a broker in the foreground using the <a href="/docs/en/next/reference-cli-tools#pulsar-broker"><code>pulsar broker</code></a> command:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar broker
 </code></pre>
 <p>You can start a broker in the background using the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-daemon start broker
 </code></pre>
-<p>Once you've succesfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!</p>
-<h2><a class="anchor" aria-hidden="true" id="connecting-to-the-running-cluster"></a><a href="#connecting-to-the-running-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
-<p>Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the <a href="/docs/en/next/reference-cli-tools#pulsar-client"><code>pulsar-client</code></a> tool, which is included with the Pulsar binary package. The <code>pulsar-client</code> tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is runnning properly.</p>
-<p>To use the <code>pulsar-client</code> tool, first modify the client configuration file in <a href="/docs/en/next/reference-configuration#client"><code>conf/client.conf</code></a> in your binary package. You'll need to change the values for <code>webServiceUrl</code> and <code>brokerServiceUrl</code>, substituting <code>localhost</code> (which is the default), with the DNS name that you've assigned to your broker/bookie hosts. Here's an example:</p>
+<p>Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!</p>
+<h2><a class="anchor" aria-hidden="true" id="connect-to-the-running-cluster"></a><a href="#connect-to-the-running-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 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>Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the <a href="/docs/en/next/reference-cli-tools#pulsar-client"><code>pulsar-client</code></a> tool, which is included with the Pulsar binary package. The <code>pulsar-client</code> tool can publish messages to and consume messages from Pulsar topics and thus provide a simple way to make sure that your cluster runs properly.</p>
+<p>To use the <code>pulsar-client</code> tool, first modify the client configuration file in <a href="/docs/en/next/reference-configuration#client"><code>conf/client.conf</code></a> in your binary package. You need to change the values for <code>webServiceUrl</code> and <code>brokerServiceUrl</code>, substituting <code>localhost</code> (which is the default), with the DNS name that you assign to your broker/bookie hosts. The following is an example:</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">webServiceUrl</span>=<span class="hljs-string">http://us-west.example.com:8080</span>
 <span class="hljs-attr">brokerServiceurl</span>=<span class="hljs-string">pulsar://us-west.example.com:6650</span>
 </code></pre>
@@ -380,29 +378,29 @@ verify all the bookies in the cluster are up running.</p>
 <span class="hljs-attr">brokerServiceurl</span>=<span class="hljs-string">pulsar://host1:6650,host2:6650,host3:6650</span>
 </code></pre>
 </blockquote>
-<p>Once you've done that, you can publish a message to Pulsar topic:</p>
+<p>Once you do that, you can publish a message to Pulsar topic:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client produce \
   persistent://public/default/<span class="hljs-built_in">test</span> \
   -n 1 \
   -m <span class="hljs-string">"Hello Pulsar"</span>
 </code></pre>
 <blockquote>
-<p>You may need to use a different cluster name in the topic if you specified a cluster name different from <code>pulsar-cluster-1</code>.</p>
+<p>You may need to use a different cluster name in the topic if you specify a cluster name different from <code>pulsar-cluster-1</code>.</p>
 </blockquote>
-<p>This will publish a single message to the Pulsar topic. In addition, you can subscribe the Pulsar topic in a different terminal before publishing messages as below:</p>
+<p>This command publishes a single message to the Pulsar topic. In addition, you can subscribe the Pulsar topic in a different terminal before publishing messages as below:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client consume \
   persistent://public/default/<span class="hljs-built_in">test</span> \
   -n 100 \
   -s <span class="hljs-string">"consumer-test"</span> \
   -t <span class="hljs-string">"Exclusive"</span>
 </code></pre>
-<p>Once the message above has been successfully published to the topic, you should see it in the standard output:</p>
+<p>Once you successfully publish the message above to the topic, you should see it in the standard output:</p>
 <pre><code class="hljs css language-bash">----- got message -----
 Hello Pulsar
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="running-functions"></a><a href="#running-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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- [...]
+<h2><a class="anchor" aria-hidden="true" id="run-functions"></a><a href="#run-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 [...]
 <blockquote>
-<p>If you have <a href="#enabling-pulsar-functions-optional">enabled</a> Pulsar Functions, you can also tryout pulsar functions now.</p>
+<p>If you have <a href="#enable-pulsar-functions-optional">enabled</a> Pulsar Functions, you can also tryout pulsar functions now.</p>
 </blockquote>
 <p>Create a ExclamationFunction <code>exclamation</code>.</p>
 <pre><code class="hljs css language-bash">bin/pulsar-admin <span class="hljs-built_in">functions</span> create \
@@ -414,13 +412,13 @@ Hello Pulsar
   --namespace default \
   --name exclamation
 </code></pre>
-<p>Check if the function is running as expected by <a href="functions-deploying.md#triggering-pulsar-functions">triggering</a> the function.</p>
+<p>Check if the function runs as expected by <a href="functions-deploying.md#triggering-pulsar-functions">triggering</a> the function.</p>
 <pre><code class="hljs css language-bash">bin/pulsar-admin <span class="hljs-built_in">functions</span> trigger --name exclamation --trigger-value <span class="hljs-string">"hello world"</span>
 </code></pre>
-<p>You will see output as below:</p>
+<p>You can see the 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/next/deploy-kubernetes"><span class="arrow-prev">← </span><span>Kubernetes</span></a><a class="docs-next button" href="/docs/en/next/deploy-bare-metal-multi-cluster"><span>Bare metal multi-cluster</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#preparation">Preparation</a><ul class="toc-headings"><li><a href="#requi [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/deploy-kubernetes"><span class="arrow-prev">← </span><span>Kubernetes</span></a><a class="docs-next button" href="/docs/en/next/deploy-bare-metal-multi-cluster"><span>Bare metal multi-cluster</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#preparation">Preparation</a><ul class="toc-headings"><li><a href="#requi [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/deploy-bare-metal/index.html b/content/docs/en/next/deploy-bare-metal/index.html
index 26b9734..8cffabb 100644
--- a/content/docs/en/next/deploy-bare-metal/index.html
+++ b/content/docs/en/next/deploy-bare-metal/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Deploying a cluster on bare metal · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&gt; ### Tips"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Deploying a cluster on bare metal · Apa [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Deploy a cluster on bare metal · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&gt; ### Tips"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Deploy a cluster on bare metal · Apache Pu [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -74,70 +74,70 @@
                 };
               }
             });
-        </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"><div class="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">Deploy 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
-Pulsar or using it in a startup or on a single team, we recommend opting for a single cluster. If you do need to run a multi-cluster Pulsar instance,
-however, see the guide <a href="/docs/en/next/deploy-bare-metal-multi-cluster">here</a>.</p></li>
+<li><p>Single-cluster Pulsar installations should be sufficient for all but the most ambitious use cases. If you are interested in experimenting with
+Pulsar or using Pulsar in a startup or on a single team, you had better opt for a single cluster. If you do need to run a multi-cluster Pulsar instance,
+see the guide <a href="/docs/en/next/deploy-bare-metal-multi-cluster">here</a>.</p></li>
 <li><p>If you want to use all builtin <a href="/docs/en/next/io-overview">Pulsar IO</a> connectors in your Pulsar deployment, you need to download <code>apache-pulsar-io-connectors</code>
-package and make sure it is installed under <code>connectors</code> directory in the pulsar directory on every broker node or on every function-worker node if you
+package and install <code>apache-pulsar-io-connectors</code> under <code>connectors</code> directory in the pulsar directory on every broker node or on every function-worker node if you
 have run a separate cluster of function workers for <a href="/docs/en/next/functions-overview">Pulsar Functions</a>.</p></li>
 <li><p>If you want to use <a href="/docs/en/next/concepts-tiered-storage">Tiered Storage</a> feature in your Pulsar deployment, you need to download <code>apache-pulsar-offloaders</code>
-package and make sure it is installed under <code>offloaders</code> directory in the pulsar directory on every broker node. For more details of how to configure
-this feature, you could reference this <a href="/docs/en/next/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p></li>
+package and install <code>apache-pulsar-offloaders</code> under <code>offloaders</code> directory in the pulsar directory on every broker node. For more details of how to configure
+this feature, you can refer to the <a href="/docs/en/next/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p></li>
 </ol>
 </blockquote>
 <p>Deploying a Pulsar cluster involves doing the following (in order):</p>
 <ul>
-<li>Deploying a <a href="#deploying-a-zookeeper-cluster">ZooKeeper</a> cluster (optional)</li>
-<li>Initializing <a href="#initializing-cluster-metadata">cluster metadata</a></li>
-<li>Deploying a <a href="#deploying-a-bookkeeper-cluster">BookKeeper</a> cluster</li>
-<li>Deploying one or more Pulsar <a href="#deploying-pulsar-brokers">brokers</a></li>
+<li>Deploy a <a href="#deploy-a-zookeeper-cluster">ZooKeeper</a> cluster (optional)</li>
+<li>Initialize <a href="#initialize-cluster-metadata">cluster metadata</a></li>
+<li>Deploy a <a href="#deploy-a-bookkeeper-cluster">BookKeeper</a> cluster</li>
+<li>Deploy one or more Pulsar <a href="#deploy-pulsar-brokers">brokers</a></li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="preparation"></a><a href="#preparation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 [...]
 <h3><a class="anchor" aria-hidden="true" id="requirements"></a><a href="#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.22-2-2.5 0-.83. [...]
 <blockquote>
-<p>If you already have an existing zookeeper cluster and would like to reuse it, you don't need to prepare the machines
+<p>If you already have an existing zookeeper cluster and want to reuse it, you do not need to prepare the machines
 for running ZooKeeper.</p>
 </blockquote>
-<p>To run Pulsar on bare metal, you are recommended to have:</p>
+<p>To run Pulsar on bare metal, you had better have the following:</p>
 <ul>
 <li>At least 6 Linux machines or VMs
 <ul>
-<li>3 running <a href="https://zookeeper.apache.org">ZooKeeper</a></li>
-<li>3 running a Pulsar broker, and a <a href="https://bookkeeper.apache.org">BookKeeper</a> bookie</li>
+<li>3 for running <a href="https://zookeeper.apache.org">ZooKeeper</a></li>
+<li>3 for running a Pulsar broker, and a <a href="https://bookkeeper.apache.org">BookKeeper</a> bookie</li>
 </ul></li>
 <li>A single <a href="https://en.wikipedia.org/wiki/Domain_Name_System">DNS</a> name covering all of the Pulsar broker hosts</li>
 </ul>
 <blockquote>
-<p>However if you don't have enough machines, or are trying out Pulsar in cluster mode (and expand the cluster later),
-you can even deploy Pulsar in one node, where it will run zookeeper, bookie and broker in same machine.</p>
+<p>If you do not have enough machines, or try out Pulsar in cluster mode (and expand the cluster later),
+you can even deploy Pulsar in one node, where Zookeeper, bookie and broker are run in the same machine.</p>
 </blockquote>
 <blockquote>
-<p>If you don't have a DNS server, you can use multi-host in service URL instead.</p>
+<p>If you do not have a DNS server, you can use multi-host in service URL instead.</p>
 </blockquote>
-<p>Each machine in your cluster will need to have <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java 8</a> or higher installed.</p>
-<p>Here's a diagram showing the basic setup:</p>
+<p>Each machine in your cluster needs to have <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java 8</a> or higher version of Java installed.</p>
+<p>The following is a diagram showing the basic setup:</p>
 <p><img src="/docs/assets/pulsar-basic-setup.png" alt="alt-text"></p>
-<p>In this diagram, connecting clients need to be able to communicate with the Pulsar cluster using a single URL, in this case <code>pulsar-cluster.acme.com</code>, that abstracts over all of the message-handling brokers. Pulsar message brokers run on machines alongside BookKeeper bookies; brokers and bookies, in turn, rely on ZooKeeper.</p>
+<p>In this diagram, connecting clients need to be able to communicate with the Pulsar cluster using a single URL, in this case <code>pulsar-cluster.acme.com</code> abstracts over all of the message-handling brokers. Pulsar message brokers run on machines alongside BookKeeper bookies; brokers and bookies, in turn, rely on ZooKeeper.</p>
 <h3><a class="anchor" aria-hidden="true" id="hardware-considerations"></a><a href="#hardware-considerations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 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>When deploying a Pulsar cluster, we have some basic recommendations that you should keep in mind when capacity planning.</p>
+<p>When you deploy a Pulsar cluster, keep in mind the following basic better choices when you do the capacity planning.</p>
 <h4><a class="anchor" aria-hidden="true" id="zookeeper"></a><a href="#zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>For machines running ZooKeeper, we recommend using lighter-weight machines or VMs. Pulsar uses ZooKeeper only for periodic coordination- and configuration-related tasks, <em>not</em> for basic operations. If you're running Pulsar on <a href="https://aws.amazon.com/">Amazon Web Services</a> (AWS), for example, a <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html">t2.small</a> instance would likely suffice.</p>
-<h4><a class="anchor" aria-hidden="true" id="bookies-brokers"></a><a href="#bookies-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
-<p>For machines running a bookie and a Pulsar broker, we recommend using more powerful machines. For an AWS deployment, for example, <a href="https://aws.amazon.com/blogs/aws/now-available-i3-instances-for-demanding-io-intensive-applications/">i3.4xlarge</a> instances may be appropriate. On those machines we also recommend:</p>
+<p>For machines running ZooKeeper, you had better use lighter-weight machines or VMs. Pulsar uses ZooKeeper only for periodic coordination-related and configuration-related tasks, <em>not</em> for basic operations. If you run Pulsar on <a href="https://aws.amazon.com/">Amazon Web Services</a> (AWS), for example, a <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html">t2.small</a> instance might likely suffice.</p>
+<h4><a class="anchor" aria-hidden="true" id="bookies-and-brokers"></a><a href="#bookies-and-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>For machines running a bookie and a Pulsar broker, you had better use more powerful machines. For an AWS deployment, for example, <a href="https://aws.amazon.com/blogs/aws/now-available-i3-instances-for-demanding-io-intensive-applications/">i3.4xlarge</a> instances may be appropriate. On those machines you can use the following:</p>
 <ul>
 <li>Fast CPUs and 10Gbps <a href="https://en.wikipedia.org/wiki/Network_interface_controller">NIC</a> (for Pulsar brokers)</li>
 <li>Small and fast <a href="https://en.wikipedia.org/wiki/Solid-state_drive">solid-state drives</a> (SSDs) or <a href="https://en.wikipedia.org/wiki/Hard_disk_drive">hard disk drives</a> (HDDs) with a <a href="https://en.wikipedia.org/wiki/RAID">RAID</a> controller and a battery-backed write cache (for BookKeeper bookies)</li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="installing-the-pulsar-binary-package"></a><a href="#installing-the-pulsar-binary-package" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 [...]
+<h2><a class="anchor" aria-hidden="true" id="install-the-pulsar-binary-package"></a><a href="#install-the-pulsar-binary-package" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
 <blockquote>
-<p>You'll need to install the Pulsar binary package on <em>each machine in the cluster</em>, including machines running <a href="#deploying-a-zookeeper-cluster">ZooKeeper</a> and <a href="#deploying-a-bookkeeper-cluster">BookKeeper</a>.</p>
+<p>You need to install the Pulsar binary package on <em>each machine in the cluster</em>, including machines running <a href="#deploy-a-zookeeper-cluster">ZooKeeper</a> and <a href="#deploy-a-bookkeeper-cluster">BookKeeper</a>.</p>
 </blockquote>
-<p>To get started deploying a Pulsar cluster on bare metal, you'll need to download a binary tarball release in one of the following ways:</p>
+<p>To get started deploying a Pulsar cluster on bare metal, you need to download a binary tarball release in one of the following ways:</p>
 <ul>
-<li>By clicking on the link directly below, which will automatically trigger a download:
+<li>By clicking on the link below directly, which automatically triggers a download:
 <ul>
 <li><a href="https://archive.apache.org/dist/pulsar/pulsar-2.4.1/apache-pulsar-2.4.1-bin.tar.gz" download>Pulsar 2.4.1 binary release</a></li>
 </ul></li>
@@ -147,7 +147,7 @@ you can even deploy Pulsar in one node, where it will run zookeeper, bookie and
 </ul>
 <pre><code class="hljs css language-bash">$ wget https://archive.apache.org/dist/pulsar/pulsar-2.4.1/apache-pulsar-2.4.1-bin.tar.gz
 </code></pre>
-<p>Once you've downloaded the tarball, untar it and <code>cd</code> into the resulting directory:</p>
+<p>Once you download the tarball, untar it and <code>cd</code> into the resulting directory:</p>
 <pre><code class="hljs css language-bash">$ tar xvzf apache-pulsar-2.4.1-bin.tar.gz
 $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 </code></pre>
@@ -157,21 +157,20 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <tr><th style="text-align:left">Directory</th><th style="text-align:left">Contains</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left">Pulsar's <a href="/docs/en/next/reference-cli-tools">command-line tools</a>, such as <a href="/docs/en/next/reference-cli-tools#pulsar"><code>pulsar</code></a> and <a href="/docs/en/next/pulsar-admin"><code>pulsar-admin</code></a></td></tr>
+<tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left"><a href="/docs/en/next/reference-cli-tools">command-line tools</a> of Pulsar, such as <a href="/docs/en/next/reference-cli-tools#pulsar"><code>pulsar</code></a> and <a href="/docs/en/next/pulsar-admin"><code>pulsar-admin</code></a></td></tr>
 <tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including for <a href="/docs/en/next/reference-configuration#broker">broker configuration</a>, <a href="/docs/en/next/reference-configuration#zookeeper">ZooKeeper configuration</a>, and more</td></tr>
-<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by ZooKeeper and BookKeeper.</td></tr>
-<tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files used by Pulsar.</td></tr>
-<tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">Logs created by the installation.</td></tr>
+<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory that ZooKeeper and BookKeeper use</td></tr>
+<tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files that Pulsar uses</td></tr>
+<tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">Logs that the installation creates</td></tr>
 </tbody>
 </table>
-<h2><a class="anchor" aria-hidden="true" id="installing-builtin-connectors-optional"></a><a href="#installing-builtin-connectors-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<h2><a class="anchor" aria-hidden="true" id="install-builtin-connectors-optional-https-pulsarapacheorg-docs-en-next-standalone-install-builtin-connectors-optional"></a><a href="#install-builtin-connectors-optional-https-pulsarapacheorg-docs-en-next-standalone-install-builtin-connectors-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69- [...]
 <blockquote>
-<p>Since release <code>2.1.0-incubating</code>, Pulsar releases a separate binary distribution, containing all the <code>builtin</code> connectors.
-If you would like to enable those <code>builtin</code> connectors, you can follow the instructions as below; otherwise you can
+<p>Since Pulsar releases <code>2.1.0-incubating</code>, Pulsar releases a separate binary distribution, containing all the <code>builtin</code> connectors.
+If you want to enable those <code>builtin</code> connectors, you can follow the instructions as below; otherwise you can
 skip this section for now.</p>
 </blockquote>
-<p>To get started using builtin connectors, you'll need to download the connectors tarball release on every broker node in
-one of the following ways:</p>
+<p>To get started using builtin connectors, you need to download the connectors tarball release on every broker node in one of the following ways:</p>
 <ul>
 <li><p>by clicking the link below and downloading the release from an Apache mirror:</p>
 <ul>
@@ -183,8 +182,8 @@ one of the following ways:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> wget https://archive.apache.org/dist/pulsar/pulsar-2.4.1/connectors/{connector}-2.4.1.nar</span>
 </code></pre></li>
 </ul>
-<p>Once the nar file is downloaded, copy the file to directory <code>connectors</code> in the pulsar directory,
-for example, if the connector file <code>pulsar-io-aerospike-2.4.1.nar</code> is downloaded:</p>
+<p>Once you download the nar file, copy the file to directory <code>connectors</code> in the pulsar directory,
+for example, if you download the connector file <code>pulsar-io-aerospike-2.4.1.nar</code>:</p>
 <pre><code class="hljs css language-bash">$ mkdir connectors
 $ mv pulsar-io-aerospike-2.4.1.nar connectors
 
@@ -192,14 +191,13 @@ $ ls connectors
 pulsar-io-aerospike-2.4.1.nar
 ...
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="installing-tiered-storage-offloaders-optional"></a><a href="#installing-tiered-storage-offloaders-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h- [...]
+<h2><a class="anchor" aria-hidden="true" id="install-tiered-storage-offloaders-optional-https-pulsarapacheorg-docs-en-next-standalone-install-tiered-storage-offloaders-optional"></a><a href="#install-tiered-storage-offloaders-optional-https-pulsarapacheorg-docs-en-next-standalone-install-tiered-storage-offloaders-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd"  [...]
 <blockquote>
-<p>Since release <code>2.2.0</code>, Pulsar releases a separate binary distribution, containing the tiered storage offloaders.
-If you would like to enable tiered storage feature, you can follow the instructions as below; otherwise you can
+<p>Since Pulsar release <code>2.2.0</code>, Pulsar releases a separate binary distribution, containing the tiered storage offloaders.
+If you want to enable tiered storage feature, you can follow the instructions as below; otherwise you can
 skip this section for now.</p>
 </blockquote>
-<p>To get started using tiered storage offloaders, you'll need to download the offloaders tarball release on every broker node in
-one of the following ways:</p>
+<p>To get started using tiered storage offloaders, you need to download the offloaders tarball release on every broker node in one of the following ways:</p>
 <ul>
 <li><p>by clicking the link below and downloading the release from an Apache mirror:</p>
 <ul>
@@ -211,11 +209,10 @@ one of the following ways:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> wget https://archive.apache.org/dist/pulsar/pulsar-2.4.1/apache-pulsar-offloaders-2.4.1-bin.tar.gz</span>
 </code></pre></li>
 </ul>
-<p>Once the tarball is downloaded, in the pulsar directory, untar the offloaders package and copy the offloaders as <code>offloaders</code>
-in the pulsar directory:</p>
+<p>Once you download the tarball, in the pulsar directory, untar the offloaders package and copy the offloaders as <code>offloaders</code> in the pulsar directory:</p>
 <pre><code class="hljs css language-bash">$ tar xvfz apache-pulsar-offloaders-2.4.1-bin.tar.gz
 
-// you will find a directory named `apache-pulsar-offloaders-2.4.1` <span class="hljs-keyword">in</span> the pulsar directory
+// you can find a directory named `apache-pulsar-offloaders-2.4.1` <span class="hljs-keyword">in</span> the pulsar directory
 // <span class="hljs-keyword">then</span> copy the offloaders
 
 $ mv apache-pulsar-offloaders-2.4.1/offloaders offloaders
@@ -223,13 +220,13 @@ $ mv apache-pulsar-offloaders-2.4.1/offloaders offloaders
 $ ls offloaders
 tiered-storage-jcloud-2.4.1.nar
 </code></pre>
-<p>For more details of how to configure tiered storage feature, you could reference this <a href="/docs/en/next/cookbooks-tiered-storage">Tiered storage cookbook</a></p>
-<h2><a class="anchor" aria-hidden="true" id="deploying-a-zookeeper-cluster"></a><a href="#deploying-a-zookeeper-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
+<p>For more details of how to configure tiered storage feature, you can refer to the <a href="/docs/en/next/cookbooks-tiered-storage">Tiered storage cookbook</a></p>
+<h2><a class="anchor" aria-hidden="true" id="deploy-a-zookeeper-cluster"></a><a href="#deploy-a-zookeeper-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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 [...]
 <blockquote>
-<p>If you already have an exsiting zookeeper cluster and would like to use it, you can skip this section.</p>
+<p>If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.</p>
 </blockquote>
-<p><a href="https://zookeeper.apache.org">ZooKeeper</a> manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you'll need to deploy ZooKeeper first (before all other components). We recommend deploying a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.</p>
-<p>To begin, add all ZooKeeper servers to the configuration specified in <a href="/docs/en/next/reference-configuration#zookeeper"><code>conf/zookeeper.conf</code></a> (in the Pulsar directory you created <a href="#installing-the-pulsar-binary-package">above</a>). Here's an example:</p>
+<p><a href="https://zookeeper.apache.org">ZooKeeper</a> manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you need to deploy ZooKeeper first (before all other components). You had better deploy a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.</p>
+<p>To begin, add all ZooKeeper servers to the configuration specified in <a href="/docs/en/next/reference-configuration#zookeeper"><code>conf/zookeeper.conf</code></a> (in the Pulsar directory that you create <a href="#install-the-pulsar-binary-package">above</a>). The following is an example:</p>
 <pre><code class="hljs css language-properties"><span class="hljs-meta">server.1</span>=<span class="hljs-string">zk1.us-west.example.com:2888:3888</span>
 <span class="hljs-meta">server.2</span>=<span class="hljs-string">zk2.us-west.example.com:2888:3888</span>
 <span class="hljs-meta">server.3</span>=<span class="hljs-string">zk3.us-west.example.com:2888:3888</span>
@@ -237,28 +234,28 @@ tiered-storage-jcloud-2.4.1.nar
 <blockquote>
 <p>If you have only one machine to deploy Pulsar, you just need to add one server entry in the configuration file.</p>
 </blockquote>
-<p>On each host, you need to specify the ID of the node in each node's <code>myid</code> file, which is in each server's <code>data/zookeeper</code> folder by default (this can be changed via the <a href="/docs/en/next/reference-configuration#zookeeper-dataDir"><code>dataDir</code></a> parameter).</p>
+<p>On each host, you need to specify the ID of the node in the <code>myid</code> file of each node, which is in each <code>data/zookeeper</code> folder of server by default (you can change the file location via the <a href="/docs/en/next/reference-configuration#zookeeper-dataDir"><code>dataDir</code></a> parameter).</p>
 <blockquote>
-<p>See the <a href="https://zookeeper.apache.org/doc/r3.4.10/zookeeperAdmin.html#sc_zkMulitServerSetup">Multi-server setup guide</a> in the ZooKeeper documentation for detailed info on <code>myid</code> and more.</p>
+<p>See the <a href="https://zookeeper.apache.org/doc/r3.4.10/zookeeperAdmin.html#sc_zkMulitServerSetup">Multi-server setup guide</a> in the ZooKeeper documentation for detailed information on <code>myid</code> and more.</p>
 </blockquote>
-<p>On a ZooKeeper server at <code>zk1.us-west.example.com</code>, for example, you could set the <code>myid</code> value like this:</p>
+<p>On a ZooKeeper server at <code>zk1.us-west.example.com</code>, for example, you can set the <code>myid</code> value like this:</p>
 <pre><code class="hljs css language-bash">$ mkdir -p data/zookeeper
 $ <span class="hljs-built_in">echo</span> 1 &gt; data/zookeeper/myid
 </code></pre>
-<p>On <code>zk2.us-west.example.com</code> the command would be <code>echo 2 &gt; data/zookeeper/myid</code> and so on.</p>
-<p>Once each server has been added to the <code>zookeeper.conf</code> configuration and has the appropriate <code>myid</code> entry, you can start ZooKeeper on all hosts (in the background, using nohup) with the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<p>On <code>zk2.us-west.example.com</code> the command is <code>echo 2 &gt; data/zookeeper/myid</code> and so on.</p>
+<p>Once you add each server to the <code>zookeeper.conf</code> configuration and have the appropriate <code>myid</code> entry, you can start ZooKeeper on all hosts (in the background, using nohup) with the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-daemon start zookeeper
 </code></pre>
 <blockquote>
-<p>If you are planning to deploy zookeeper with bookie on the same node, you
+<p>If you plan to deploy zookeeper with bookie on the same node, you
 need to start zookeeper by using different stats port.</p>
 </blockquote>
 <p>Start zookeeper with <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool like:</p>
 <pre><code class="hljs css language-bash">$ PULSAR_EXTRA_OPTS=<span class="hljs-string">"-Dstats_server_port=8001"</span> bin/pulsar-daemon start zookeeper
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="initializing-cluster-metadata"></a><a href="#initializing-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
-<p>Once you've deployed ZooKeeper for your cluster, there is some metadata that needs to be written to ZooKeeper for each cluster in your instance. It only needs to be written <strong>once</strong>.</p>
-<p>You can initialize this metadata using the <a href="/docs/en/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/en/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. This command can be run on any machine in your ZooKeeper cluster. Here's an example:</p>
+<h2><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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>Once you deploy ZooKeeper for your cluster, you need to write some metadata to ZooKeeper for each cluster in your instance. You only need to write <strong>once</strong>.</p>
+<p>You can initialize this metadata using the <a href="/docs/en/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/en/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. This command can be run on any machine in your ZooKeeper cluster. The following is an example:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar initialize-cluster-metadata \</span>
   --cluster pulsar-cluster-1 \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -268,7 +265,8 @@ need to start zookeeper by using different stats port.</p>
   --broker-service-url pulsar://pulsar.us-west.example.com:6650 \
   --broker-service-url-tls pulsar+ssl://pulsar.us-west.example.com:6651
 </code></pre>
-<p>As you can see from the example above, the following needs to be specified:</p>
+<p>As you can see from the example above, you
+need to specify the following:</p>
 <table>
 <thead>
 <tr><th style="text-align:left">Flag</th><th style="text-align:left">Description</th></tr>
@@ -277,10 +275,10 @@ need to start zookeeper by using different stats port.</p>
 <tr><td style="text-align:left"><code>--cluster</code></td><td style="text-align:left">A name for the cluster</td></tr>
 <tr><td style="text-align:left"><code>--zookeeper</code></td><td style="text-align:left">A &quot;local&quot; ZooKeeper connection string for the cluster. This connection string only needs to include <em>one</em> machine in the ZooKeeper cluster.</td></tr>
 <tr><td style="text-align:left"><code>--configuration-store</code></td><td style="text-align:left">The configuration store connection string for the entire instance. As with the <code>--zookeeper</code> flag, this connection string only needs to include <em>one</em> machine in the ZooKeeper cluster.</td></tr>
-<tr><td style="text-align:left"><code>--web-service-url</code></td><td style="text-align:left">The web service URL for the cluster, plus a port. This URL should be a standard DNS name. The default port is 8080 (we don't recommend using a different port).</td></tr>
-<tr><td style="text-align:left"><code>--web-service-url-tls</code></td><td style="text-align:left">If you're using <a href="/docs/en/next/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster. The default port is 8443 (we don't recommend using a different port).</td></tr>
-<tr><td style="text-align:left"><code>--broker-service-url</code></td><td style="text-align:left">A broker service URL enabling interaction with the brokers in the cluster. This URL should use the same DNS name as the web service URL but should use the <code>pulsar</code> scheme instead. The default port is 6650 (we don't recommend using a different port).</td></tr>
-<tr><td style="text-align:left"><code>--broker-service-url-tls</code></td><td style="text-align:left">If you're using <a href="/docs/en/next/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster. The default port is 6651 (we don't recommend using a different port).</td></tr>
+<tr><td style="text-align:left"><code>--web-service-url</code></td><td style="text-align:left">The web service URL for the cluster, plus a port. This URL should be a standard DNS name. The default port is 8080 (you had better not use a different port).</td></tr>
+<tr><td style="text-align:left"><code>--web-service-url-tls</code></td><td style="text-align:left">If you use <a href="/docs/en/next/security-tls-transport">TLS</a>, you also need to specify a TLS web service URL for the cluster. The default port is 8443 (you had better not use a different port).</td></tr>
+<tr><td style="text-align:left"><code>--broker-service-url</code></td><td style="text-align:left">A broker service URL enabling interaction with the brokers in the cluster. This URL should not use the same DNS name as the web service URL but should use the <code>pulsar</code> scheme instead. The default port is 6650 (you had better not use a different port).</td></tr>
+<tr><td style="text-align:left"><code>--broker-service-url-tls</code></td><td style="text-align:left">If you use <a href="/docs/en/next/security-tls-transport">TLS</a>, you also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster. The default port is 6651 (you had better not use a different port).</td></tr>
 </tbody>
 </table>
 <blockquote>
@@ -291,46 +289,46 @@ need to start zookeeper by using different stats port.</p>
 --broker-service-url-tls pulsar+ssl://host1:6651,host2:6651,host3:6651</span>
 </code></pre>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="deploying-a-bookkeeper-cluster"></a><a href="#deploying-a-bookkeeper-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 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><a href="https://bookkeeper.apache.org">BookKeeper</a> handles all persistent data storage in Pulsar. You will need to deploy a cluster of BookKeeper bookies to use Pulsar. We recommend running a <strong>3-bookie BookKeeper cluster</strong>.</p>
-<p>BookKeeper bookies can be configured using the <a href="/docs/en/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important step in configuring bookies for our purposes here is ensuring that the <a href="/docs/en/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> is set to the connection string for the ZooKeeper cluster. Here's an example:</p>
+<h2><a class="anchor" aria-hidden="true" id="deploy-a-bookkeeper-cluster"></a><a href="#deploy-a-bookkeeper-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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><a href="https://bookkeeper.apache.org">BookKeeper</a> handles all persistent data storage in Pulsar. You need to deploy a cluster of BookKeeper bookies to use Pulsar. You can choose to run a <strong>3-bookie BookKeeper cluster</strong>.</p>
+<p>You can configure BookKeeper bookies using the <a href="/docs/en/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important step in configuring bookies for our purposes here is ensuring that the <a href="/docs/en/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> is set to the connection string for the ZooKeeper cluster. The following is an example:</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">zkServers</span>=<span class="hljs-string">zk1.us-west.example.com:2181,zk2.us-west.example.com:2181,zk3.us-west.example.com:2181</span>
 </code></pre>
-<p>Once you've appropriately modified the <code>zkServers</code> parameter, you can provide any other configuration modifications you need. You can find a full listing of the available BookKeeper configuration parameters <a href="/docs/en/next/reference-configuration#bookkeeper">here</a>, although we would recommend consulting the <a href="http://bookkeeper.apache.org/docs/latest/reference/config/">BookKeeper documentation</a> for a more in-depth guide.</p>
+<p>Once you appropriately modify the <code>zkServers</code> parameter, you can provide any other configuration modifications you need. You can find a full listing of the available BookKeeper configuration parameters <a href="/docs/en/next/reference-configuration#bookkeeper">here</a>, although consulting the <a href="http://bookkeeper.apache.org/docs/latest/reference/config/">BookKeeper documentation</a> for a more in-depth guide might be a better choice.</p>
 <blockquote>
 <h5><a class="anchor" aria-hidden="true" id="notes"></a><a href="#notes" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Since Pulsar 2.1.0 release, Pulsar introduces <a href="functions-state.md">stateful function</a> for Pulsar Functions. If you would like to enable that feature,
-you need to enable table service on BookKeeper by setting following setting in <code>conf/bookkeeper.conf</code> file.</p>
+<p>Since Pulsar 2.1.0 releases, Pulsar introduces <a href="functions-state.md">stateful function</a> for Pulsar Functions. If you want to enable that feature,
+you need to enable table service on BookKeeper by doing the following setting in <code>conf/bookkeeper.conf</code> file.</p>
 <pre><code class="hljs css language-conf">extraServerComponents=org<span class="hljs-selector-class">.apache</span><span class="hljs-selector-class">.bookkeeper</span><span class="hljs-selector-class">.stream</span><span class="hljs-selector-class">.server</span><span class="hljs-selector-class">.StreamStorageLifecycleComponent</span>
 </code></pre>
 </blockquote>
-<p>Once you've applied the desired configuration in <code>conf/bookkeeper.conf</code>, you can start up a bookie on each of your BookKeeper hosts. You can start up each bookie either in the background, using <a href="https://en.wikipedia.org/wiki/Nohup">nohup</a>, or in the foreground.</p>
+<p>Once you apply the desired configuration in <code>conf/bookkeeper.conf</code>, you can start up a bookie on each of your BookKeeper hosts. You can start up each bookie either in the background, using <a href="https://en.wikipedia.org/wiki/Nohup">nohup</a>, or in the foreground.</p>
 <p>To start the bookie in the background, use the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-daemon start bookie
 </code></pre>
 <p>To start the bookie in the foreground:</p>
 <pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
 </code></pre>
-<p>You can verify that a bookie is working properly by running the <code>bookiesanity</code> command for the <a href="/docs/en/next/reference-cli-tools#shell">BookKeeper shell</a> on it:</p>
+<p>You can verify that a bookie works properly by running the <code>bookiesanity</code> command for the <a href="/docs/en/next/reference-cli-tools#shell">BookKeeper shell</a> on it:</p>
 <pre><code class="hljs css language-bash">$ bin/bookkeeper shell bookiesanity
 </code></pre>
-<p>This will create an ephemeral BookKeeper ledger on the local bookie, write a few entries, read them back, and finally delete the ledger.</p>
-<p>After you have started all the bookies, you can use <code>simpletest</code> command for <a href="/docs/en/next/reference-cli-tools#shell">BookKeeper shell</a> on any bookie node, to
+<p>This command creates an ephemeral BookKeeper ledger on the local bookie, writes a few entries, reads them back, and finally deletes the ledger.</p>
+<p>After you start all the bookies, you can use <code>simpletest</code> command for <a href="/docs/en/next/reference-cli-tools#shell">BookKeeper shell</a> on any bookie node, to
 verify all the bookies in the cluster are up running.</p>
 <pre><code class="hljs css language-bash">$ bin/bookkeeper shell simpletest --ensemble &lt;num-bookies&gt; --writeQuorum &lt;num-bookies&gt; --ackQuorum &lt;num-bookies&gt; --numEntries &lt;num-entries&gt;
 </code></pre>
-<p>This command will create a <code>num-bookies</code> sized ledger on the cluster, write a few entries, and finally delete the ledger.</p>
-<h2><a class="anchor" aria-hidden="true" id="deploying-pulsar-brokers"></a><a href="#deploying-pulsar-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.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>Pulsar brokers are the last thing you need to deploy in your Pulsar cluster. Brokers handle Pulsar messages and provide Pulsar's administrative interface. We recommend running <strong>3 brokers</strong>, one for each machine that's already running a BookKeeper bookie.</p>
-<h3><a class="anchor" aria-hidden="true" id="configuring-brokers"></a><a href="#configuring-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p>The most important element of broker configuration is ensuring that each broker is aware of the ZooKeeper cluster that you've deployed. Make sure that the <a href="/docs/en/next/reference-configuration#broker-zookeeperServers"><code>zookeeperServers</code></a> and <a href="/docs/en/next/reference-configuration#broker-configurationStoreServers"><code>configurationStoreServers</code></a> parameters. In this case, since we only have 1 cluster and no configuration store setup, the <code>c [...]
+<p>This command creates a <code>num-bookies</code> sized ledger on the cluster, writes a few entries, and finally deletes the ledger.</p>
+<h2><a class="anchor" aria-hidden="true" id="deploy-pulsar-brokers"></a><a href="#deploy-pulsar-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<p>Pulsar brokers are the last thing you need to deploy in your Pulsar cluster. Brokers handle Pulsar messages and provide the administrative interface of Pulsar. A good choice is to run <strong>3 brokers</strong>, one for each machine that already runs a BookKeeper bookie.</p>
+<h3><a class="anchor" aria-hidden="true" id="configure-brokers"></a><a href="#configure-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>The most important element of broker configuration is ensuring that each broker is aware of the ZooKeeper cluster that you have deployed. Make sure that the <a href="/docs/en/next/reference-configuration#broker-zookeeperServers"><code>zookeeperServers</code></a> and <a href="/docs/en/next/reference-configuration#broker-configurationStoreServers"><code>configurationStoreServers</code></a> parameters. In this case, since you only have 1 cluster and no configuration store setup, the <cod [...]
 <pre><code class="hljs css language-properties"><span class="hljs-attr">zookeeperServers</span>=<span class="hljs-string">zk1.us-west.example.com:2181,zk2.us-west.example.com:2181,zk3.us-west.example.com:2181</span>
 <span class="hljs-attr">configurationStoreServers</span>=<span class="hljs-string">zk1.us-west.example.com:2181,zk2.us-west.example.com:2181,zk3.us-west.example.com:2181</span>
 </code></pre>
-<p>You also need to specify the cluster name (matching the name that you provided when <a href="#initializing-cluster-metadata">initializing the cluster's metadata</a>):</p>
+<p>You also need to specify the cluster name (matching the name that you provide when you <a href="#initialize-cluster-metadata">initialize the metadata of the cluster</a>):</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">clusterName</span>=<span class="hljs-string">pulsar-cluster-1</span>
 </code></pre>
-<p>In addition, you need to match the broker and web service ports provided when initializing the cluster's metadata (especially when using a different port from default):</p>
+<p>In addition, you need to match the broker and web service ports provided when you initialize the metadata of the cluster (especially when you use a different port from default):</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">brokerServicePort</span>=<span class="hljs-string">6650</span>
 <span class="hljs-attr">brokerServicePortTls</span>=<span class="hljs-string">6651</span>
 <span class="hljs-attr">webServicePort</span>=<span class="hljs-string">8080</span>
@@ -348,29 +346,29 @@ verify all the bookies in the cluster are up running.</p>
 <span class="hljs-attr">managedLedgerDefaultAckQuorum</span>=<span class="hljs-string">1</span>
 </code></pre>
 </blockquote>
-<h3><a class="anchor" aria-hidden="true" id="enabling-pulsar-functions-optional"></a><a href="#enabling-pulsar-functions-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5 [...]
+<h3><a class="anchor" aria-hidden="true" id="enable-pulsar-functions-optional"></a><a href="#enable-pulsar-functions-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.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>If you want to enable <a href="/docs/en/next/functions-overview">Pulsar Functions</a>, you can follow the instructions as below:</p>
 <ol>
 <li><p>Edit <code>conf/broker.conf</code> to enable functions worker, by setting <code>functionsWorkerEnabled</code> to <code>true</code>.</p>
 <pre><code class="hljs css language-conf"><span class="hljs-attr">functionsWorkerEnabled</span>=<span class="hljs-literal">true</span>
 </code></pre></li>
-<li><p>Edit <code>conf/functions_worker.yml</code> and set <code>pulsarFunctionsCluster</code> to the cluster name that you provided when <a href="#initializing-cluster-metadata">initializing the cluster's metadata</a>.</p>
+<li><p>Edit <code>conf/functions_worker.yml</code> and set <code>pulsarFunctionsCluster</code> to the cluster name that you provide when you <a href="#initialize-cluster-metadata">initialize the metadata of the cluster</a>.</p>
 <pre><code class="hljs css language-conf">pulsarFunctionsCluster: pulsar-cluster<span class="hljs-number">-1</span>
 </code></pre></li>
 </ol>
-<p>If you would like to learn more options about deploying functions worker, please checkout <a href="/docs/en/next/functions-worker">Deploy and manage functions worker</a>.</p>
-<h3><a class="anchor" aria-hidden="true" id="starting-brokers"></a><a href="#starting-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 then provide any other configuration changes that you'd like in the <a href="/docs/en/next/reference-configuration#broker"><code>conf/broker.conf</code></a> file. Once you've decided on a configuration, you can start up the brokers for your Pulsar cluster. Like ZooKeeper and BookKeeper, brokers can be started either in the foreground or in the background, using nohup.</p>
+<p>If you want to learn more options about deploying functions worker, checkout <a href="/docs/en/next/functions-worker">Deploy and manage functions worker</a>.</p>
+<h3><a class="anchor" aria-hidden="true" id="start-brokers"></a><a href="#start-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>You can then provide any other configuration changes that you want in the <a href="/docs/en/next/reference-configuration#broker"><code>conf/broker.conf</code></a> file. Once you decide on a configuration, you can start up the brokers for your Pulsar cluster. Like ZooKeeper and BookKeeper, you can start brokers either in the foreground or in the background, using nohup.</p>
 <p>You can start a broker in the foreground using the <a href="/docs/en/next/reference-cli-tools#pulsar-broker"><code>pulsar broker</code></a> command:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar broker
 </code></pre>
 <p>You can start a broker in the background using the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-daemon start broker
 </code></pre>
-<p>Once you've succesfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!</p>
-<h2><a class="anchor" aria-hidden="true" id="connecting-to-the-running-cluster"></a><a href="#connecting-to-the-running-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
-<p>Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the <a href="/docs/en/next/reference-cli-tools#pulsar-client"><code>pulsar-client</code></a> tool, which is included with the Pulsar binary package. The <code>pulsar-client</code> tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is runnning properly.</p>
-<p>To use the <code>pulsar-client</code> tool, first modify the client configuration file in <a href="/docs/en/next/reference-configuration#client"><code>conf/client.conf</code></a> in your binary package. You'll need to change the values for <code>webServiceUrl</code> and <code>brokerServiceUrl</code>, substituting <code>localhost</code> (which is the default), with the DNS name that you've assigned to your broker/bookie hosts. Here's an example:</p>
+<p>Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!</p>
+<h2><a class="anchor" aria-hidden="true" id="connect-to-the-running-cluster"></a><a href="#connect-to-the-running-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 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>Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the <a href="/docs/en/next/reference-cli-tools#pulsar-client"><code>pulsar-client</code></a> tool, which is included with the Pulsar binary package. The <code>pulsar-client</code> tool can publish messages to and consume messages from Pulsar topics and thus provide a simple way to make sure that your cluster runs properly.</p>
+<p>To use the <code>pulsar-client</code> tool, first modify the client configuration file in <a href="/docs/en/next/reference-configuration#client"><code>conf/client.conf</code></a> in your binary package. You need to change the values for <code>webServiceUrl</code> and <code>brokerServiceUrl</code>, substituting <code>localhost</code> (which is the default), with the DNS name that you assign to your broker/bookie hosts. The following is an example:</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">webServiceUrl</span>=<span class="hljs-string">http://us-west.example.com:8080</span>
 <span class="hljs-attr">brokerServiceurl</span>=<span class="hljs-string">pulsar://us-west.example.com:6650</span>
 </code></pre>
@@ -380,29 +378,29 @@ verify all the bookies in the cluster are up running.</p>
 <span class="hljs-attr">brokerServiceurl</span>=<span class="hljs-string">pulsar://host1:6650,host2:6650,host3:6650</span>
 </code></pre>
 </blockquote>
-<p>Once you've done that, you can publish a message to Pulsar topic:</p>
+<p>Once you do that, you can publish a message to Pulsar topic:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client produce \
   persistent://public/default/<span class="hljs-built_in">test</span> \
   -n 1 \
   -m <span class="hljs-string">"Hello Pulsar"</span>
 </code></pre>
 <blockquote>
-<p>You may need to use a different cluster name in the topic if you specified a cluster name different from <code>pulsar-cluster-1</code>.</p>
+<p>You may need to use a different cluster name in the topic if you specify a cluster name different from <code>pulsar-cluster-1</code>.</p>
 </blockquote>
-<p>This will publish a single message to the Pulsar topic. In addition, you can subscribe the Pulsar topic in a different terminal before publishing messages as below:</p>
+<p>This command publishes a single message to the Pulsar topic. In addition, you can subscribe the Pulsar topic in a different terminal before publishing messages as below:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client consume \
   persistent://public/default/<span class="hljs-built_in">test</span> \
   -n 100 \
   -s <span class="hljs-string">"consumer-test"</span> \
   -t <span class="hljs-string">"Exclusive"</span>
 </code></pre>
-<p>Once the message above has been successfully published to the topic, you should see it in the standard output:</p>
+<p>Once you successfully publish the message above to the topic, you should see it in the standard output:</p>
 <pre><code class="hljs css language-bash">----- got message -----
 Hello Pulsar
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="running-functions"></a><a href="#running-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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- [...]
+<h2><a class="anchor" aria-hidden="true" id="run-functions"></a><a href="#run-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 [...]
 <blockquote>
-<p>If you have <a href="#enabling-pulsar-functions-optional">enabled</a> Pulsar Functions, you can also tryout pulsar functions now.</p>
+<p>If you have <a href="#enable-pulsar-functions-optional">enabled</a> Pulsar Functions, you can also tryout pulsar functions now.</p>
 </blockquote>
 <p>Create a ExclamationFunction <code>exclamation</code>.</p>
 <pre><code class="hljs css language-bash">bin/pulsar-admin <span class="hljs-built_in">functions</span> create \
@@ -414,13 +412,13 @@ Hello Pulsar
   --namespace default \
   --name exclamation
 </code></pre>
-<p>Check if the function is running as expected by <a href="functions-deploying.md#triggering-pulsar-functions">triggering</a> the function.</p>
+<p>Check if the function runs as expected by <a href="functions-deploying.md#triggering-pulsar-functions">triggering</a> the function.</p>
 <pre><code class="hljs css language-bash">bin/pulsar-admin <span class="hljs-built_in">functions</span> trigger --name exclamation --trigger-value <span class="hljs-string">"hello world"</span>
 </code></pre>
-<p>You will see output as below:</p>
+<p>You can see the 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/next/deploy-kubernetes"><span class="arrow-prev">← </span><span>Kubernetes</span></a><a class="docs-next button" href="/docs/en/next/deploy-bare-metal-multi-cluster"><span>Bare metal multi-cluster</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#preparation">Preparation</a><ul class="toc-headings"><li><a href="#requi [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/deploy-kubernetes"><span class="arrow-prev">← </span><span>Kubernetes</span></a><a class="docs-next button" href="/docs/en/next/deploy-bare-metal-multi-cluster"><span>Bare metal multi-cluster</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#preparation">Preparation</a><ul class="toc-headings"><li><a href="#requi [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/deploy-dcos.html b/content/docs/en/next/deploy-dcos.html
index 5844dcc..e73e8d3 100644
--- a/content/docs/en/next/deploy-dcos.html
+++ b/content/docs/en/next/deploy-dcos.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/deploy-dcos/index.html b/content/docs/en/next/deploy-dcos/index.html
index 5844dcc..e73e8d3 100644
--- a/content/docs/en/next/deploy-dcos/index.html
+++ b/content/docs/en/next/deploy-dcos/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/deploy-kubernetes.html b/content/docs/en/next/deploy-kubernetes.html
index 6c9a671..b567a49 100644
--- a/content/docs/en/next/deploy-kubernetes.html
+++ b/content/docs/en/next/deploy-kubernetes.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/deploy-kubernetes/index.html b/content/docs/en/next/deploy-kubernetes/index.html
index 6c9a671..b567a49 100644
--- a/content/docs/en/next/deploy-kubernetes/index.html
+++ b/content/docs/en/next/deploy-kubernetes/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/deploy-monitoring.html b/content/docs/en/next/deploy-monitoring.html
index 0c520a7..22dfa6f 100644
--- a/content/docs/en/next/deploy-monitoring.html
+++ b/content/docs/en/next/deploy-monitoring.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/deploy-monitoring/index.html b/content/docs/en/next/deploy-monitoring/index.html
index 0c520a7..22dfa6f 100644
--- a/content/docs/en/next/deploy-monitoring/index.html
+++ b/content/docs/en/next/deploy-monitoring/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/develop-binary-protocol.html b/content/docs/en/next/develop-binary-protocol.html
index 396b1ae..51be760 100644
--- a/content/docs/en/next/develop-binary-protocol.html
+++ b/content/docs/en/next/develop-binary-protocol.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/develop-binary-protocol/index.html b/content/docs/en/next/develop-binary-protocol/index.html
index 396b1ae..51be760 100644
--- a/content/docs/en/next/develop-binary-protocol/index.html
+++ b/content/docs/en/next/develop-binary-protocol/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/develop-cpp.html b/content/docs/en/next/develop-cpp.html
index 7f756c6..5d9a081 100644
--- a/content/docs/en/next/develop-cpp.html
+++ b/content/docs/en/next/develop-cpp.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/develop-cpp/index.html b/content/docs/en/next/develop-cpp/index.html
index 7f756c6..5d9a081 100644
--- a/content/docs/en/next/develop-cpp/index.html
+++ b/content/docs/en/next/develop-cpp/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/develop-load-manager.html b/content/docs/en/next/develop-load-manager.html
index 153d365..a413853 100644
--- a/content/docs/en/next/develop-load-manager.html
+++ b/content/docs/en/next/develop-load-manager.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/develop-load-manager/index.html b/content/docs/en/next/develop-load-manager/index.html
index 153d365..a413853 100644
--- a/content/docs/en/next/develop-load-manager/index.html
+++ b/content/docs/en/next/develop-load-manager/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/develop-tools.html b/content/docs/en/next/develop-tools.html
index f8c6b1b..25cb119 100644
--- a/content/docs/en/next/develop-tools.html
+++ b/content/docs/en/next/develop-tools.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/develop-tools/index.html b/content/docs/en/next/develop-tools/index.html
index f8c6b1b..25cb119 100644
--- a/content/docs/en/next/develop-tools/index.html
+++ b/content/docs/en/next/develop-tools/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/functions-cli.html b/content/docs/en/next/functions-cli.html
index a7876fe..7610508 100644
--- a/content/docs/en/next/functions-cli.html
+++ b/content/docs/en/next/functions-cli.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/functions-cli/index.html b/content/docs/en/next/functions-cli/index.html
index a7876fe..7610508 100644
--- a/content/docs/en/next/functions-cli/index.html
+++ b/content/docs/en/next/functions-cli/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/functions-debug.html b/content/docs/en/next/functions-debug.html
index e9afd23..0513749 100644
--- a/content/docs/en/next/functions-debug.html
+++ b/content/docs/en/next/functions-debug.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/functions-debug/index.html b/content/docs/en/next/functions-debug/index.html
index e9afd23..0513749 100644
--- a/content/docs/en/next/functions-debug/index.html
+++ b/content/docs/en/next/functions-debug/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/functions-deploy.html b/content/docs/en/next/functions-deploy.html
index f1c1b9d..ccabac9 100644
--- a/content/docs/en/next/functions-deploy.html
+++ b/content/docs/en/next/functions-deploy.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/functions-deploy/index.html b/content/docs/en/next/functions-deploy/index.html
index f1c1b9d..ccabac9 100644
--- a/content/docs/en/next/functions-deploy/index.html
+++ b/content/docs/en/next/functions-deploy/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/functions-develop.html b/content/docs/en/next/functions-develop.html
index 496aeca..2c6b5a9 100644
--- a/content/docs/en/next/functions-develop.html
+++ b/content/docs/en/next/functions-develop.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/functions-develop/index.html b/content/docs/en/next/functions-develop/index.html
index 496aeca..2c6b5a9 100644
--- a/content/docs/en/next/functions-develop/index.html
+++ b/content/docs/en/next/functions-develop/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/functions-overview.html b/content/docs/en/next/functions-overview.html
index 666bb59..a25517d 100644
--- a/content/docs/en/next/functions-overview.html
+++ b/content/docs/en/next/functions-overview.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/functions-overview/index.html b/content/docs/en/next/functions-overview/index.html
index 666bb59..a25517d 100644
--- a/content/docs/en/next/functions-overview/index.html
+++ b/content/docs/en/next/functions-overview/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/functions-runtime.html b/content/docs/en/next/functions-runtime.html
index b3f881a..fc28d4e 100644
--- a/content/docs/en/next/functions-runtime.html
+++ b/content/docs/en/next/functions-runtime.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/functions-runtime/index.html b/content/docs/en/next/functions-runtime/index.html
index b3f881a..fc28d4e 100644
--- a/content/docs/en/next/functions-runtime/index.html
+++ b/content/docs/en/next/functions-runtime/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/functions-worker.html b/content/docs/en/next/functions-worker.html
index e2108e3..15aa85a 100644
--- a/content/docs/en/next/functions-worker.html
+++ b/content/docs/en/next/functions-worker.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/functions-worker/index.html b/content/docs/en/next/functions-worker/index.html
index e2108e3..15aa85a 100644
--- a/content/docs/en/next/functions-worker/index.html
+++ b/content/docs/en/next/functions-worker/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/io-cdc-canal.html b/content/docs/en/next/io-cdc-canal.html
index 628b3d0..ba4e5c3 100644
--- a/content/docs/en/next/io-cdc-canal.html
+++ b/content/docs/en/next/io-cdc-canal.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CDC Canal Connector · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="### Source Configuration Options"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="CDC Canal Connector · Apache Pulsa [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Canal source connector · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="The Canal source connector pulls messages from MySQL to Pulsar topics."/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" co [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,25 +18,31 @@
             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-cdc-canal.md" target="_bla [...]
-<p>The Configuration is mostly related to Canal task config.</p>
+      </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-cdc-canal.md" target="_bla [...]
+<p>This guide explains how to congifure and use Canal source connector.</p>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>The configuration of Canal source connector has the following parameters.</p>
+<h3><a class="anchor" aria-hidden="true" id="parameter"></a><a href="#parameter" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 [...]
 <table>
 <thead>
 <tr><th>Name</th><th>Required</th><th>Default</th><th>Description</th></tr>
 </thead>
 <tbody>
-<tr><td><code>zkServers</code></td><td><code>false</code></td><td><code>127.0.0.1:2181</code></td><td><code>The address and port of the zookeeper . if canal server configured to cluster mode</code></td></tr>
-<tr><td><code>batchSize</code></td><td><code>true</code></td><td><code>5120</code></td><td><code>Take 5120 records from the canal server in batches</code></td></tr>
-<tr><td><code>username</code></td><td><code>false</code></td><td>``</td><td><code>Canal server account, not MySQL</code></td></tr>
-<tr><td><code>password</code></td><td><code>false</code></td><td>``</td><td><code>Canal server password, not MySQL</code></td></tr>
-<tr><td><code>cluster</code></td><td><code>false</code></td><td><code>false</code></td><td><code>Decide whether to open cluster mode based on canal server configuration, true: cluster mode, false: standalone mode</code></td></tr>
-<tr><td><code>singleHostname</code></td><td><code>false</code></td><td><code>127.0.0.1</code></td><td><code>The address of canal server</code></td></tr>
-<tr><td><code>singlePort</code></td><td><code>false</code></td><td><code>11111</code></td><td><code>The port of canal server</code></td></tr>
+<tr><td><code>username</code></td><td>true</td><td>None</td><td>Canal server account (not MySQL).</td></tr>
+<tr><td><code>password</code></td><td>true</td><td>None</td><td>Canal server password (not MySQL).</td></tr>
+<tr><td><code>destination</code></td><td>true</td><td>None</td><td>Source destination that Canal source connector connects to.</td></tr>
+<tr><td><code>singleHostname</code></td><td>false</td><td>None</td><td>Canal server address.</td></tr>
+<tr><td><code>singlePort</code></td><td>false</td><td>None</td><td>Canal server port.</td></tr>
+<tr><td><code>cluster</code></td><td>true</td><td>false</td><td>Whether to enable cluster mode based on Canal server configuration or not.<br/><br/><li>true: <strong>cluster</strong> mode.<br/>If set to true, it talks to <code>zkServers</code> to figure out the actual database host.<br/><br/><li>false: <strong>standalone</strong> mode.<br/>If set to false, it connects to the database specified by <code>singleHostname</code> and <code>singlePort</code>.</td></tr>
+<tr><td><code>zkServers</code></td><td>true</td><td>None</td><td>Address and port of the Zookeeper that Canal source connector talks to figure out the actual database host.</td></tr>
+<tr><td><code>batchSize</code></td><td>false</td><td>1000</td><td>Batch size to fetch from Canal.</td></tr>
 </tbody>
 </table>
-<h3><a class="anchor" aria-hidden="true" id="configuration-example"></a><a href="#configuration-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 [...]
-<p>Here is a configuration Json example:</p>
-<pre><code class="hljs css language-$json">{
+<h3><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>Before using the Canal connector, you can create a configuration file through one of the following methods.</p>
+<ul>
+<li><p>JSON</p>
+<pre><code class="hljs css language-json">{
     <span class="hljs-attr">"zkServers"</span>: <span class="hljs-string">"127.0.0.1:2181"</span>,
     <span class="hljs-attr">"batchSize"</span>: <span class="hljs-string">"5120"</span>,
     <span class="hljs-attr">"destination"</span>: <span class="hljs-string">"example"</span>,
@@ -46,134 +52,121 @@
     <span class="hljs-attr">"singleHostname"</span>: <span class="hljs-string">"127.0.0.1"</span>,
     <span class="hljs-attr">"singlePort"</span>: <span class="hljs-string">"11111"</span>,
 }
-</code></pre>
-<p>You could also find the yaml example in this <a href="https://github.com/apache/pulsar/blob/master/pulsar-io/canal/src/main/resources/canal-mysql-source-config.yaml">file</a>, which has similar content below:</p>
-<pre><code class="hljs css language-$yaml"><span class="hljs-symbol">configs:</span>
-<span class="hljs-symbol">    zkServers:</span> <span class="hljs-string">"127.0.0.1:2181"</span>
-<span class="hljs-symbol">    batchSize:</span> <span class="hljs-string">"5120"</span>
-<span class="hljs-symbol">    destination:</span> <span class="hljs-string">"example"</span>
-<span class="hljs-symbol">    username:</span> <span class="hljs-string">""</span>
-<span class="hljs-symbol">    password:</span> <span class="hljs-string">""</span>
-<span class="hljs-symbol">    cluster:</span> false
-<span class="hljs-symbol">    singleHostname:</span> <span class="hljs-string">"127.0.0.1"</span>
-<span class="hljs-symbol">    singlePort:</span> <span class="hljs-string">"11111"</span>
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="usage-example"></a><a href="#usage-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-.8 [...]
-<p>Here is a simple example to store MySQL change data using above example config.</p>
-<ul>
-<li>Start a MySQL server</li>
-</ul>
-<pre><code class="hljs css language-$bash">docker pull mysql:5.7
-docker <span class="hljs-builtin-name">run</span> -d -it --rm --name pulsar-mysql -p 3306:3306 -e <span class="hljs-attribute">MYSQL_ROOT_PASSWORD</span>=canal -e <span class="hljs-attribute">MYSQL_USER</span>=mysqluser -e <span class="hljs-attribute">MYSQL_PASSWORD</span>=mysqlpw mysql:5.7
-</code></pre>
-<ul>
-<li>Modify configuration files mysqld.cnf</li>
+</code></pre></li>
+<li><p>YAML</p>
+<p>You can create a YAML file and copy the <a href="https://github.com/apache/pulsar/blob/master/pulsar-io/canal/src/main/resources/canal-mysql-source-config.yaml">contents</a> below to your YAML file.</p>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">configs:</span>
+<span class="hljs-attr">    zkServers:</span> <span class="hljs-string">"127.0.0.1:2181"</span>
+<span class="hljs-attr">    batchSize:</span> <span class="hljs-string">"5120"</span>
+<span class="hljs-attr">    destination:</span> <span class="hljs-string">"example"</span>
+<span class="hljs-attr">    username:</span> <span class="hljs-string">""</span>
+<span class="hljs-attr">    password:</span> <span class="hljs-string">""</span>
+<span class="hljs-attr">    cluster:</span> <span class="hljs-literal">false</span>
+<span class="hljs-attr">    singleHostname:</span> <span class="hljs-string">"127.0.0.1"</span>
+<span class="hljs-attr">    singlePort:</span> <span class="hljs-string">"11111"</span>
+</code></pre></li>
 </ul>
-<pre><code class="hljs"><span class="hljs-section">[mysqld]</span>
-<span class="hljs-attr">pid-file</span>    = /var/run/mysqld/mysqld.pid
-<span class="hljs-attr">socket</span>      = /var/run/mysqld/mysqld.sock
-<span class="hljs-attr">datadir</span>     = /var/lib/mysql
+<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>Here is an example of storing MySQL data using the configuration file as above.</p>
+<ol>
+<li><p>Start a MySQL server.</p>
+<pre><code class="hljs css language-bash">$ docker pull mysql:5.7
+$ docker run -d -it --rm --name pulsar-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=canal -e MYSQL_USER=mysqluser -e MYSQL_PASSWORD=mysqlpw mysql:5.7
+</code></pre></li>
+<li><p>Create a configuration file <code>mysqld.cnf</code>.</p>
+<pre><code class="hljs css language-bash">[mysqld]
+pid-file    = /var/run/mysqld/mysqld.pid
+socket      = /var/run/mysqld/mysqld.sock
+datadir     = /var/lib/mysql
 <span class="hljs-comment">#log-error  = /var/log/mysql/error.log</span>
 <span class="hljs-comment"># By default we only accept connections from localhost</span>
 <span class="hljs-comment">#bind-address   = 127.0.0.1</span>
 <span class="hljs-comment"># Disabling symbolic-links is recommended to prevent assorted security risks</span>
-<span class="hljs-attr">symbolic-links</span>=<span class="hljs-number">0</span>
-<span class="hljs-attr">log-bin</span>=mysql-bin
-<span class="hljs-attr">binlog-format</span>=ROW
-<span class="hljs-attr">server_id</span>=<span class="hljs-number">1</span>
-</code></pre>
-<ul>
-<li>Copy file to mysql server from local and restart mysql server</li>
-</ul>
-<pre><code class="hljs css language-$bash">docker cp mysqld<span class="hljs-selector-class">.cnf</span> pulsar-mysql:/etc/mysql/mysql<span class="hljs-selector-class">.conf</span><span class="hljs-selector-class">.d</span>/
-docker restart pulsar-mysql
-</code></pre>
-<ul>
-<li>Create test database in mysql server</li>
-</ul>
-<pre><code class="hljs css language-$bash">docker exec -it pulsar-mysql /bin/bash
-mysql -h 127.0.0.1 -uroot -pcanal -e '<span class="hljs-keyword">create</span> <span class="hljs-keyword">database</span> <span class="hljs-keyword">test</span>;'
-</code></pre>
-<ul>
-<li>Start canal server and connect mysql server</li>
-</ul>
-<pre><code class="hljs">docker pull canal/canal-server:v1.<span class="hljs-number">1.2</span>
-docker run -d -it --link pulsar-mysql -e canal<span class="hljs-selector-class">.auto</span><span class="hljs-selector-class">.scan</span>=false -e canal.destinations=test -e canal<span class="hljs-selector-class">.instance</span><span class="hljs-selector-class">.master</span><span class="hljs-selector-class">.address</span>=pulsar-mysql:<span class="hljs-number">3306</span> -e canal<span class="hljs-selector-class">.instance</span><span class="hljs-selector-class">.dbUsername</span>=ro [...]
-</code></pre>
-<ul>
-<li>Start pulsar standalone</li>
-</ul>
-<pre><code class="hljs css language-$bash">docker pull apachepulsar/pulsar:<span class="hljs-number">2.3</span><span class="hljs-number">.0</span>
-docker run -d -it --link pulsar-canal-server -p <span class="hljs-number">6650</span>:<span class="hljs-number">6650</span> -p <span class="hljs-number">8080</span>:<span class="hljs-number">8080</span> -v $PWD/data:/pulsar/data --name pulsar-standalone apachepulsar/pulsar:<span class="hljs-number">2.3</span><span class="hljs-number">.0</span> bin/pulsar standalone
-</code></pre>
-<ul>
-<li><p>Start pulsar-io in standalone</p></li>
-<li><p>Config file canal-mysql-source-config.yaml</p></li>
-</ul>
-<pre><code class="hljs css language-$yaml"><span class="hljs-symbol">configs:</span>
-<span class="hljs-symbol">    zkServers:</span> <span class="hljs-string">""</span>
-<span class="hljs-symbol">    batchSize:</span> <span class="hljs-string">"5120"</span>
-<span class="hljs-symbol">    destination:</span> <span class="hljs-string">"test"</span>
-<span class="hljs-symbol">    username:</span> <span class="hljs-string">""</span>
-<span class="hljs-symbol">    password:</span> <span class="hljs-string">""</span>
-<span class="hljs-symbol">    cluster:</span> false
-<span class="hljs-symbol">    singleHostname:</span> <span class="hljs-string">"pulsar-canal-server"</span>
-<span class="hljs-symbol">    singlePort:</span> <span class="hljs-string">"11111"</span>
-</code></pre>
-<ul>
-<li>Consumer file pulsar-client.py for test</li>
-</ul>
-<pre><code class="hljs"><span class="hljs-keyword">import</span> pulsar
+symbolic-links=0
+<span class="hljs-built_in">log</span>-bin=mysql-bin
+binlog-format=ROW
+server_id=1
+</code></pre></li>
+<li><p>Copy the configuration file <code>mysqld.cnf</code> to MySQL server.</p>
+<pre><code class="hljs css language-bash">$ docker cp mysqld.cnf pulsar-mysql:/etc/mysql/mysql.conf.d/
+</code></pre></li>
+<li><p>Restart the MySQL server.</p>
+<pre><code class="hljs css language-bash">$ docker restart pulsar-mysql
+</code></pre></li>
+<li><p>Create a test database in MySQL server.</p>
+<pre><code class="hljs css language-bash">$ docker <span class="hljs-built_in">exec</span> -it pulsar-mysql /bin/bash
+$ mysql -h 127.0.0.1 -uroot -pcanal -e <span class="hljs-string">'create database test;'</span>
+</code></pre></li>
+<li><p>Start a Canal server and connect to MySQL server.</p>
+<pre><code class="hljs">$ docker pull canal/canal-server:v1.<span class="hljs-number">1.2</span>
+$ docker run -d -it --link pulsar-mysql -e canal<span class="hljs-selector-class">.auto</span><span class="hljs-selector-class">.scan</span>=false -e canal.destinations=test -e canal<span class="hljs-selector-class">.instance</span><span class="hljs-selector-class">.master</span><span class="hljs-selector-class">.address</span>=pulsar-mysql:<span class="hljs-number">3306</span> -e canal<span class="hljs-selector-class">.instance</span><span class="hljs-selector-class">.dbUsername</span>= [...]
+</code></pre></li>
+<li><p>Start Pulsar standalone.</p>
+<pre><code class="hljs css language-bash">$ docker pull apachepulsar/pulsar:2.3.0
+$ docker run -d -it --link pulsar-canal-server -p 6650:6650 -p 8080:8080 -v <span class="hljs-variable">$PWD</span>/data:/pulsar/data --name pulsar-standalone apachepulsar/pulsar:2.3.0 bin/pulsar standalone
+</code></pre></li>
+<li><p>Modify the configuration file <code>canal-mysql-source-config.yaml</code>.</p>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">configs:</span>
+<span class="hljs-attr">    zkServers:</span> <span class="hljs-string">""</span>
+<span class="hljs-attr">    batchSize:</span> <span class="hljs-string">"5120"</span>
+<span class="hljs-attr">    destination:</span> <span class="hljs-string">"test"</span>
+<span class="hljs-attr">    username:</span> <span class="hljs-string">""</span>
+<span class="hljs-attr">    password:</span> <span class="hljs-string">""</span>
+<span class="hljs-attr">    cluster:</span> <span class="hljs-literal">false</span>
+<span class="hljs-attr">    singleHostname:</span> <span class="hljs-string">"pulsar-canal-server"</span>
+<span class="hljs-attr">    singlePort:</span> <span class="hljs-string">"11111"</span>
+</code></pre></li>
+<li><p>Create a consumer file <code>pulsar-client.py</code>.</p>
+<pre><code class="hljs css language-python"><span class="hljs-keyword">import</span> pulsar
 
-client = pulsar.<span class="hljs-built_in">Client</span>(<span class="hljs-string">'pulsar://localhost:6650'</span>)
+client = pulsar.Client(<span class="hljs-string">'pulsar://localhost:6650'</span>)
 consumer = client.subscribe(<span class="hljs-string">'my-topic'</span>,
                             subscription_name=<span class="hljs-string">'my-sub'</span>)
 
-<span class="hljs-built_in">while</span> True:
+<span class="hljs-keyword">while</span> <span class="hljs-literal">True</span>:
     msg = consumer.receive()
-    <span class="hljs-built_in">print</span>(<span class="hljs-string">"Received message: '%s'"</span> % msg.data())
+    print(<span class="hljs-string">"Received message: '%s'"</span> % msg.data())
     consumer.acknowledge(msg)
 
-client.<span class="hljs-built_in">close</span>()
-</code></pre>
-<ul>
-<li>Copy config file and test file to pulsar server</li>
-</ul>
-<pre><code class="hljs css language-$bash">docker <span class="hljs-keyword">cp</span> canal-mysql-<span class="hljs-keyword">source</span>-config.yaml pulsar-standalone:/pulsar/<span class="hljs-keyword">conf</span>/
-docker <span class="hljs-keyword">cp</span> pulsar-client.<span class="hljs-keyword">py</span> pulsar-standalone:/pulsar/
-</code></pre>
-<ul>
-<li>Download canal connector and start canal connector</li>
-</ul>
-<pre><code class="hljs css language-$bash">docker exec -it pulsar-standalone <span class="hljs-string">/bin/bash</span>
-wget http:<span class="hljs-string">//apache.01link.hk/pulsar/pulsar-2.3.0/connectors/pulsar-io-canal-2.3.0.nar</span> -P connectors
-<span class="hljs-string">./bin/pulsar-admin</span> sources localrun <span class="hljs-params">--archive</span> <span class="hljs-string">./connectors/pulsar-io-canal-2.3.0.nar</span> <span class="hljs-params">--classname</span> org.apache.pulsar.io.canal.CanalStringSource <span class="hljs-params">--tenant</span> public <span class="hljs-params">--namespace</span> default <span class="hljs-params">--name</span> canal <span class="hljs-params">--destination-topic-name</span> my-topic <sp [...]
-</code></pre>
-<ul>
-<li>Consumption data</li>
-</ul>
-<pre><code class="hljs css language-$bash"><span class="hljs-symbol">docker</span> exec -<span class="hljs-keyword">it </span>pulsar-standalone /<span class="hljs-keyword">bin/bash
-</span><span class="hljs-symbol">python</span> pulsar-client.py
-</code></pre>
-<ul>
-<li>Open another window for login mysql server</li>
-</ul>
-<pre><code class="hljs css language-$bash">docker exec -it pulsar-mysql /bin/bash
-mysql -h <span class="hljs-number">127.0</span><span class="hljs-number">.0</span><span class="hljs-number">.1</span> -uroot -pcanal
-</code></pre>
-<ul>
-<li>Create table and insert, delete, update data in mysql server</li>
-</ul>
-<pre><code class="hljs">mysql&gt; use test;
+client.close()
+</code></pre></li>
+<li><p>Copy the configuration file <code>canal-mysql-source-config.yaml</code> and the consumer file  <code>pulsar-client.py</code> to Pulsar server.</p>
+<pre><code class="hljs css language-bash">$ docker cp canal-mysql-source-config.yaml pulsar-standalone:/pulsar/conf/
+$ docker cp pulsar-client.py pulsar-standalone:/pulsar/
+</code></pre></li>
+<li><p>Download a Canal connector and start it.</p>
+<pre><code class="hljs css language-bash">$ docker <span class="hljs-built_in">exec</span> -it pulsar-standalone /bin/bash
+$ wget http://apache.01link.hk/pulsar/pulsar-2.3.0/connectors/pulsar-io-canal-2.3.0.nar -P connectors
+$ ./bin/pulsar-admin sources localrun \
+--archive ./connectors/pulsar-io-canal-2.3.0.nar \
+--classname org.apache.pulsar.io.canal.CanalStringSource \
+--tenant public \
+--namespace default \
+--name canal \
+--destination-topic-name my-topic \
+--<span class="hljs-built_in">source</span>-config-file /pulsar/conf/canal-mysql-source-config.yaml \
+--parallelism 1
+</code></pre></li>
+<li><p>Consume data from MySQL.</p>
+<pre><code class="hljs css language-bash">$ docker <span class="hljs-built_in">exec</span> -it pulsar-standalone /bin/bash
+$ python pulsar-client.py
+</code></pre></li>
+<li><p>Open another window to log in MySQL server.</p>
+<pre><code class="hljs css language-bash">$ docker <span class="hljs-built_in">exec</span> -it pulsar-mysql /bin/bash
+$ mysql -h 127.0.0.1 -uroot -pcanal
+</code></pre></li>
+<li><p>Create a table, and insert, delete, and update data in MySQL server.</p>
+<pre><code class="hljs css language-bash">mysql&gt; use <span class="hljs-built_in">test</span>;
 mysql&gt; show tables;
-mysql&gt; <span class="hljs-keyword">CREATE</span> TABLE <span class="hljs-keyword">IF</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">EXISTS</span> <span class="hljs-symbol">`test_table`</span>(<span class="hljs-symbol">`test_id`</span> INT UNSIGNED AUTO_INCREMENT,<span class="hljs-symbol">`test_title`</span> VARCHAR(<span class="hljs-number">100</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-literal">NULL</span>,
-<span class="hljs-symbol">`test_author`</span> VARCHAR(<span class="hljs-number">40</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-literal">NULL</span>,
-<span class="hljs-symbol">`test_date`</span> DATE,<span class="hljs-keyword">PRIMARY</span> <span class="hljs-keyword">KEY</span> ( <span class="hljs-symbol">`test_id`</span> ))ENGINE=InnoDB DEFAULT CHARSET=utf8;
-mysql&gt; <span class="hljs-keyword">INSERT</span> <span class="hljs-keyword">INTO</span> test_table (test_title, test_author, test_date) <span class="hljs-keyword">VALUES</span>(<span class="hljs-string">"a"</span>, <span class="hljs-string">"b"</span>, NOW());
-mysql&gt; <span class="hljs-keyword">UPDATE</span> test_table <span class="hljs-keyword">SET</span> test_title=<span class="hljs-string">'c'</span> <span class="hljs-keyword">WHERE</span> test_title=<span class="hljs-string">'a'</span>;
-mysql&gt; <span class="hljs-keyword">DELETE</span> <span class="hljs-keyword">FROM</span> test_table <span class="hljs-keyword">WHERE</span> test_title=<span class="hljs-string">'c'</span>;
-</code></pre>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 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>
+mysql&gt; CREATE TABLE IF NOT EXISTS `test_table`(`test_id` INT UNSIGNED AUTO_INCREMENT,`test_title` VARCHAR(100) NOT NULL,
+`test_author` VARCHAR(40) NOT NULL,
+`test_date` DATE,PRIMARY KEY ( `test_id` ))ENGINE=InnoDB DEFAULT CHARSET=utf8;
+mysql&gt; INSERT INTO test_table (test_title, test_author, test_date) VALUES(<span class="hljs-string">"a"</span>, <span class="hljs-string">"b"</span>, NOW());
+mysql&gt; UPDATE test_table SET test_title=<span class="hljs-string">'c'</span> WHERE test_title=<span class="hljs-string">'a'</span>;
+mysql&gt; DELETE FROM test_table WHERE test_title=<span class="hljs-string">'c'</span>;
+</code></pre></li>
+</ol>
+</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#configuration">Configuration</a><ul class="toc-headings"><li><a href="#parameter">Parameter</a></li><li><a href="#example">Example</a></li></ul></li><li><a href="#usage">Usage</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Puls [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/io-cdc-canal/index.html b/content/docs/en/next/io-cdc-canal/index.html
index 628b3d0..ba4e5c3 100644
--- a/content/docs/en/next/io-cdc-canal/index.html
+++ b/content/docs/en/next/io-cdc-canal/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CDC Canal Connector · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="### Source Configuration Options"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="CDC Canal Connector · Apache Pulsa [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Canal source connector · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="The Canal source connector pulls messages from MySQL to Pulsar topics."/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" co [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,25 +18,31 @@
             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-cdc-canal.md" target="_bla [...]
-<p>The Configuration is mostly related to Canal task config.</p>
+      </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-cdc-canal.md" target="_bla [...]
+<p>This guide explains how to congifure and use Canal source connector.</p>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>The configuration of Canal source connector has the following parameters.</p>
+<h3><a class="anchor" aria-hidden="true" id="parameter"></a><a href="#parameter" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 [...]
 <table>
 <thead>
 <tr><th>Name</th><th>Required</th><th>Default</th><th>Description</th></tr>
 </thead>
 <tbody>
-<tr><td><code>zkServers</code></td><td><code>false</code></td><td><code>127.0.0.1:2181</code></td><td><code>The address and port of the zookeeper . if canal server configured to cluster mode</code></td></tr>
-<tr><td><code>batchSize</code></td><td><code>true</code></td><td><code>5120</code></td><td><code>Take 5120 records from the canal server in batches</code></td></tr>
-<tr><td><code>username</code></td><td><code>false</code></td><td>``</td><td><code>Canal server account, not MySQL</code></td></tr>
-<tr><td><code>password</code></td><td><code>false</code></td><td>``</td><td><code>Canal server password, not MySQL</code></td></tr>
-<tr><td><code>cluster</code></td><td><code>false</code></td><td><code>false</code></td><td><code>Decide whether to open cluster mode based on canal server configuration, true: cluster mode, false: standalone mode</code></td></tr>
-<tr><td><code>singleHostname</code></td><td><code>false</code></td><td><code>127.0.0.1</code></td><td><code>The address of canal server</code></td></tr>
-<tr><td><code>singlePort</code></td><td><code>false</code></td><td><code>11111</code></td><td><code>The port of canal server</code></td></tr>
+<tr><td><code>username</code></td><td>true</td><td>None</td><td>Canal server account (not MySQL).</td></tr>
+<tr><td><code>password</code></td><td>true</td><td>None</td><td>Canal server password (not MySQL).</td></tr>
+<tr><td><code>destination</code></td><td>true</td><td>None</td><td>Source destination that Canal source connector connects to.</td></tr>
+<tr><td><code>singleHostname</code></td><td>false</td><td>None</td><td>Canal server address.</td></tr>
+<tr><td><code>singlePort</code></td><td>false</td><td>None</td><td>Canal server port.</td></tr>
+<tr><td><code>cluster</code></td><td>true</td><td>false</td><td>Whether to enable cluster mode based on Canal server configuration or not.<br/><br/><li>true: <strong>cluster</strong> mode.<br/>If set to true, it talks to <code>zkServers</code> to figure out the actual database host.<br/><br/><li>false: <strong>standalone</strong> mode.<br/>If set to false, it connects to the database specified by <code>singleHostname</code> and <code>singlePort</code>.</td></tr>
+<tr><td><code>zkServers</code></td><td>true</td><td>None</td><td>Address and port of the Zookeeper that Canal source connector talks to figure out the actual database host.</td></tr>
+<tr><td><code>batchSize</code></td><td>false</td><td>1000</td><td>Batch size to fetch from Canal.</td></tr>
 </tbody>
 </table>
-<h3><a class="anchor" aria-hidden="true" id="configuration-example"></a><a href="#configuration-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 [...]
-<p>Here is a configuration Json example:</p>
-<pre><code class="hljs css language-$json">{
+<h3><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>Before using the Canal connector, you can create a configuration file through one of the following methods.</p>
+<ul>
+<li><p>JSON</p>
+<pre><code class="hljs css language-json">{
     <span class="hljs-attr">"zkServers"</span>: <span class="hljs-string">"127.0.0.1:2181"</span>,
     <span class="hljs-attr">"batchSize"</span>: <span class="hljs-string">"5120"</span>,
     <span class="hljs-attr">"destination"</span>: <span class="hljs-string">"example"</span>,
@@ -46,134 +52,121 @@
     <span class="hljs-attr">"singleHostname"</span>: <span class="hljs-string">"127.0.0.1"</span>,
     <span class="hljs-attr">"singlePort"</span>: <span class="hljs-string">"11111"</span>,
 }
-</code></pre>
-<p>You could also find the yaml example in this <a href="https://github.com/apache/pulsar/blob/master/pulsar-io/canal/src/main/resources/canal-mysql-source-config.yaml">file</a>, which has similar content below:</p>
-<pre><code class="hljs css language-$yaml"><span class="hljs-symbol">configs:</span>
-<span class="hljs-symbol">    zkServers:</span> <span class="hljs-string">"127.0.0.1:2181"</span>
-<span class="hljs-symbol">    batchSize:</span> <span class="hljs-string">"5120"</span>
-<span class="hljs-symbol">    destination:</span> <span class="hljs-string">"example"</span>
-<span class="hljs-symbol">    username:</span> <span class="hljs-string">""</span>
-<span class="hljs-symbol">    password:</span> <span class="hljs-string">""</span>
-<span class="hljs-symbol">    cluster:</span> false
-<span class="hljs-symbol">    singleHostname:</span> <span class="hljs-string">"127.0.0.1"</span>
-<span class="hljs-symbol">    singlePort:</span> <span class="hljs-string">"11111"</span>
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="usage-example"></a><a href="#usage-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-.8 [...]
-<p>Here is a simple example to store MySQL change data using above example config.</p>
-<ul>
-<li>Start a MySQL server</li>
-</ul>
-<pre><code class="hljs css language-$bash">docker pull mysql:5.7
-docker <span class="hljs-builtin-name">run</span> -d -it --rm --name pulsar-mysql -p 3306:3306 -e <span class="hljs-attribute">MYSQL_ROOT_PASSWORD</span>=canal -e <span class="hljs-attribute">MYSQL_USER</span>=mysqluser -e <span class="hljs-attribute">MYSQL_PASSWORD</span>=mysqlpw mysql:5.7
-</code></pre>
-<ul>
-<li>Modify configuration files mysqld.cnf</li>
+</code></pre></li>
+<li><p>YAML</p>
+<p>You can create a YAML file and copy the <a href="https://github.com/apache/pulsar/blob/master/pulsar-io/canal/src/main/resources/canal-mysql-source-config.yaml">contents</a> below to your YAML file.</p>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">configs:</span>
+<span class="hljs-attr">    zkServers:</span> <span class="hljs-string">"127.0.0.1:2181"</span>
+<span class="hljs-attr">    batchSize:</span> <span class="hljs-string">"5120"</span>
+<span class="hljs-attr">    destination:</span> <span class="hljs-string">"example"</span>
+<span class="hljs-attr">    username:</span> <span class="hljs-string">""</span>
+<span class="hljs-attr">    password:</span> <span class="hljs-string">""</span>
+<span class="hljs-attr">    cluster:</span> <span class="hljs-literal">false</span>
+<span class="hljs-attr">    singleHostname:</span> <span class="hljs-string">"127.0.0.1"</span>
+<span class="hljs-attr">    singlePort:</span> <span class="hljs-string">"11111"</span>
+</code></pre></li>
 </ul>
-<pre><code class="hljs"><span class="hljs-section">[mysqld]</span>
-<span class="hljs-attr">pid-file</span>    = /var/run/mysqld/mysqld.pid
-<span class="hljs-attr">socket</span>      = /var/run/mysqld/mysqld.sock
-<span class="hljs-attr">datadir</span>     = /var/lib/mysql
+<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>Here is an example of storing MySQL data using the configuration file as above.</p>
+<ol>
+<li><p>Start a MySQL server.</p>
+<pre><code class="hljs css language-bash">$ docker pull mysql:5.7
+$ docker run -d -it --rm --name pulsar-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=canal -e MYSQL_USER=mysqluser -e MYSQL_PASSWORD=mysqlpw mysql:5.7
+</code></pre></li>
+<li><p>Create a configuration file <code>mysqld.cnf</code>.</p>
+<pre><code class="hljs css language-bash">[mysqld]
+pid-file    = /var/run/mysqld/mysqld.pid
+socket      = /var/run/mysqld/mysqld.sock
+datadir     = /var/lib/mysql
 <span class="hljs-comment">#log-error  = /var/log/mysql/error.log</span>
 <span class="hljs-comment"># By default we only accept connections from localhost</span>
 <span class="hljs-comment">#bind-address   = 127.0.0.1</span>
 <span class="hljs-comment"># Disabling symbolic-links is recommended to prevent assorted security risks</span>
-<span class="hljs-attr">symbolic-links</span>=<span class="hljs-number">0</span>
-<span class="hljs-attr">log-bin</span>=mysql-bin
-<span class="hljs-attr">binlog-format</span>=ROW
-<span class="hljs-attr">server_id</span>=<span class="hljs-number">1</span>
-</code></pre>
-<ul>
-<li>Copy file to mysql server from local and restart mysql server</li>
-</ul>
-<pre><code class="hljs css language-$bash">docker cp mysqld<span class="hljs-selector-class">.cnf</span> pulsar-mysql:/etc/mysql/mysql<span class="hljs-selector-class">.conf</span><span class="hljs-selector-class">.d</span>/
-docker restart pulsar-mysql
-</code></pre>
-<ul>
-<li>Create test database in mysql server</li>
-</ul>
-<pre><code class="hljs css language-$bash">docker exec -it pulsar-mysql /bin/bash
-mysql -h 127.0.0.1 -uroot -pcanal -e '<span class="hljs-keyword">create</span> <span class="hljs-keyword">database</span> <span class="hljs-keyword">test</span>;'
-</code></pre>
-<ul>
-<li>Start canal server and connect mysql server</li>
-</ul>
-<pre><code class="hljs">docker pull canal/canal-server:v1.<span class="hljs-number">1.2</span>
-docker run -d -it --link pulsar-mysql -e canal<span class="hljs-selector-class">.auto</span><span class="hljs-selector-class">.scan</span>=false -e canal.destinations=test -e canal<span class="hljs-selector-class">.instance</span><span class="hljs-selector-class">.master</span><span class="hljs-selector-class">.address</span>=pulsar-mysql:<span class="hljs-number">3306</span> -e canal<span class="hljs-selector-class">.instance</span><span class="hljs-selector-class">.dbUsername</span>=ro [...]
-</code></pre>
-<ul>
-<li>Start pulsar standalone</li>
-</ul>
-<pre><code class="hljs css language-$bash">docker pull apachepulsar/pulsar:<span class="hljs-number">2.3</span><span class="hljs-number">.0</span>
-docker run -d -it --link pulsar-canal-server -p <span class="hljs-number">6650</span>:<span class="hljs-number">6650</span> -p <span class="hljs-number">8080</span>:<span class="hljs-number">8080</span> -v $PWD/data:/pulsar/data --name pulsar-standalone apachepulsar/pulsar:<span class="hljs-number">2.3</span><span class="hljs-number">.0</span> bin/pulsar standalone
-</code></pre>
-<ul>
-<li><p>Start pulsar-io in standalone</p></li>
-<li><p>Config file canal-mysql-source-config.yaml</p></li>
-</ul>
-<pre><code class="hljs css language-$yaml"><span class="hljs-symbol">configs:</span>
-<span class="hljs-symbol">    zkServers:</span> <span class="hljs-string">""</span>
-<span class="hljs-symbol">    batchSize:</span> <span class="hljs-string">"5120"</span>
-<span class="hljs-symbol">    destination:</span> <span class="hljs-string">"test"</span>
-<span class="hljs-symbol">    username:</span> <span class="hljs-string">""</span>
-<span class="hljs-symbol">    password:</span> <span class="hljs-string">""</span>
-<span class="hljs-symbol">    cluster:</span> false
-<span class="hljs-symbol">    singleHostname:</span> <span class="hljs-string">"pulsar-canal-server"</span>
-<span class="hljs-symbol">    singlePort:</span> <span class="hljs-string">"11111"</span>
-</code></pre>
-<ul>
-<li>Consumer file pulsar-client.py for test</li>
-</ul>
-<pre><code class="hljs"><span class="hljs-keyword">import</span> pulsar
+symbolic-links=0
+<span class="hljs-built_in">log</span>-bin=mysql-bin
+binlog-format=ROW
+server_id=1
+</code></pre></li>
+<li><p>Copy the configuration file <code>mysqld.cnf</code> to MySQL server.</p>
+<pre><code class="hljs css language-bash">$ docker cp mysqld.cnf pulsar-mysql:/etc/mysql/mysql.conf.d/
+</code></pre></li>
+<li><p>Restart the MySQL server.</p>
+<pre><code class="hljs css language-bash">$ docker restart pulsar-mysql
+</code></pre></li>
+<li><p>Create a test database in MySQL server.</p>
+<pre><code class="hljs css language-bash">$ docker <span class="hljs-built_in">exec</span> -it pulsar-mysql /bin/bash
+$ mysql -h 127.0.0.1 -uroot -pcanal -e <span class="hljs-string">'create database test;'</span>
+</code></pre></li>
+<li><p>Start a Canal server and connect to MySQL server.</p>
+<pre><code class="hljs">$ docker pull canal/canal-server:v1.<span class="hljs-number">1.2</span>
+$ docker run -d -it --link pulsar-mysql -e canal<span class="hljs-selector-class">.auto</span><span class="hljs-selector-class">.scan</span>=false -e canal.destinations=test -e canal<span class="hljs-selector-class">.instance</span><span class="hljs-selector-class">.master</span><span class="hljs-selector-class">.address</span>=pulsar-mysql:<span class="hljs-number">3306</span> -e canal<span class="hljs-selector-class">.instance</span><span class="hljs-selector-class">.dbUsername</span>= [...]
+</code></pre></li>
+<li><p>Start Pulsar standalone.</p>
+<pre><code class="hljs css language-bash">$ docker pull apachepulsar/pulsar:2.3.0
+$ docker run -d -it --link pulsar-canal-server -p 6650:6650 -p 8080:8080 -v <span class="hljs-variable">$PWD</span>/data:/pulsar/data --name pulsar-standalone apachepulsar/pulsar:2.3.0 bin/pulsar standalone
+</code></pre></li>
+<li><p>Modify the configuration file <code>canal-mysql-source-config.yaml</code>.</p>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">configs:</span>
+<span class="hljs-attr">    zkServers:</span> <span class="hljs-string">""</span>
+<span class="hljs-attr">    batchSize:</span> <span class="hljs-string">"5120"</span>
+<span class="hljs-attr">    destination:</span> <span class="hljs-string">"test"</span>
+<span class="hljs-attr">    username:</span> <span class="hljs-string">""</span>
+<span class="hljs-attr">    password:</span> <span class="hljs-string">""</span>
+<span class="hljs-attr">    cluster:</span> <span class="hljs-literal">false</span>
+<span class="hljs-attr">    singleHostname:</span> <span class="hljs-string">"pulsar-canal-server"</span>
+<span class="hljs-attr">    singlePort:</span> <span class="hljs-string">"11111"</span>
+</code></pre></li>
+<li><p>Create a consumer file <code>pulsar-client.py</code>.</p>
+<pre><code class="hljs css language-python"><span class="hljs-keyword">import</span> pulsar
 
-client = pulsar.<span class="hljs-built_in">Client</span>(<span class="hljs-string">'pulsar://localhost:6650'</span>)
+client = pulsar.Client(<span class="hljs-string">'pulsar://localhost:6650'</span>)
 consumer = client.subscribe(<span class="hljs-string">'my-topic'</span>,
                             subscription_name=<span class="hljs-string">'my-sub'</span>)
 
-<span class="hljs-built_in">while</span> True:
+<span class="hljs-keyword">while</span> <span class="hljs-literal">True</span>:
     msg = consumer.receive()
-    <span class="hljs-built_in">print</span>(<span class="hljs-string">"Received message: '%s'"</span> % msg.data())
+    print(<span class="hljs-string">"Received message: '%s'"</span> % msg.data())
     consumer.acknowledge(msg)
 
-client.<span class="hljs-built_in">close</span>()
-</code></pre>
-<ul>
-<li>Copy config file and test file to pulsar server</li>
-</ul>
-<pre><code class="hljs css language-$bash">docker <span class="hljs-keyword">cp</span> canal-mysql-<span class="hljs-keyword">source</span>-config.yaml pulsar-standalone:/pulsar/<span class="hljs-keyword">conf</span>/
-docker <span class="hljs-keyword">cp</span> pulsar-client.<span class="hljs-keyword">py</span> pulsar-standalone:/pulsar/
-</code></pre>
-<ul>
-<li>Download canal connector and start canal connector</li>
-</ul>
-<pre><code class="hljs css language-$bash">docker exec -it pulsar-standalone <span class="hljs-string">/bin/bash</span>
-wget http:<span class="hljs-string">//apache.01link.hk/pulsar/pulsar-2.3.0/connectors/pulsar-io-canal-2.3.0.nar</span> -P connectors
-<span class="hljs-string">./bin/pulsar-admin</span> sources localrun <span class="hljs-params">--archive</span> <span class="hljs-string">./connectors/pulsar-io-canal-2.3.0.nar</span> <span class="hljs-params">--classname</span> org.apache.pulsar.io.canal.CanalStringSource <span class="hljs-params">--tenant</span> public <span class="hljs-params">--namespace</span> default <span class="hljs-params">--name</span> canal <span class="hljs-params">--destination-topic-name</span> my-topic <sp [...]
-</code></pre>
-<ul>
-<li>Consumption data</li>
-</ul>
-<pre><code class="hljs css language-$bash"><span class="hljs-symbol">docker</span> exec -<span class="hljs-keyword">it </span>pulsar-standalone /<span class="hljs-keyword">bin/bash
-</span><span class="hljs-symbol">python</span> pulsar-client.py
-</code></pre>
-<ul>
-<li>Open another window for login mysql server</li>
-</ul>
-<pre><code class="hljs css language-$bash">docker exec -it pulsar-mysql /bin/bash
-mysql -h <span class="hljs-number">127.0</span><span class="hljs-number">.0</span><span class="hljs-number">.1</span> -uroot -pcanal
-</code></pre>
-<ul>
-<li>Create table and insert, delete, update data in mysql server</li>
-</ul>
-<pre><code class="hljs">mysql&gt; use test;
+client.close()
+</code></pre></li>
+<li><p>Copy the configuration file <code>canal-mysql-source-config.yaml</code> and the consumer file  <code>pulsar-client.py</code> to Pulsar server.</p>
+<pre><code class="hljs css language-bash">$ docker cp canal-mysql-source-config.yaml pulsar-standalone:/pulsar/conf/
+$ docker cp pulsar-client.py pulsar-standalone:/pulsar/
+</code></pre></li>
+<li><p>Download a Canal connector and start it.</p>
+<pre><code class="hljs css language-bash">$ docker <span class="hljs-built_in">exec</span> -it pulsar-standalone /bin/bash
+$ wget http://apache.01link.hk/pulsar/pulsar-2.3.0/connectors/pulsar-io-canal-2.3.0.nar -P connectors
+$ ./bin/pulsar-admin sources localrun \
+--archive ./connectors/pulsar-io-canal-2.3.0.nar \
+--classname org.apache.pulsar.io.canal.CanalStringSource \
+--tenant public \
+--namespace default \
+--name canal \
+--destination-topic-name my-topic \
+--<span class="hljs-built_in">source</span>-config-file /pulsar/conf/canal-mysql-source-config.yaml \
+--parallelism 1
+</code></pre></li>
+<li><p>Consume data from MySQL.</p>
+<pre><code class="hljs css language-bash">$ docker <span class="hljs-built_in">exec</span> -it pulsar-standalone /bin/bash
+$ python pulsar-client.py
+</code></pre></li>
+<li><p>Open another window to log in MySQL server.</p>
+<pre><code class="hljs css language-bash">$ docker <span class="hljs-built_in">exec</span> -it pulsar-mysql /bin/bash
+$ mysql -h 127.0.0.1 -uroot -pcanal
+</code></pre></li>
+<li><p>Create a table, and insert, delete, and update data in MySQL server.</p>
+<pre><code class="hljs css language-bash">mysql&gt; use <span class="hljs-built_in">test</span>;
 mysql&gt; show tables;
-mysql&gt; <span class="hljs-keyword">CREATE</span> TABLE <span class="hljs-keyword">IF</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">EXISTS</span> <span class="hljs-symbol">`test_table`</span>(<span class="hljs-symbol">`test_id`</span> INT UNSIGNED AUTO_INCREMENT,<span class="hljs-symbol">`test_title`</span> VARCHAR(<span class="hljs-number">100</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-literal">NULL</span>,
-<span class="hljs-symbol">`test_author`</span> VARCHAR(<span class="hljs-number">40</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-literal">NULL</span>,
-<span class="hljs-symbol">`test_date`</span> DATE,<span class="hljs-keyword">PRIMARY</span> <span class="hljs-keyword">KEY</span> ( <span class="hljs-symbol">`test_id`</span> ))ENGINE=InnoDB DEFAULT CHARSET=utf8;
-mysql&gt; <span class="hljs-keyword">INSERT</span> <span class="hljs-keyword">INTO</span> test_table (test_title, test_author, test_date) <span class="hljs-keyword">VALUES</span>(<span class="hljs-string">"a"</span>, <span class="hljs-string">"b"</span>, NOW());
-mysql&gt; <span class="hljs-keyword">UPDATE</span> test_table <span class="hljs-keyword">SET</span> test_title=<span class="hljs-string">'c'</span> <span class="hljs-keyword">WHERE</span> test_title=<span class="hljs-string">'a'</span>;
-mysql&gt; <span class="hljs-keyword">DELETE</span> <span class="hljs-keyword">FROM</span> test_table <span class="hljs-keyword">WHERE</span> test_title=<span class="hljs-string">'c'</span>;
-</code></pre>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 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>
+mysql&gt; CREATE TABLE IF NOT EXISTS `test_table`(`test_id` INT UNSIGNED AUTO_INCREMENT,`test_title` VARCHAR(100) NOT NULL,
+`test_author` VARCHAR(40) NOT NULL,
+`test_date` DATE,PRIMARY KEY ( `test_id` ))ENGINE=InnoDB DEFAULT CHARSET=utf8;
+mysql&gt; INSERT INTO test_table (test_title, test_author, test_date) VALUES(<span class="hljs-string">"a"</span>, <span class="hljs-string">"b"</span>, NOW());
+mysql&gt; UPDATE test_table SET test_title=<span class="hljs-string">'c'</span> WHERE test_title=<span class="hljs-string">'a'</span>;
+mysql&gt; DELETE FROM test_table WHERE test_title=<span class="hljs-string">'c'</span>;
+</code></pre></li>
+</ol>
+</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#configuration">Configuration</a><ul class="toc-headings"><li><a href="#parameter">Parameter</a></li><li><a href="#example">Example</a></li></ul></li><li><a href="#usage">Usage</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Puls [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/io-cdc.html b/content/docs/en/next/io-cdc.html
index cc18dec..98a246b 100644
--- a/content/docs/en/next/io-cdc.html
+++ b/content/docs/en/next/io-cdc.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CDC Connector · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Source"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="CDC Connector · Apache Pulsar"/><meta property="og:type" conten [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CDC connector · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="CDC source connectors capture log changes of databases (such as MySQL, MongoDB, and PostgreSQL) into Pulsar"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/> [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -74,16 +74,34 @@
                 };
               }
             });
-        </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-cdc.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">CDC Connector</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="source"></a><a href="#source" aria-hidden="true" class="hash-link"><svg cl [...]
-<p>The CDC Source connector is used to capture change log of existing databases like MySQL, MongoDB, PostgreSQL into Pulsar.</p>
-<p>The CDC Source connector is built on top of <a href="https://debezium.io/">Debezium</a> and <a href="https://github.com/alibaba/canal">Canal</a>. This connector stores all data into Pulsar Cluster in a persistent, replicated and partitioned way.
-This CDC Source are tested by using MySQL, and you could get more information regarding how it works at <a href="https://debezium.io/docs/connectors/mysql/">this debezium link</a> or <a href="https://github.com/alibaba/canal/wiki">this canal link</a>.
-Regarding how Debezium works, please reference to <a href="https://debezium.io/docs/tutorial/">Debezium tutorial</a>. Regarding how Canal works, please reference to <a href="https://github.com/alibaba/canal/wiki">Canal tutorial</a>. It is recommended that you go through this tutorial first.</p>
-<ul>
-<li><a href="/docs/en/next/io-cdc-debezium">Debezium Connector</a></li>
-<li><a href="/docs/en/next/io-cdc-canal">Alibaba Canal Connector</a></li>
-</ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/next/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section clas [...]
+        </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-cdc.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">CDC connector</h1></header><article><div><span><p>CDC source connectors capture log changes of databases (such as MySQL, MongoDB, and PostgreSQL) into Pulsar</p>
+<p>CDC source connectors are built on top of <a href="https://github.com/alibaba/canal">Canal</a> and <a href="https://debezium.io/">Debezium</a> and store all data into Pulsar cluster in a persistent, replicated, and partitioned way.</p>
+<p>Currently, Pulsar has the following CDC connectors.</p>
+<table>
+<thead>
+<tr><th>Name</th><th>Java Class</th></tr>
+</thead>
+<tbody>
+<tr><td><a href="/docs/en/next/io-cdc-canal">Canal source connector</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/canal/src/main/java/org/apache/pulsar/io/canal/CanalStringSource.java"><code>org.apache.pulsar.io.canal.CanalStringSource.java</code></a></td></tr>
+<tr><td><a href="/docs/en/next/io-cdc-debezium">Debezium source connector</a></td><td><li><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/core/src/main/java/org/apache/pulsar/io/debezium/DebeziumSource.java"><code>org.apache.pulsar.io.debezium.DebeziumSource.java</code></a><br/><li><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/java/org/apache/pulsar/io/debezium/mysql/DebeziumMysqlSource.java"><code>org.apache.pulsar.io.de [...]
+</tbody>
+</table>
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="tip"></a><a href="#tip" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
+<p>If you want to learn more about Canal and Debezium, refer to the following information.</p>
+<table>
+<thead>
+<tr><th>Subject</th><th>Reference</th></tr>
+</thead>
+<tbody>
+<tr><td>How to use Canal source connector with MySQL</td><td><a href="https://github.com/alibaba/canal/wiki">Canal guide</a></td></tr>
+<tr><td>How does Canal work</td><td><a href="https://github.com/alibaba/canal/wiki">Canal tutorial</a></td></tr>
+<tr><td>How to use Debezium source connector with MySQL</td><td><a href="https://debezium.io/docs/connectors/mysql/">Debezium guide</a></td></tr>
+<tr><td>How does Debezium work</td><td><a href="https://debezium.io/docs/tutorial/">Debezium tutorial</a></td></tr>
+</tbody>
+</table>
+</blockquote>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/next/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserve [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/io-cdc/index.html b/content/docs/en/next/io-cdc/index.html
index cc18dec..98a246b 100644
--- a/content/docs/en/next/io-cdc/index.html
+++ b/content/docs/en/next/io-cdc/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CDC Connector · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Source"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="CDC Connector · Apache Pulsar"/><meta property="og:type" conten [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CDC connector · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="CDC source connectors capture log changes of databases (such as MySQL, MongoDB, and PostgreSQL) into Pulsar"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/> [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -74,16 +74,34 @@
                 };
               }
             });
-        </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-cdc.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">CDC Connector</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="source"></a><a href="#source" aria-hidden="true" class="hash-link"><svg cl [...]
-<p>The CDC Source connector is used to capture change log of existing databases like MySQL, MongoDB, PostgreSQL into Pulsar.</p>
-<p>The CDC Source connector is built on top of <a href="https://debezium.io/">Debezium</a> and <a href="https://github.com/alibaba/canal">Canal</a>. This connector stores all data into Pulsar Cluster in a persistent, replicated and partitioned way.
-This CDC Source are tested by using MySQL, and you could get more information regarding how it works at <a href="https://debezium.io/docs/connectors/mysql/">this debezium link</a> or <a href="https://github.com/alibaba/canal/wiki">this canal link</a>.
-Regarding how Debezium works, please reference to <a href="https://debezium.io/docs/tutorial/">Debezium tutorial</a>. Regarding how Canal works, please reference to <a href="https://github.com/alibaba/canal/wiki">Canal tutorial</a>. It is recommended that you go through this tutorial first.</p>
-<ul>
-<li><a href="/docs/en/next/io-cdc-debezium">Debezium Connector</a></li>
-<li><a href="/docs/en/next/io-cdc-canal">Alibaba Canal Connector</a></li>
-</ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/next/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section clas [...]
+        </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-cdc.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">CDC connector</h1></header><article><div><span><p>CDC source connectors capture log changes of databases (such as MySQL, MongoDB, and PostgreSQL) into Pulsar</p>
+<p>CDC source connectors are built on top of <a href="https://github.com/alibaba/canal">Canal</a> and <a href="https://debezium.io/">Debezium</a> and store all data into Pulsar cluster in a persistent, replicated, and partitioned way.</p>
+<p>Currently, Pulsar has the following CDC connectors.</p>
+<table>
+<thead>
+<tr><th>Name</th><th>Java Class</th></tr>
+</thead>
+<tbody>
+<tr><td><a href="/docs/en/next/io-cdc-canal">Canal source connector</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/canal/src/main/java/org/apache/pulsar/io/canal/CanalStringSource.java"><code>org.apache.pulsar.io.canal.CanalStringSource.java</code></a></td></tr>
+<tr><td><a href="/docs/en/next/io-cdc-debezium">Debezium source connector</a></td><td><li><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/core/src/main/java/org/apache/pulsar/io/debezium/DebeziumSource.java"><code>org.apache.pulsar.io.debezium.DebeziumSource.java</code></a><br/><li><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/java/org/apache/pulsar/io/debezium/mysql/DebeziumMysqlSource.java"><code>org.apache.pulsar.io.de [...]
+</tbody>
+</table>
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="tip"></a><a href="#tip" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
+<p>If you want to learn more about Canal and Debezium, refer to the following information.</p>
+<table>
+<thead>
+<tr><th>Subject</th><th>Reference</th></tr>
+</thead>
+<tbody>
+<tr><td>How to use Canal source connector with MySQL</td><td><a href="https://github.com/alibaba/canal/wiki">Canal guide</a></td></tr>
+<tr><td>How does Canal work</td><td><a href="https://github.com/alibaba/canal/wiki">Canal tutorial</a></td></tr>
+<tr><td>How to use Debezium source connector with MySQL</td><td><a href="https://debezium.io/docs/connectors/mysql/">Debezium guide</a></td></tr>
+<tr><td>How does Debezium work</td><td><a href="https://debezium.io/docs/tutorial/">Debezium tutorial</a></td></tr>
+</tbody>
+</table>
+</blockquote>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/en/next/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserve [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/io-connectors.html b/content/docs/en/next/io-connectors.html
index d04a0d1..78e2e90 100644
--- a/content/docs/en/next/io-connectors.html
+++ b/content/docs/en/next/io-connectors.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -110,7 +110,7 @@
 <li><p><a href="/docs/en/next/io-redis">Redis sink connector</a></p></li>
 <li><p><a href="/docs/en/next/io-solr">Solr sink connector</a></p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/io-debug"><span class="arrow-prev">← </span><span>Debug</span></a><a class="docs-next button" href="/docs/en/next/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source-connector">Source connector</a></li><li><a href="#sink-connector">Sink connector</a></li></ul></nav></div><footer c [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/io-debug"><span class="arrow-prev">← </span><span>Debug</span></a><a class="docs-next button" href="/docs/en/next/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source-connector">Source connector</a></li><li><a href="#sink-connector">Sink connector</a></li></ul></nav></div><footer c [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/io-connectors/index.html b/content/docs/en/next/io-connectors/index.html
index d04a0d1..78e2e90 100644
--- a/content/docs/en/next/io-connectors/index.html
+++ b/content/docs/en/next/io-connectors/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -110,7 +110,7 @@
 <li><p><a href="/docs/en/next/io-redis">Redis sink connector</a></p></li>
 <li><p><a href="/docs/en/next/io-solr">Solr sink connector</a></p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/io-debug"><span class="arrow-prev">← </span><span>Debug</span></a><a class="docs-next button" href="/docs/en/next/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source-connector">Source connector</a></li><li><a href="#sink-connector">Sink connector</a></li></ul></nav></div><footer c [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/io-debug"><span class="arrow-prev">← </span><span>Debug</span></a><a class="docs-next button" href="/docs/en/next/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source-connector">Source connector</a></li><li><a href="#sink-connector">Sink connector</a></li></ul></nav></div><footer c [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/io-debug.html b/content/docs/en/next/io-debug.html
index 62a626e..edc18a1 100644
--- a/content/docs/en/next/io-debug.html
+++ b/content/docs/en/next/io-debug.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/io-debug/index.html b/content/docs/en/next/io-debug/index.html
index 62a626e..edc18a1 100644
--- a/content/docs/en/next/io-debug/index.html
+++ b/content/docs/en/next/io-debug/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/io-develop.html b/content/docs/en/next/io-develop.html
index 710d40d..f5c2c99 100644
--- a/content/docs/en/next/io-develop.html
+++ b/content/docs/en/next/io-develop.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Develop Connectors · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="This guide describes how developers can write new connectors for Pulsar IO to move data"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property= [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>How to develop Pulsar connectors · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="This guide describes how to develop Pulsar connectors to move data"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:tit [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -74,132 +74,175 @@
                 };
               }
             });
-        </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
-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/next/functions-overview">Pulsar Functions</a>. So writing
-a Pulsar IO connector is as simple as writing a Pulsar function. Pulsar IO connectors come
-in two flavors: <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java"><code>Source</code></a>
-,
-which import data from another system, and <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java"><code>Sink</code></a>
-,
-which export data to another system. For example, <a href="/docs/en/next/io-kinesis">KinesisSink</a> would export
-the messages of a Pulsar topic to a Kinesis stream, and <a href="/docs/en/next/io-rabbitmq">RabbitmqSource</a> would import
-the messages of a RabbitMQ queue to a Pulsar topic.</p>
-<h3><a class="anchor" aria-hidden="true" id="developing"></a><a href="#developing" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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="develop-a-source-connector"></a><a href="#develop-a-source-connector" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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>What you need to develop a source connector is to implement <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java"><code>Source</code></a>
+        </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">How to develop Pulsar connectors</h1></header><article><div><span><p>This guide describes how to develop Pulsar connectors to move data
+between Pulsar and other systems.</p>
+<p>Pulsar connectors are special <a href="/docs/en/next/functions-overview">Pulsar Functions</a>, so creating
+a Pulsar connector is similar to creating a Pulsar function.</p>
+<p>Pulsar connectors come in two types:</p>
+<table>
+<thead>
+<tr><th>Type</th><th>Description</th><th>Example</th></tr>
+</thead>
+<tbody>
+<tr><td><a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java"><code>Source</code></a>
+</td><td>Import data from another system to Pulsar.</td><td><a href="/docs/en/next/io-rabbitmq">RabbitMQ source connector</a> imports the messages of a RabbitMQ queue to a Pulsar topic.</td></tr>
+<tr><td><a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java"><code>Sink</code></a>
+</td><td>Export data from Pulsar to another system.</td><td><a href="/docs/en/next/io-kinesis">Kinesis sink connector</a> exports the messages of a Pulsar topic to a Kinesis stream.</td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="develop"></a><a href="#develop" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 develop Pulsar source connectors and sink connectors.</p>
+<h3><a class="anchor" aria-hidden="true" id="source"></a><a href="#source" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Developing a source connector is to implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java"><code>Source</code></a>
 
-interface.</p>
-<p>First, you need to implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java#L33"><code>open</code></a>
- method. This method will be called once when the source connector
-is initialized. In this method, you can retrieve all the connector specific settings through
-the passed <code>config</code> parameter, and initialize all the necessary resourcess. For example, a Kafka
-connector can create the Kafka client in this <code>open</code> method.</p>
-<p>Beside the passed-in <code>config</code> object, the Pulsar runtime also provides a <code>SourceContext</code> for the
-connector to access runtime resources for tasks like collecting metrics. The implementation can
-save the <code>SourceContext</code> for futher usage.</p>
-<pre><code class="hljs css language-java">    <span class="hljs-comment">/**
-     * Open connector with configuration
-     *
-     * <span class="hljs-doctag">@param</span> config initialization config
-     * <span class="hljs-doctag">@param</span> sourceContext
-     * <span class="hljs-doctag">@throws</span> Exception IO type exceptions when opening a connector
-     */</span>
-    <span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">open</span><span class="hljs-params">(<span class="hljs-keyword">final</span> Map&lt;String, Object&gt; config, SourceContext sourceContext)</span> <span class="hljs-keyword">throws</span> Exception</span>;
+interface, which means you need to implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java#L33"><code>open</code></a>
+ method and the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-functions/api-java/src/main/java/org/apache/pulsar/functions/api/Record.java#L28"><code>record</code></a>
+ method.</p>
+<ol>
+<li><p>Implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java#L33"><code>open</code></a>
+ method.</p>
+<pre><code class="hljs css language-java"><span class="hljs-comment">/**
+* Open connector with configuration
+*
+* <span class="hljs-doctag">@param</span> config initialization config
+* <span class="hljs-doctag">@param</span> sourceContext
+* <span class="hljs-doctag">@throws</span> Exception IO type exceptions when opening a connector
+*/</span>
+<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">open</span><span class="hljs-params">(<span class="hljs-keyword">final</span> Map&lt;String, Object&gt; config, SourceContext sourceContext)</span> <span class="hljs-keyword">throws</span> Exception</span>;
 </code></pre>
-<p>The main task for a Source implementor is to implement <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java#L41"><code>read</code></a>
-
-method.</p>
+<p>This method is called when the source connector is initialized.</p>
+<p>In this method, you can retrieve all connector specific settings through the passed-in <code>config</code> parameter and initialize all necessary resources.</p>
+<p>For example, a Kafka connector can create a Kafka client in this <code>open</code> method.</p>
+<p>Besides, Pulsar runtime also provides a <code>SourceContext</code> for the
+connector to access runtime resources for tasks like collecting metrics. The implementation can save the <code>SourceContext</code> for future use.</p></li>
+<li><p>Implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java#L41"><code>read</code></a>
+ method.</p>
 <pre><code class="hljs css language-java">    <span class="hljs-comment">/**
-     * Reads the next message from source.
-     * If source does not have any new messages, this call should block.
-     * <span class="hljs-doctag">@return</span> next message from source.  The return result should never be null
-     * <span class="hljs-doctag">@throws</span> Exception
-     */</span>
+    * Reads the next message from source.
+    * If source does not have any new messages, this call should block.
+    * <span class="hljs-doctag">@return</span> next message from source.  The return result should never be null
+    * <span class="hljs-doctag">@throws</span> Exception
+    */</span>
     <span class="hljs-function">Record&lt;T&gt; <span class="hljs-title">read</span><span class="hljs-params">()</span> <span class="hljs-keyword">throws</span> Exception</span>;
 </code></pre>
-<p>The implementation should be blocking on this method if nothing to return. It should never return
-<code>null</code>. The returned <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-functions/api-java/src/main/java/org/apache/pulsar/functions/api/Record.java#L28"><code>Record</code></a>
- should encapsulates the information that is needed by
-Pulsar IO runtime.</p>
-<p>These information includes:</p>
+<p>If nothing to return, the implementation should be blocking rather than returning <code>null</code>.</p>
+<p>The returned <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-functions/api-java/src/main/java/org/apache/pulsar/functions/api/Record.java#L28"><code>Record</code></a>
+ should encapsulate the following information, which is needed by Pulsar IO runtime.</p>
 <ul>
-<li><em>Topic Name</em>: <em>Optional</em>. If the record is originated from a Pulsar topic, it should be the Pulsar topic name.</li>
-<li><em>Key</em>: <em>Optional</em>. If the record has a key associated with it.</li>
-<li><em>Value</em>: <em>Required</em>. The actual data of this record.</li>
-<li><em>Partition Id</em>: <em>Optional</em>. If the record is originated from a partitioned source,
-return its partition id. The partition id will be used as part of the unique identifier
-by Pulsar IO runtime to do message deduplication and achieve exactly-once processing guarantee.</li>
-<li><em>Record Sequence</em>: <em>Optional</em>. If the record is originated from a sequential source,
-return its record sequence. The record sequence will be used as part of the unique identifier
-by Pulsar IO runtime to do message deduplication and achieve exactly-once processing guarantee.</li>
-<li><em>Properties</em>: <em>Optional</em>. If the record carries user-defined properties, return those properties.</li>
-</ul>
-<p>Additionally, the implemention of the record should provide two methods: <code>ack</code> and <code>fail</code>. These
-two methods will be used by Pulsar IO connector to acknowledge the records that it has done
-processing and fail the records that it has failed to process.</p>
-<p><a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaAbstractSource.java"><code>KafkaSource</code></a>
- is a good example to follow.</p>
-<h4><a class="anchor" aria-hidden="true" id="develop-a-sink-connector"></a><a href="#develop-a-sink-connector" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.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>Developing a sink connector is as easy as developing a source connector. You just need to
-implement <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java"><code>Sink</code></a>
- interface.</p>
-<p>Similarly, you first need to implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java#L36"><code>open</code></a>
- method to initialize all the necessary resources
-before implementing the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java#L44"><code>write</code></a>
+<li><p><a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-functions/api-java/src/main/java/org/apache/pulsar/functions/api/Record.java#L28"><code>Record</code></a>
+ should provide the following variables:</p>
+<table>
+<thead>
+<tr><th>Variable</th><th>Required</th><th>Description</th></tr>
+</thead>
+<tbody>
+<tr><td><code>TopicName</code></td><td>No</td><td>Pulsar topic name from which the record is originated from.</td></tr>
+<tr><td><code>Key</code></td><td>No</td><td>Messages can optionally be tagged with keys.<br/><br/>For more information, see <a href="/docs/en/next/concepts-messaging#routing-modes">Routing modes</a>.</td></tr>
+<tr><td><code>Value</code></td><td>Yes</td><td>Actual data of the record.</td></tr>
+<tr><td><code>EventTime</code></td><td>No</td><td>Event time of the record from the source.</td></tr>
+<tr><td><code>PartitionId</code></td><td>No</td><td>If the record is originated from a partitioned source, it returns its <code>PartitionId</code>. <br/><br/><code>PartitionId</code> is used as a part of the unique identifier by Pulsar IO runtime to deduplicate messages and achieve exactly-once processing guarantee.</td></tr>
+<tr><td><code>RecordSequence</code></td><td>No</td><td>If the record is originated from a sequential source, it returns its <code>RecordSequence</code>.<br/><br/><code>RecordSequence</code> is used as a part of the unique identifier by Pulsar IO runtime to deduplicate messages and achieve exactly-once processing guarantee.</td></tr>
+<tr><td><code>Properties</code></td><td>No</td><td>If the record carries user-defined properties, it returns those properties.</td></tr>
+<tr><td><code>DestinationTopic</code></td><td>No</td><td>Topic to which message should be written.</td></tr>
+<tr><td><code>Message</code></td><td>No</td><td>A class which carries data sent by users.<br/><br/>For more information, see <a href="https://github.com/apache/pulsar/blob/master/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/Message.java">Message.java</a>.</td></tr>
+</tbody>
+</table>
+</li>
+<li><p><a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-functions/api-java/src/main/java/org/apache/pulsar/functions/api/Record.java#L28"><code>Record</code></a>
+ should provide the following methods:</p>
+<table>
+<thead>
+<tr><th>Method</th><th>Description</th></tr>
+</thead>
+<tbody>
+<tr><td><code>ack</code></td><td>Acknowledge that the record is fully processed.</td></tr>
+<tr><td><code>fail</code></td><td>Indicate that the record fails to be processed.</td></tr>
+</tbody>
+</table>
+</li>
+</ul></li>
+</ol>
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="tip"></a><a href="#tip" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
+<p>For more information about <strong>how to create a source connector</strong>, see <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaAbstractSource.java"><code>KafkaSource</code></a>
+.</p>
+</blockquote>
+<h3><a class="anchor" aria-hidden="true" id="sink"></a><a href="#sink" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Developing a sink connector <strong>is similar to</strong> developing a source connector, that is, you need to implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java"><code>Sink</code></a>
+ interface, which means implementing the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java#L36"><code>open</code></a>
+ method and the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java#L44"><code>write</code></a>
+ method.</p>
+<ol>
+<li><p>Implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java#L36"><code>open</code></a>
  method.</p>
 <pre><code class="hljs css language-java">    <span class="hljs-comment">/**
-     * Open connector with configuration
-     *
-     * <span class="hljs-doctag">@param</span> config initialization config
-     * <span class="hljs-doctag">@param</span> sinkContext
-     * <span class="hljs-doctag">@throws</span> Exception IO type exceptions when opening a connector
-     */</span>
+    * Open connector with configuration
+    *
+    * <span class="hljs-doctag">@param</span> config initialization config
+    * <span class="hljs-doctag">@param</span> sinkContext
+    * <span class="hljs-doctag">@throws</span> Exception IO type exceptions when opening a connector
+    */</span>
     <span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">open</span><span class="hljs-params">(<span class="hljs-keyword">final</span> Map&lt;String, Object&gt; config, SinkContext sinkContext)</span> <span class="hljs-keyword">throws</span> Exception</span>;
-</code></pre>
-<p>The main task for a Sink implementor is to implement <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java#L44"><code>write</code></a>
+</code></pre></li>
+<li><p>Implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java#L44"><code>write</code></a>
  method.</p>
 <pre><code class="hljs css language-java">    <span class="hljs-comment">/**
-     * Write a message to Sink
-     * <span class="hljs-doctag">@param</span> inputRecordContext Context of input record from the source
-     * <span class="hljs-doctag">@param</span> record record to write to sink
-     * <span class="hljs-doctag">@throws</span> Exception
-     */</span>
+    * Write a message to Sink
+    * <span class="hljs-doctag">@param</span> inputRecordContext Context of input record from the source
+    * <span class="hljs-doctag">@param</span> record record to write to sink
+    * <span class="hljs-doctag">@throws</span> Exception
+    */</span>
     <span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">write</span><span class="hljs-params">(Record&lt;T&gt; record)</span> <span class="hljs-keyword">throws</span> Exception</span>;
 </code></pre>
-<p>In the implemention of <code>write</code> method, the implementor can decide how to write the value and
-the optional key to the actual source, and leverage all the provided information such as
-<code>Partition Id</code>, <code>Record Sequence</code> for achieving different processing guarantees. The implementor
-is also responsible for acknowledging records if it has successfully written them or failing
-records if has failed to write them.</p>
-<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>During the implementation, you can decide how to write the <code>Value</code> and
+the <code>Key</code> to the actual source, and leverage all the provided information such as
+<code>PartitionId</code> and <code>RecordSequence</code> to achieve different processing guarantees.</p>
+<p>You also need to ack records (if messages are sent successfully) or fail records (if messages fail to send).</p></li>
+</ol>
+<h2><a class="anchor" aria-hidden="true" id="test"></a><a href="#test" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Testing connectors can be challenging because Pulsar IO connectors interact with two systems
-that may be difficult to mock - Pulsar and the system the connector is connecting to. It is
-recommended to write very specificially test the functionalities of the connector classes
-while mocking the external services.</p>
-<p>Once you have written sufficient unit tests for your connector, we also recommend adding
-separate integration tests to verify end-to-end functionality. In Pulsar, we are using
-<a href="https://www.testcontainers.org/">testcontainers</a> for all Pulsar integration tests. Pulsar IO
-<a href="https://github.com/apache/incubator-pulsar/tree/master//tests/integration/src/test/java/org/apache/pulsar/tests/integration/io"><code>IntegrationTests</code></a>
- are good examples to follow on integration testing your connectors.</p>
-<h3><a class="anchor" aria-hidden="true" id="packaging"></a><a href="#packaging" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Once you've developed and tested your connector, you must package it so that it can be submitted
-to a <a href="/docs/en/next/functions-overview">Pulsar Functions</a> cluster. There are two approaches described
-here work with Pulsar Functions' runtime.</p>
+that may be difficult to mock—Pulsar and the system to which the connector is connecting.</p>
+<p>It is
+recommended writing special tests to test the connector functionalities as below
+while mocking the external service.</p>
+<h3><a class="anchor" aria-hidden="true" id="unit-test"></a><a href="#unit-test" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>You can create unit tests for your connector.</p>
+<h3><a class="anchor" aria-hidden="true" id="integration-test"></a><a href="#integration-test" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Once you have written sufficient unit tests, you can add
+separate integration tests to verify end-to-end functionality.</p>
+<p>Pulsar uses
+<a href="https://www.testcontainers.org/">testcontainers</a> <strong>for all integration tests</strong>.</p>
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="tip-1"></a><a href="#tip-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.64 1-2.09 [...]
+<p>For more information about <strong>how to create integration tests for Pulsar connectors</strong>, see <a href="https://github.com/apache/incubator-pulsar/tree/master//tests/integration/src/test/java/org/apache/pulsar/tests/integration/io"><code>IntegrationTests</code></a>
+.</p>
+</blockquote>
+<h2><a class="anchor" aria-hidden="true" id="package"></a><a href="#package" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Once you've developed and tested your connector, you need to package it so that it can be submitted
+to a <a href="/docs/en/next/functions-overview">Pulsar Functions</a> cluster.</p>
+<p>There are two methods to
+work with Pulsar Functions' runtime, that is, <a href="#nar">NAR</a> and <a href="#uber-jar">uber JAR</a>.</p>
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="note"></a><a href="#note" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 plan to package and distribute your connector for others to use, you are obligated to
-properly license and copyright your own code and to adhere to the licensing and copyrights of
-all libraries your code uses and that you include in your distribution. If you are using the
-approach described in <a href="#creating-a-nar-package">&quot;Creating a NAR package&quot;</a>, the NAR plugin will
-automatically create a <code>DEPENDENCIES</code> file in the generated NAR package, including the proper
+license and copyright your own code properly. Remember to add the license and copyright to
+all libraries your code uses and to your distribution.</p>
+<p>If you use the <a href="#nar">NAR</a> method, the NAR plugin
+automatically creates a <code>DEPENDENCIES</code> file in the generated NAR package, including the proper
 licensing and copyrights of all libraries of your connector.</p>
-<h4><a class="anchor" aria-hidden="true" id="creating-a-nar-package"></a><a href="#creating-a-nar-package" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
-<p>The easiest approach to packaging a Pulsar IO connector is to create a NAR package using
+</blockquote>
+<h3><a class="anchor" aria-hidden="true" id="nar"></a><a href="#nar" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
+<p><strong>NAR</strong> stands for NiFi Archive, which is a custom packaging mechanism used by Apache NiFi, to provide
+a bit of Java ClassLoader isolation.</p>
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="tip-2"></a><a href="#tip-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.09 [...]
+<p>For more information about <strong>how NAR works</strong>, see
+<a href="https://medium.com/hashmapinc/nifi-nar-files-explained-14113f7796fd">here</a>.</p>
+</blockquote>
+<p>Pulsar uses the same mechanism for packaging <strong>all</strong> <a href="io-connectors">built-in connectors</a>.</p>
+<p>The easiest approach to package a Pulsar connector is to create a NAR package using
 <a href="https://mvnrepository.com/artifact/org.apache.nifi/nifi-nar-maven-plugin">nifi-nar-maven-plugin</a>.</p>
-<p>NAR stands for NiFi Archive. It is a custom packaging mechanism used by Apache NiFi, to provide
-a bit of Java ClassLoader isolation. For more details, you can read this
-<a href="https://medium.com/hashmapinc/nifi-nar-files-explained-14113f7796fd">blog post</a> to understand
-how NAR works. Pulsar uses the same mechanism for packaging all the <a href="io-connectors">builtin connectors</a>.</p>
-<p>All what you need is to include this <a href="https://mvnrepository.com/artifact/org.apache.nifi/nifi-nar-maven-plugin">nifi-nar-maven-plugin</a> in your maven project for your connector. For example:</p>
+<p>All you need to do is to include this <a href="https://mvnrepository.com/artifact/org.apache.nifi/nifi-nar-maven-plugin">nifi-nar-maven-plugin</a> in your maven project for your connector as below.</p>
 <pre><code class="hljs css language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">plugins</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">plugin</span>&gt;</span>
     <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.apache.nifi<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
@@ -208,12 +251,15 @@ how NAR works. Pulsar uses the same mechanism for packaging all the <a href="io-
   <span class="hljs-tag">&lt;/<span class="hljs-name">plugin</span>&gt;</span>
 <span class="hljs-tag">&lt;/<span class="hljs-name">plugins</span>&gt;</span>
 </code></pre>
-<p>The <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/twitter"><code>TwitterFirehose</code></a>
- connector is a good example to follow.</p>
-<h4><a class="anchor" aria-hidden="true" id="creating-an-uber-jar"></a><a href="#creating-an-uber-jar" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 [...]
-<p>An alternative approach is to create an <em>uber JAR</em> that contains all of the connector's JAR files
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="tip-3"></a><a href="#tip-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.64 1-2.09 [...]
+<p>For more information about an <strong>how to use NAR for Pulsar connectors</strong>, see <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/twitter/pom.xml#L79"><code>TwitterFirehose</code></a>
+.</p>
+</blockquote>
+<h3><a class="anchor" aria-hidden="true" id="uber-jar"></a><a href="#uber-jar" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>An alternative approach is to create an <strong>uber JAR</strong> that contains all of the connector's JAR files
 and other resource files. No directory internal structure is necessary.</p>
-<p>You can use <a href="https://maven.apache.org/plugins/maven-shade-plugin/examples/includes-excludes.html">maven-shade-plugin</a> to create a Uber JAR. For example:</p>
+<p>You can use <a href="https://maven.apache.org/plugins/maven-shade-plugin/examples/includes-excludes.html">maven-shade-plugin</a> to create a uber JAR as below:</p>
 <pre><code class="hljs css language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">plugin</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.apache.maven.plugins<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>maven-shade-plugin<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
@@ -235,7 +281,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/next/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/en/next/reference-connector-admin"><span>Connector Admin CLI</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/en/next/reference-connector-admin"><span>Connector Admin CLI</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#develop">Develop</a><ul class="toc-headings"><li><a href="#source">Source</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/io-develop/index.html b/content/docs/en/next/io-develop/index.html
index 710d40d..f5c2c99 100644
--- a/content/docs/en/next/io-develop/index.html
+++ b/content/docs/en/next/io-develop/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Develop Connectors · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="This guide describes how developers can write new connectors for Pulsar IO to move data"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property= [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>How to develop Pulsar connectors · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="This guide describes how to develop Pulsar connectors to move data"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:tit [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -74,132 +74,175 @@
                 };
               }
             });
-        </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
-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/next/functions-overview">Pulsar Functions</a>. So writing
-a Pulsar IO connector is as simple as writing a Pulsar function. Pulsar IO connectors come
-in two flavors: <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java"><code>Source</code></a>
-,
-which import data from another system, and <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java"><code>Sink</code></a>
-,
-which export data to another system. For example, <a href="/docs/en/next/io-kinesis">KinesisSink</a> would export
-the messages of a Pulsar topic to a Kinesis stream, and <a href="/docs/en/next/io-rabbitmq">RabbitmqSource</a> would import
-the messages of a RabbitMQ queue to a Pulsar topic.</p>
-<h3><a class="anchor" aria-hidden="true" id="developing"></a><a href="#developing" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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="develop-a-source-connector"></a><a href="#develop-a-source-connector" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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>What you need to develop a source connector is to implement <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java"><code>Source</code></a>
+        </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">How to develop Pulsar connectors</h1></header><article><div><span><p>This guide describes how to develop Pulsar connectors to move data
+between Pulsar and other systems.</p>
+<p>Pulsar connectors are special <a href="/docs/en/next/functions-overview">Pulsar Functions</a>, so creating
+a Pulsar connector is similar to creating a Pulsar function.</p>
+<p>Pulsar connectors come in two types:</p>
+<table>
+<thead>
+<tr><th>Type</th><th>Description</th><th>Example</th></tr>
+</thead>
+<tbody>
+<tr><td><a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java"><code>Source</code></a>
+</td><td>Import data from another system to Pulsar.</td><td><a href="/docs/en/next/io-rabbitmq">RabbitMQ source connector</a> imports the messages of a RabbitMQ queue to a Pulsar topic.</td></tr>
+<tr><td><a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java"><code>Sink</code></a>
+</td><td>Export data from Pulsar to another system.</td><td><a href="/docs/en/next/io-kinesis">Kinesis sink connector</a> exports the messages of a Pulsar topic to a Kinesis stream.</td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="develop"></a><a href="#develop" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 develop Pulsar source connectors and sink connectors.</p>
+<h3><a class="anchor" aria-hidden="true" id="source"></a><a href="#source" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Developing a source connector is to implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java"><code>Source</code></a>
 
-interface.</p>
-<p>First, you need to implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java#L33"><code>open</code></a>
- method. This method will be called once when the source connector
-is initialized. In this method, you can retrieve all the connector specific settings through
-the passed <code>config</code> parameter, and initialize all the necessary resourcess. For example, a Kafka
-connector can create the Kafka client in this <code>open</code> method.</p>
-<p>Beside the passed-in <code>config</code> object, the Pulsar runtime also provides a <code>SourceContext</code> for the
-connector to access runtime resources for tasks like collecting metrics. The implementation can
-save the <code>SourceContext</code> for futher usage.</p>
-<pre><code class="hljs css language-java">    <span class="hljs-comment">/**
-     * Open connector with configuration
-     *
-     * <span class="hljs-doctag">@param</span> config initialization config
-     * <span class="hljs-doctag">@param</span> sourceContext
-     * <span class="hljs-doctag">@throws</span> Exception IO type exceptions when opening a connector
-     */</span>
-    <span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">open</span><span class="hljs-params">(<span class="hljs-keyword">final</span> Map&lt;String, Object&gt; config, SourceContext sourceContext)</span> <span class="hljs-keyword">throws</span> Exception</span>;
+interface, which means you need to implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java#L33"><code>open</code></a>
+ method and the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-functions/api-java/src/main/java/org/apache/pulsar/functions/api/Record.java#L28"><code>record</code></a>
+ method.</p>
+<ol>
+<li><p>Implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java#L33"><code>open</code></a>
+ method.</p>
+<pre><code class="hljs css language-java"><span class="hljs-comment">/**
+* Open connector with configuration
+*
+* <span class="hljs-doctag">@param</span> config initialization config
+* <span class="hljs-doctag">@param</span> sourceContext
+* <span class="hljs-doctag">@throws</span> Exception IO type exceptions when opening a connector
+*/</span>
+<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">open</span><span class="hljs-params">(<span class="hljs-keyword">final</span> Map&lt;String, Object&gt; config, SourceContext sourceContext)</span> <span class="hljs-keyword">throws</span> Exception</span>;
 </code></pre>
-<p>The main task for a Source implementor is to implement <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java#L41"><code>read</code></a>
-
-method.</p>
+<p>This method is called when the source connector is initialized.</p>
+<p>In this method, you can retrieve all connector specific settings through the passed-in <code>config</code> parameter and initialize all necessary resources.</p>
+<p>For example, a Kafka connector can create a Kafka client in this <code>open</code> method.</p>
+<p>Besides, Pulsar runtime also provides a <code>SourceContext</code> for the
+connector to access runtime resources for tasks like collecting metrics. The implementation can save the <code>SourceContext</code> for future use.</p></li>
+<li><p>Implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Source.java#L41"><code>read</code></a>
+ method.</p>
 <pre><code class="hljs css language-java">    <span class="hljs-comment">/**
-     * Reads the next message from source.
-     * If source does not have any new messages, this call should block.
-     * <span class="hljs-doctag">@return</span> next message from source.  The return result should never be null
-     * <span class="hljs-doctag">@throws</span> Exception
-     */</span>
+    * Reads the next message from source.
+    * If source does not have any new messages, this call should block.
+    * <span class="hljs-doctag">@return</span> next message from source.  The return result should never be null
+    * <span class="hljs-doctag">@throws</span> Exception
+    */</span>
     <span class="hljs-function">Record&lt;T&gt; <span class="hljs-title">read</span><span class="hljs-params">()</span> <span class="hljs-keyword">throws</span> Exception</span>;
 </code></pre>
-<p>The implementation should be blocking on this method if nothing to return. It should never return
-<code>null</code>. The returned <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-functions/api-java/src/main/java/org/apache/pulsar/functions/api/Record.java#L28"><code>Record</code></a>
- should encapsulates the information that is needed by
-Pulsar IO runtime.</p>
-<p>These information includes:</p>
+<p>If nothing to return, the implementation should be blocking rather than returning <code>null</code>.</p>
+<p>The returned <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-functions/api-java/src/main/java/org/apache/pulsar/functions/api/Record.java#L28"><code>Record</code></a>
+ should encapsulate the following information, which is needed by Pulsar IO runtime.</p>
 <ul>
-<li><em>Topic Name</em>: <em>Optional</em>. If the record is originated from a Pulsar topic, it should be the Pulsar topic name.</li>
-<li><em>Key</em>: <em>Optional</em>. If the record has a key associated with it.</li>
-<li><em>Value</em>: <em>Required</em>. The actual data of this record.</li>
-<li><em>Partition Id</em>: <em>Optional</em>. If the record is originated from a partitioned source,
-return its partition id. The partition id will be used as part of the unique identifier
-by Pulsar IO runtime to do message deduplication and achieve exactly-once processing guarantee.</li>
-<li><em>Record Sequence</em>: <em>Optional</em>. If the record is originated from a sequential source,
-return its record sequence. The record sequence will be used as part of the unique identifier
-by Pulsar IO runtime to do message deduplication and achieve exactly-once processing guarantee.</li>
-<li><em>Properties</em>: <em>Optional</em>. If the record carries user-defined properties, return those properties.</li>
-</ul>
-<p>Additionally, the implemention of the record should provide two methods: <code>ack</code> and <code>fail</code>. These
-two methods will be used by Pulsar IO connector to acknowledge the records that it has done
-processing and fail the records that it has failed to process.</p>
-<p><a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaAbstractSource.java"><code>KafkaSource</code></a>
- is a good example to follow.</p>
-<h4><a class="anchor" aria-hidden="true" id="develop-a-sink-connector"></a><a href="#develop-a-sink-connector" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.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>Developing a sink connector is as easy as developing a source connector. You just need to
-implement <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java"><code>Sink</code></a>
- interface.</p>
-<p>Similarly, you first need to implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java#L36"><code>open</code></a>
- method to initialize all the necessary resources
-before implementing the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java#L44"><code>write</code></a>
+<li><p><a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-functions/api-java/src/main/java/org/apache/pulsar/functions/api/Record.java#L28"><code>Record</code></a>
+ should provide the following variables:</p>
+<table>
+<thead>
+<tr><th>Variable</th><th>Required</th><th>Description</th></tr>
+</thead>
+<tbody>
+<tr><td><code>TopicName</code></td><td>No</td><td>Pulsar topic name from which the record is originated from.</td></tr>
+<tr><td><code>Key</code></td><td>No</td><td>Messages can optionally be tagged with keys.<br/><br/>For more information, see <a href="/docs/en/next/concepts-messaging#routing-modes">Routing modes</a>.</td></tr>
+<tr><td><code>Value</code></td><td>Yes</td><td>Actual data of the record.</td></tr>
+<tr><td><code>EventTime</code></td><td>No</td><td>Event time of the record from the source.</td></tr>
+<tr><td><code>PartitionId</code></td><td>No</td><td>If the record is originated from a partitioned source, it returns its <code>PartitionId</code>. <br/><br/><code>PartitionId</code> is used as a part of the unique identifier by Pulsar IO runtime to deduplicate messages and achieve exactly-once processing guarantee.</td></tr>
+<tr><td><code>RecordSequence</code></td><td>No</td><td>If the record is originated from a sequential source, it returns its <code>RecordSequence</code>.<br/><br/><code>RecordSequence</code> is used as a part of the unique identifier by Pulsar IO runtime to deduplicate messages and achieve exactly-once processing guarantee.</td></tr>
+<tr><td><code>Properties</code></td><td>No</td><td>If the record carries user-defined properties, it returns those properties.</td></tr>
+<tr><td><code>DestinationTopic</code></td><td>No</td><td>Topic to which message should be written.</td></tr>
+<tr><td><code>Message</code></td><td>No</td><td>A class which carries data sent by users.<br/><br/>For more information, see <a href="https://github.com/apache/pulsar/blob/master/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/Message.java">Message.java</a>.</td></tr>
+</tbody>
+</table>
+</li>
+<li><p><a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-functions/api-java/src/main/java/org/apache/pulsar/functions/api/Record.java#L28"><code>Record</code></a>
+ should provide the following methods:</p>
+<table>
+<thead>
+<tr><th>Method</th><th>Description</th></tr>
+</thead>
+<tbody>
+<tr><td><code>ack</code></td><td>Acknowledge that the record is fully processed.</td></tr>
+<tr><td><code>fail</code></td><td>Indicate that the record fails to be processed.</td></tr>
+</tbody>
+</table>
+</li>
+</ul></li>
+</ol>
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="tip"></a><a href="#tip" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
+<p>For more information about <strong>how to create a source connector</strong>, see <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaAbstractSource.java"><code>KafkaSource</code></a>
+.</p>
+</blockquote>
+<h3><a class="anchor" aria-hidden="true" id="sink"></a><a href="#sink" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Developing a sink connector <strong>is similar to</strong> developing a source connector, that is, you need to implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java"><code>Sink</code></a>
+ interface, which means implementing the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java#L36"><code>open</code></a>
+ method and the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java#L44"><code>write</code></a>
+ method.</p>
+<ol>
+<li><p>Implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java#L36"><code>open</code></a>
  method.</p>
 <pre><code class="hljs css language-java">    <span class="hljs-comment">/**
-     * Open connector with configuration
-     *
-     * <span class="hljs-doctag">@param</span> config initialization config
-     * <span class="hljs-doctag">@param</span> sinkContext
-     * <span class="hljs-doctag">@throws</span> Exception IO type exceptions when opening a connector
-     */</span>
+    * Open connector with configuration
+    *
+    * <span class="hljs-doctag">@param</span> config initialization config
+    * <span class="hljs-doctag">@param</span> sinkContext
+    * <span class="hljs-doctag">@throws</span> Exception IO type exceptions when opening a connector
+    */</span>
     <span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">open</span><span class="hljs-params">(<span class="hljs-keyword">final</span> Map&lt;String, Object&gt; config, SinkContext sinkContext)</span> <span class="hljs-keyword">throws</span> Exception</span>;
-</code></pre>
-<p>The main task for a Sink implementor is to implement <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java#L44"><code>write</code></a>
+</code></pre></li>
+<li><p>Implement the <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/core/src/main/java/org/apache/pulsar/io/core/Sink.java#L44"><code>write</code></a>
  method.</p>
 <pre><code class="hljs css language-java">    <span class="hljs-comment">/**
-     * Write a message to Sink
-     * <span class="hljs-doctag">@param</span> inputRecordContext Context of input record from the source
-     * <span class="hljs-doctag">@param</span> record record to write to sink
-     * <span class="hljs-doctag">@throws</span> Exception
-     */</span>
+    * Write a message to Sink
+    * <span class="hljs-doctag">@param</span> inputRecordContext Context of input record from the source
+    * <span class="hljs-doctag">@param</span> record record to write to sink
+    * <span class="hljs-doctag">@throws</span> Exception
+    */</span>
     <span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">write</span><span class="hljs-params">(Record&lt;T&gt; record)</span> <span class="hljs-keyword">throws</span> Exception</span>;
 </code></pre>
-<p>In the implemention of <code>write</code> method, the implementor can decide how to write the value and
-the optional key to the actual source, and leverage all the provided information such as
-<code>Partition Id</code>, <code>Record Sequence</code> for achieving different processing guarantees. The implementor
-is also responsible for acknowledging records if it has successfully written them or failing
-records if has failed to write them.</p>
-<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>During the implementation, you can decide how to write the <code>Value</code> and
+the <code>Key</code> to the actual source, and leverage all the provided information such as
+<code>PartitionId</code> and <code>RecordSequence</code> to achieve different processing guarantees.</p>
+<p>You also need to ack records (if messages are sent successfully) or fail records (if messages fail to send).</p></li>
+</ol>
+<h2><a class="anchor" aria-hidden="true" id="test"></a><a href="#test" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Testing connectors can be challenging because Pulsar IO connectors interact with two systems
-that may be difficult to mock - Pulsar and the system the connector is connecting to. It is
-recommended to write very specificially test the functionalities of the connector classes
-while mocking the external services.</p>
-<p>Once you have written sufficient unit tests for your connector, we also recommend adding
-separate integration tests to verify end-to-end functionality. In Pulsar, we are using
-<a href="https://www.testcontainers.org/">testcontainers</a> for all Pulsar integration tests. Pulsar IO
-<a href="https://github.com/apache/incubator-pulsar/tree/master//tests/integration/src/test/java/org/apache/pulsar/tests/integration/io"><code>IntegrationTests</code></a>
- are good examples to follow on integration testing your connectors.</p>
-<h3><a class="anchor" aria-hidden="true" id="packaging"></a><a href="#packaging" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Once you've developed and tested your connector, you must package it so that it can be submitted
-to a <a href="/docs/en/next/functions-overview">Pulsar Functions</a> cluster. There are two approaches described
-here work with Pulsar Functions' runtime.</p>
+that may be difficult to mock—Pulsar and the system to which the connector is connecting.</p>
+<p>It is
+recommended writing special tests to test the connector functionalities as below
+while mocking the external service.</p>
+<h3><a class="anchor" aria-hidden="true" id="unit-test"></a><a href="#unit-test" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>You can create unit tests for your connector.</p>
+<h3><a class="anchor" aria-hidden="true" id="integration-test"></a><a href="#integration-test" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Once you have written sufficient unit tests, you can add
+separate integration tests to verify end-to-end functionality.</p>
+<p>Pulsar uses
+<a href="https://www.testcontainers.org/">testcontainers</a> <strong>for all integration tests</strong>.</p>
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="tip-1"></a><a href="#tip-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.64 1-2.09 [...]
+<p>For more information about <strong>how to create integration tests for Pulsar connectors</strong>, see <a href="https://github.com/apache/incubator-pulsar/tree/master//tests/integration/src/test/java/org/apache/pulsar/tests/integration/io"><code>IntegrationTests</code></a>
+.</p>
+</blockquote>
+<h2><a class="anchor" aria-hidden="true" id="package"></a><a href="#package" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Once you've developed and tested your connector, you need to package it so that it can be submitted
+to a <a href="/docs/en/next/functions-overview">Pulsar Functions</a> cluster.</p>
+<p>There are two methods to
+work with Pulsar Functions' runtime, that is, <a href="#nar">NAR</a> and <a href="#uber-jar">uber JAR</a>.</p>
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="note"></a><a href="#note" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 plan to package and distribute your connector for others to use, you are obligated to
-properly license and copyright your own code and to adhere to the licensing and copyrights of
-all libraries your code uses and that you include in your distribution. If you are using the
-approach described in <a href="#creating-a-nar-package">&quot;Creating a NAR package&quot;</a>, the NAR plugin will
-automatically create a <code>DEPENDENCIES</code> file in the generated NAR package, including the proper
+license and copyright your own code properly. Remember to add the license and copyright to
+all libraries your code uses and to your distribution.</p>
+<p>If you use the <a href="#nar">NAR</a> method, the NAR plugin
+automatically creates a <code>DEPENDENCIES</code> file in the generated NAR package, including the proper
 licensing and copyrights of all libraries of your connector.</p>
-<h4><a class="anchor" aria-hidden="true" id="creating-a-nar-package"></a><a href="#creating-a-nar-package" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
-<p>The easiest approach to packaging a Pulsar IO connector is to create a NAR package using
+</blockquote>
+<h3><a class="anchor" aria-hidden="true" id="nar"></a><a href="#nar" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
+<p><strong>NAR</strong> stands for NiFi Archive, which is a custom packaging mechanism used by Apache NiFi, to provide
+a bit of Java ClassLoader isolation.</p>
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="tip-2"></a><a href="#tip-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.09 [...]
+<p>For more information about <strong>how NAR works</strong>, see
+<a href="https://medium.com/hashmapinc/nifi-nar-files-explained-14113f7796fd">here</a>.</p>
+</blockquote>
+<p>Pulsar uses the same mechanism for packaging <strong>all</strong> <a href="io-connectors">built-in connectors</a>.</p>
+<p>The easiest approach to package a Pulsar connector is to create a NAR package using
 <a href="https://mvnrepository.com/artifact/org.apache.nifi/nifi-nar-maven-plugin">nifi-nar-maven-plugin</a>.</p>
-<p>NAR stands for NiFi Archive. It is a custom packaging mechanism used by Apache NiFi, to provide
-a bit of Java ClassLoader isolation. For more details, you can read this
-<a href="https://medium.com/hashmapinc/nifi-nar-files-explained-14113f7796fd">blog post</a> to understand
-how NAR works. Pulsar uses the same mechanism for packaging all the <a href="io-connectors">builtin connectors</a>.</p>
-<p>All what you need is to include this <a href="https://mvnrepository.com/artifact/org.apache.nifi/nifi-nar-maven-plugin">nifi-nar-maven-plugin</a> in your maven project for your connector. For example:</p>
+<p>All you need to do is to include this <a href="https://mvnrepository.com/artifact/org.apache.nifi/nifi-nar-maven-plugin">nifi-nar-maven-plugin</a> in your maven project for your connector as below.</p>
 <pre><code class="hljs css language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">plugins</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">plugin</span>&gt;</span>
     <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.apache.nifi<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
@@ -208,12 +251,15 @@ how NAR works. Pulsar uses the same mechanism for packaging all the <a href="io-
   <span class="hljs-tag">&lt;/<span class="hljs-name">plugin</span>&gt;</span>
 <span class="hljs-tag">&lt;/<span class="hljs-name">plugins</span>&gt;</span>
 </code></pre>
-<p>The <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/twitter"><code>TwitterFirehose</code></a>
- connector is a good example to follow.</p>
-<h4><a class="anchor" aria-hidden="true" id="creating-an-uber-jar"></a><a href="#creating-an-uber-jar" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 [...]
-<p>An alternative approach is to create an <em>uber JAR</em> that contains all of the connector's JAR files
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="tip-3"></a><a href="#tip-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.64 1-2.09 [...]
+<p>For more information about an <strong>how to use NAR for Pulsar connectors</strong>, see <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-io/twitter/pom.xml#L79"><code>TwitterFirehose</code></a>
+.</p>
+</blockquote>
+<h3><a class="anchor" aria-hidden="true" id="uber-jar"></a><a href="#uber-jar" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>An alternative approach is to create an <strong>uber JAR</strong> that contains all of the connector's JAR files
 and other resource files. No directory internal structure is necessary.</p>
-<p>You can use <a href="https://maven.apache.org/plugins/maven-shade-plugin/examples/includes-excludes.html">maven-shade-plugin</a> to create a Uber JAR. For example:</p>
+<p>You can use <a href="https://maven.apache.org/plugins/maven-shade-plugin/examples/includes-excludes.html">maven-shade-plugin</a> to create a uber JAR as below:</p>
 <pre><code class="hljs css language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">plugin</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.apache.maven.plugins<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>maven-shade-plugin<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
@@ -235,7 +281,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/next/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/en/next/reference-connector-admin"><span>Connector Admin CLI</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/en/next/reference-connector-admin"><span>Connector Admin CLI</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#develop">Develop</a><ul class="toc-headings"><li><a href="#source">Source</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/io-overview.html b/content/docs/en/next/io-overview.html
index a4dcfff..96c1cb2 100644
--- a/content/docs/en/next/io-overview.html
+++ b/content/docs/en/next/io-overview.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar IO Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Messaging systems are most powerful when you can easily use them in conjunction with external systems like databases and other messaging systems. **Pulsar IO** is a feature of Pulsar that enables yo [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar connector overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Messaging systems are most powerful when you can easily use them with external systems like databases and other messaging systems. "/><meta name="docsearch:version" content="next"/><meta name [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -74,41 +74,28 @@
                 };
               }
             });
-        </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-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar IO Overview</h1></header><article><div><span><p>Messaging systems are most powerful when you can easily use them in conjunction with external systems like [...]
+        </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-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar connector overview</h1></header><article><div><span><p>Messaging systems are most powerful when you can easily use them with external systems like databas [...]
+<p><strong>Pulsar IO connectors</strong> enable you to easily create, deploy, and manage connectors that interact with external systems, such as <a href="https://cassandra.apache.org">Apache Cassandra</a>, <a href="https://www.aerospike.com">Aerospike</a>, and many others.</p>
+<h2><a class="anchor" aria-hidden="true" id="concept"></a><a href="#concept" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Pulsar IO connectors come in two types: <strong>source</strong> and <strong>sink</strong>.</p>
+<p>This diagram illustrates the relationship between source, Pulsar, and sink:</p>
+<p><img src="/docs/assets/pulsar-io.png" alt="Pulsar IO diagram" title="Pulsar IO connectors (sources and sinks)"></p>
+<h3><a class="anchor" aria-hidden="true" id="source"></a><a href="#source" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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. [...]
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-io-and-pulsar-functions"></a><a href="#pulsar-io-and-pulsar-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 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>Under the hood, Pulsar IO connectors are specialized <a href="/docs/en/next/functions-overview">Pulsar Functions</a> purpose-built to interface with external systems. The <a href="/docs/en/next/io-quickstart">administrative interface</a> for Pulsar IO is, in fact, quite similar to that of Pulsar Functions.</p>
+<p>Sources <strong>feed data from external systems into Pulsar</strong>.</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="sources-and-sinks"></a><a href="#sources-and-sinks" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Pulsar IO connectors come in two types:</p>
-<ul>
-<li><strong>Sources</strong> feed data <em>into</em> Pulsar from other systems. Common sources include other messaging systems and &quot;firehose&quot;-style data pipeline APIs.</li>
-<li><strong>Sinks</strong> are fed data <em>from</em> Pulsar. Common sinks include other messaging systems and SQL and NoSQL databases.</li>
-</ul>
-<p>This diagram illustrates the relationship between sources, sinks, and Pulsar:</p>
-<p><img src="/docs/assets/pulsar-io.png" alt="Pulsar IO diagram" title="Pulsar IO connectors (sources and sinks)"></p>
-<h2><a class="anchor" aria-hidden="true" id="working-with-connectors"></a><a href="#working-with-connectors" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 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>Pulsar IO connectors can be managed via the <a href="/docs/en/next/pulsar-admin"><code>pulsar-admin</code></a> CLI tool, in particular the <a href="/docs/en/next/pulsar-admin#source"><code>source</code></a> and <a href="/docs/en/next/pulsar-admin#sink"><code>sink</code></a> commands.</p>
+<p>Common sources include other messaging systems and firehose-style data pipeline APIs.</p>
+<p>For the complete list of Pulsar built-in source connectors, see <a href="/docs/en/next/io-connectors#source-connector">source connector</a>.</p>
+<h3><a class="anchor" aria-hidden="true" id="sink"></a><a href="#sink" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 [...]
 <blockquote>
-<p>For a guide to managing connectors in your Pulsar installation, see the <a href="/docs/en/next/io-quickstart">Getting started with Pulsar IO</a></p>
+<p>Sinks <strong>feed data from Pulsar into external systems</strong>.</p>
 </blockquote>
-<p>The following connectors are currently available for Pulsar:</p>
-<table>
-<thead>
-<tr><th>Name</th><th>Java Class</th><th>Documentation</th></tr>
-</thead>
-<tbody>
-<tr><td><a href="https://www.aerospike.com/">Aerospike sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/aerospike/src/main/java/org/apache/pulsar/io/aerospike/AerospikeStringSink.java"><code>org.apache.pulsar.io.aerospike.AerospikeSink</code></a></td><td><a href="/docs/en/next/io-aerospike">Documentation</a></td></tr>
-<tr><td><a href="https://cassandra.apache.org">Cassandra sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/cassandra/src/main/java/org/apache/pulsar/io/cassandra/CassandraStringSink.java"><code>org.apache.pulsar.io.cassandra.CassandraSink</code></a></td><td><a href="/docs/en/next/io-cassandra">Documentation</a></td></tr>
-<tr><td><a href="https://kafka.apache.org">Kafka source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaStringSource.java"><code>org.apache.pulsar.io.kafka.KafkaSource</code></a></td><td><a href="/docs/en/next/io-kafka#source">Documentation</a></td></tr>
-<tr><td><a href="https://kafka.apache.org">Kafka sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaStringSink.java"><code>org.apache.pulsar.io.kafka.KafkaSink</code></a></td><td><a href="/docs/en/next/io-kafka#sink">Documentation</a></td></tr>
-<tr><td><a href="https://aws.amazon.com/kinesis/">Kinesis sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kinesis/src/main/java/org/apache/pulsar/io/kinesis/KinesisSink.java"><code>org.apache.pulsar.io.kinesis.KinesisSink</code></a></td><td><a href="/docs/en/next/io-kinesis#sink">Documentation</a></td></tr>
-<tr><td><a href="https://www.rabbitmq.com">RabbitMQ source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/rabbitmq/src/main/java/org/apache/pulsar/io/rabbitmq/RabbitMQSource.java"><code>org.apache.pulsar.io.rabbitmq.RabbitMQSource</code></a></td><td><a href="/docs/en/next/io-rabbitmq#sink">Documentation</a></td></tr>
-<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java"><code>org.apache.pulsar.io.twitter.TwitterFireHose</code></a></td><td><a href="/docs/en/next/io-twitter#source">Documentation</a></td></tr>
-<tr><td><a href="https://debezium.io/">CDC Connector</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka-connect-adaptor/src/main/java/org/apache/pulsar/io/kafka/connect/KafkaConnectSource.java"><code>org.apache.pulsar.io.kafka.connect.KafkaConnectSource</code></a></td><td><a href="/docs/en/next/io-cdc">Documentation</a></td></tr>
-</tbody>
-</table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/functions-cli"><span class="arrow-prev">← </span><span>Reference: CLI</span></a><a class="docs-next button" href="/docs/en/next/io-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#sources-and-sinks">Sources and sinks</a></li><li><a href="#working-with-connectors">Working with connec [...]
+<p>Common sinks include other messaging systems and SQL and NoSQL databases.</p>
+<p>For the complete list of Pulsar built-in sink connectors, see <a href="/docs/en/next/io-connectors#sink-connector">sink connector</a>.</p>
+<h2><a class="anchor" aria-hidden="true" id="work-with-connector"></a><a href="#work-with-connector" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 can manage Pulsar connectors (for example, create, update, start, stop, restart, reload, delete and perform other operations on connectors) via the <a href="/docs/en/next/reference-connector-admin">Connector CLI</a> with <a href="/docs/en/next/reference-connector-admin#sources">sources</a> and <a href="/docs/en/next/reference-connector-admin#sinks">sinks</a> subcommands.</p>
+<p>Connectors (sources and sinks) and Functions are components of instances, and they all run on Functions workers. When managing a source, sink or function via <strong>Pulsar admin CLI</strong> (that is, <a href="/docs/en/next/reference-connector-admin">Connector CLI</a> and <a href="/docs/en/next/functions-cli">Functions CLI</a>), an instance is started on a worker. For more information, see <a href="/docs/en/next/functions-worker#run-functions-worker-separately">Functions worker</a>.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/functions-cli"><span class="arrow-prev">← </span><span>Reference: CLI</span></a><a class="docs-next button" href="/docs/en/next/io-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#concept">Concept</a><ul class="toc-headings"><li><a href="#source">Source</a></li><li><a href="#sink">S [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/io-overview/index.html b/content/docs/en/next/io-overview/index.html
index a4dcfff..96c1cb2 100644
--- a/content/docs/en/next/io-overview/index.html
+++ b/content/docs/en/next/io-overview/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar IO Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Messaging systems are most powerful when you can easily use them in conjunction with external systems like databases and other messaging systems. **Pulsar IO** is a feature of Pulsar that enables yo [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar connector overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Messaging systems are most powerful when you can easily use them with external systems like databases and other messaging systems. "/><meta name="docsearch:version" content="next"/><meta name [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -74,41 +74,28 @@
                 };
               }
             });
-        </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-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar IO Overview</h1></header><article><div><span><p>Messaging systems are most powerful when you can easily use them in conjunction with external systems like [...]
+        </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-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar connector overview</h1></header><article><div><span><p>Messaging systems are most powerful when you can easily use them with external systems like databas [...]
+<p><strong>Pulsar IO connectors</strong> enable you to easily create, deploy, and manage connectors that interact with external systems, such as <a href="https://cassandra.apache.org">Apache Cassandra</a>, <a href="https://www.aerospike.com">Aerospike</a>, and many others.</p>
+<h2><a class="anchor" aria-hidden="true" id="concept"></a><a href="#concept" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Pulsar IO connectors come in two types: <strong>source</strong> and <strong>sink</strong>.</p>
+<p>This diagram illustrates the relationship between source, Pulsar, and sink:</p>
+<p><img src="/docs/assets/pulsar-io.png" alt="Pulsar IO diagram" title="Pulsar IO connectors (sources and sinks)"></p>
+<h3><a class="anchor" aria-hidden="true" id="source"></a><a href="#source" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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. [...]
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-io-and-pulsar-functions"></a><a href="#pulsar-io-and-pulsar-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 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>Under the hood, Pulsar IO connectors are specialized <a href="/docs/en/next/functions-overview">Pulsar Functions</a> purpose-built to interface with external systems. The <a href="/docs/en/next/io-quickstart">administrative interface</a> for Pulsar IO is, in fact, quite similar to that of Pulsar Functions.</p>
+<p>Sources <strong>feed data from external systems into Pulsar</strong>.</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="sources-and-sinks"></a><a href="#sources-and-sinks" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Pulsar IO connectors come in two types:</p>
-<ul>
-<li><strong>Sources</strong> feed data <em>into</em> Pulsar from other systems. Common sources include other messaging systems and &quot;firehose&quot;-style data pipeline APIs.</li>
-<li><strong>Sinks</strong> are fed data <em>from</em> Pulsar. Common sinks include other messaging systems and SQL and NoSQL databases.</li>
-</ul>
-<p>This diagram illustrates the relationship between sources, sinks, and Pulsar:</p>
-<p><img src="/docs/assets/pulsar-io.png" alt="Pulsar IO diagram" title="Pulsar IO connectors (sources and sinks)"></p>
-<h2><a class="anchor" aria-hidden="true" id="working-with-connectors"></a><a href="#working-with-connectors" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 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>Pulsar IO connectors can be managed via the <a href="/docs/en/next/pulsar-admin"><code>pulsar-admin</code></a> CLI tool, in particular the <a href="/docs/en/next/pulsar-admin#source"><code>source</code></a> and <a href="/docs/en/next/pulsar-admin#sink"><code>sink</code></a> commands.</p>
+<p>Common sources include other messaging systems and firehose-style data pipeline APIs.</p>
+<p>For the complete list of Pulsar built-in source connectors, see <a href="/docs/en/next/io-connectors#source-connector">source connector</a>.</p>
+<h3><a class="anchor" aria-hidden="true" id="sink"></a><a href="#sink" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 [...]
 <blockquote>
-<p>For a guide to managing connectors in your Pulsar installation, see the <a href="/docs/en/next/io-quickstart">Getting started with Pulsar IO</a></p>
+<p>Sinks <strong>feed data from Pulsar into external systems</strong>.</p>
 </blockquote>
-<p>The following connectors are currently available for Pulsar:</p>
-<table>
-<thead>
-<tr><th>Name</th><th>Java Class</th><th>Documentation</th></tr>
-</thead>
-<tbody>
-<tr><td><a href="https://www.aerospike.com/">Aerospike sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/aerospike/src/main/java/org/apache/pulsar/io/aerospike/AerospikeStringSink.java"><code>org.apache.pulsar.io.aerospike.AerospikeSink</code></a></td><td><a href="/docs/en/next/io-aerospike">Documentation</a></td></tr>
-<tr><td><a href="https://cassandra.apache.org">Cassandra sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/cassandra/src/main/java/org/apache/pulsar/io/cassandra/CassandraStringSink.java"><code>org.apache.pulsar.io.cassandra.CassandraSink</code></a></td><td><a href="/docs/en/next/io-cassandra">Documentation</a></td></tr>
-<tr><td><a href="https://kafka.apache.org">Kafka source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaStringSource.java"><code>org.apache.pulsar.io.kafka.KafkaSource</code></a></td><td><a href="/docs/en/next/io-kafka#source">Documentation</a></td></tr>
-<tr><td><a href="https://kafka.apache.org">Kafka sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaStringSink.java"><code>org.apache.pulsar.io.kafka.KafkaSink</code></a></td><td><a href="/docs/en/next/io-kafka#sink">Documentation</a></td></tr>
-<tr><td><a href="https://aws.amazon.com/kinesis/">Kinesis sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kinesis/src/main/java/org/apache/pulsar/io/kinesis/KinesisSink.java"><code>org.apache.pulsar.io.kinesis.KinesisSink</code></a></td><td><a href="/docs/en/next/io-kinesis#sink">Documentation</a></td></tr>
-<tr><td><a href="https://www.rabbitmq.com">RabbitMQ source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/rabbitmq/src/main/java/org/apache/pulsar/io/rabbitmq/RabbitMQSource.java"><code>org.apache.pulsar.io.rabbitmq.RabbitMQSource</code></a></td><td><a href="/docs/en/next/io-rabbitmq#sink">Documentation</a></td></tr>
-<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java"><code>org.apache.pulsar.io.twitter.TwitterFireHose</code></a></td><td><a href="/docs/en/next/io-twitter#source">Documentation</a></td></tr>
-<tr><td><a href="https://debezium.io/">CDC Connector</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka-connect-adaptor/src/main/java/org/apache/pulsar/io/kafka/connect/KafkaConnectSource.java"><code>org.apache.pulsar.io.kafka.connect.KafkaConnectSource</code></a></td><td><a href="/docs/en/next/io-cdc">Documentation</a></td></tr>
-</tbody>
-</table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/functions-cli"><span class="arrow-prev">← </span><span>Reference: CLI</span></a><a class="docs-next button" href="/docs/en/next/io-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#sources-and-sinks">Sources and sinks</a></li><li><a href="#working-with-connectors">Working with connec [...]
+<p>Common sinks include other messaging systems and SQL and NoSQL databases.</p>
+<p>For the complete list of Pulsar built-in sink connectors, see <a href="/docs/en/next/io-connectors#sink-connector">sink connector</a>.</p>
+<h2><a class="anchor" aria-hidden="true" id="work-with-connector"></a><a href="#work-with-connector" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 can manage Pulsar connectors (for example, create, update, start, stop, restart, reload, delete and perform other operations on connectors) via the <a href="/docs/en/next/reference-connector-admin">Connector CLI</a> with <a href="/docs/en/next/reference-connector-admin#sources">sources</a> and <a href="/docs/en/next/reference-connector-admin#sinks">sinks</a> subcommands.</p>
+<p>Connectors (sources and sinks) and Functions are components of instances, and they all run on Functions workers. When managing a source, sink or function via <strong>Pulsar admin CLI</strong> (that is, <a href="/docs/en/next/reference-connector-admin">Connector CLI</a> and <a href="/docs/en/next/functions-cli">Functions CLI</a>), an instance is started on a worker. For more information, see <a href="/docs/en/next/functions-worker#run-functions-worker-separately">Functions worker</a>.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/functions-cli"><span class="arrow-prev">← </span><span>Reference: CLI</span></a><a class="docs-next button" href="/docs/en/next/io-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#concept">Concept</a><ul class="toc-headings"><li><a href="#source">Source</a></li><li><a href="#sink">S [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/io-quickstart.html b/content/docs/en/next/io-quickstart.html
index 19b6014..aaff44f 100644
--- a/content/docs/en/next/io-quickstart.html
+++ b/content/docs/en/next/io-quickstart.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/io-quickstart/index.html b/content/docs/en/next/io-quickstart/index.html
index 19b6014..aaff44f 100644
--- a/content/docs/en/next/io-quickstart/index.html
+++ b/content/docs/en/next/io-quickstart/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/io-use.html b/content/docs/en/next/io-use.html
index 5de402f..557cae3 100644
--- a/content/docs/en/next/io-use.html
+++ b/content/docs/en/next/io-use.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/io-use/index.html b/content/docs/en/next/io-use/index.html
index 5de402f..557cae3 100644
--- a/content/docs/en/next/io-use/index.html
+++ b/content/docs/en/next/io-use/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/pulsar-2.0.html b/content/docs/en/next/pulsar-2.0.html
index 8a5c2c0..d52fefc 100644
--- a/content/docs/en/next/pulsar-2.0.html
+++ b/content/docs/en/next/pulsar-2.0.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/pulsar-2.0/index.html b/content/docs/en/next/pulsar-2.0/index.html
index 8a5c2c0..d52fefc 100644
--- a/content/docs/en/next/pulsar-2.0/index.html
+++ b/content/docs/en/next/pulsar-2.0/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/pulsar-admin.html b/content/docs/en/next/pulsar-admin.html
index 47c1879..c5cba58 100644
--- a/content/docs/en/next/pulsar-admin.html
+++ b/content/docs/en/next/pulsar-admin.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/pulsar-admin/index.html b/content/docs/en/next/pulsar-admin/index.html
index 47c1879..c5cba58 100644
--- a/content/docs/en/next/pulsar-admin/index.html
+++ b/content/docs/en/next/pulsar-admin/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/reference-cli-tools.html b/content/docs/en/next/reference-cli-tools.html
index e458558..eedf593 100644
--- a/content/docs/en/next/reference-cli-tools.html
+++ b/content/docs/en/next/reference-cli-tools.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/reference-cli-tools/index.html b/content/docs/en/next/reference-cli-tools/index.html
index e458558..eedf593 100644
--- a/content/docs/en/next/reference-cli-tools/index.html
+++ b/content/docs/en/next/reference-cli-tools/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/reference-configuration.html b/content/docs/en/next/reference-configuration.html
index 56de56e..6ba1528 100644
--- a/content/docs/en/next/reference-configuration.html
+++ b/content/docs/en/next/reference-configuration.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -195,6 +195,8 @@
 <tr><td>backlogQuotaCheckIntervalInSeconds</td><td>How often to check for topics that have reached the quota</td><td>60</td></tr>
 <tr><td>backlogQuotaDefaultLimitGB</td><td>Default per-topic backlog quota limit</td><td>10</td></tr>
 <tr><td>allowAutoTopicCreation</td><td>Enable topic auto creation if new producer or consumer connected</td><td>true</td></tr>
+<tr><td>allowAutoTopicCreationType</td><td>The type of topic that is allowed to be automatically created.(partitioned/non-partitioned)</td><td>non-partitioned</td></tr>
+<tr><td>defaultNumPartitions</td><td>The number of partitioned topics that is allowed to be automatically created if allowAutoTopicCreationType is partitioned</td><td>1</td></tr>
 <tr><td>brokerDeleteInactiveTopicsEnabled</td><td>Enable the deletion of inactive topics</td><td>true</td></tr>
 <tr><td>brokerDeleteInactiveTopicsFrequencySeconds</td><td>How often to check for inactive topics</td><td>60</td></tr>
 <tr><td>messageExpiryCheckIntervalInMinutes</td><td>How frequently to proactively check and purge expired messages</td><td>5</td></tr>
diff --git a/content/docs/en/next/reference-configuration/index.html b/content/docs/en/next/reference-configuration/index.html
index 56de56e..6ba1528 100644
--- a/content/docs/en/next/reference-configuration/index.html
+++ b/content/docs/en/next/reference-configuration/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -195,6 +195,8 @@
 <tr><td>backlogQuotaCheckIntervalInSeconds</td><td>How often to check for topics that have reached the quota</td><td>60</td></tr>
 <tr><td>backlogQuotaDefaultLimitGB</td><td>Default per-topic backlog quota limit</td><td>10</td></tr>
 <tr><td>allowAutoTopicCreation</td><td>Enable topic auto creation if new producer or consumer connected</td><td>true</td></tr>
+<tr><td>allowAutoTopicCreationType</td><td>The type of topic that is allowed to be automatically created.(partitioned/non-partitioned)</td><td>non-partitioned</td></tr>
+<tr><td>defaultNumPartitions</td><td>The number of partitioned topics that is allowed to be automatically created if allowAutoTopicCreationType is partitioned</td><td>1</td></tr>
 <tr><td>brokerDeleteInactiveTopicsEnabled</td><td>Enable the deletion of inactive topics</td><td>true</td></tr>
 <tr><td>brokerDeleteInactiveTopicsFrequencySeconds</td><td>How often to check for inactive topics</td><td>60</td></tr>
 <tr><td>messageExpiryCheckIntervalInMinutes</td><td>How frequently to proactively check and purge expired messages</td><td>5</td></tr>
diff --git a/content/docs/en/next/reference-connector-admin.html b/content/docs/en/next/reference-connector-admin.html
index 0b7994f..6c007ca 100644
--- a/content/docs/en/next/reference-connector-admin.html
+++ b/content/docs/en/next/reference-connector-admin.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -568,7 +568,7 @@
 <h4><a class="anchor" aria-hidden="true" id="usage-23"></a><a href="#usage-23" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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  [...]
 <pre><code class="hljs css language-bash">$ pulsar-admin sinks reload
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/next/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#sources"><code>sources</code></a><ul class="toc-headings"><li><a href="#create"><code>create</code></a> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/next/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#sources"><code>sources</code></a><ul class="toc-headings"><li><a href="#create"><code>create</code></a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/reference-connector-admin/index.html b/content/docs/en/next/reference-connector-admin/index.html
index 0b7994f..6c007ca 100644
--- a/content/docs/en/next/reference-connector-admin/index.html
+++ b/content/docs/en/next/reference-connector-admin/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -568,7 +568,7 @@
 <h4><a class="anchor" aria-hidden="true" id="usage-23"></a><a href="#usage-23" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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  [...]
 <pre><code class="hljs css language-bash">$ pulsar-admin sinks reload
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/en/next/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#sources"><code>sources</code></a><ul class="toc-headings"><li><a href="#create"><code>create</code></a> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/en/next/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#sources"><code>sources</code></a><ul class="toc-headings"><li><a href="#create"><code>create</code></a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/reference-metrics.html b/content/docs/en/next/reference-metrics.html
index 7c70978..8e41e50 100644
--- a/content/docs/en/next/reference-metrics.html
+++ b/content/docs/en/next/reference-metrics.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/reference-metrics/index.html b/content/docs/en/next/reference-metrics/index.html
index 7c70978..8e41e50 100644
--- a/content/docs/en/next/reference-metrics/index.html
+++ b/content/docs/en/next/reference-metrics/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/reference-terminology.html b/content/docs/en/next/reference-terminology.html
index e460a2d..e96eee5 100644
--- a/content/docs/en/next/reference-terminology.html
+++ b/content/docs/en/next/reference-terminology.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/reference-terminology/index.html b/content/docs/en/next/reference-terminology/index.html
index e460a2d..e96eee5 100644
--- a/content/docs/en/next/reference-terminology/index.html
+++ b/content/docs/en/next/reference-terminology/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/schema-evolution-compatibility.html b/content/docs/en/next/schema-evolution-compatibility.html
index 0912624..f1ebe65 100644
--- a/content/docs/en/next/schema-evolution-compatibility.html
+++ b/content/docs/en/next/schema-evolution-compatibility.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/schema-evolution-compatibility/index.html b/content/docs/en/next/schema-evolution-compatibility/index.html
index 0912624..f1ebe65 100644
--- a/content/docs/en/next/schema-evolution-compatibility/index.html
+++ b/content/docs/en/next/schema-evolution-compatibility/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/schema-get-started.html b/content/docs/en/next/schema-get-started.html
index 46cf7e7..74376fa 100644
--- a/content/docs/en/next/schema-get-started.html
+++ b/content/docs/en/next/schema-get-started.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/schema-get-started/index.html b/content/docs/en/next/schema-get-started/index.html
index 46cf7e7..74376fa 100644
--- a/content/docs/en/next/schema-get-started/index.html
+++ b/content/docs/en/next/schema-get-started/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/schema-manage.html b/content/docs/en/next/schema-manage.html
index e9a195c..947ad37 100644
--- a/content/docs/en/next/schema-manage.html
+++ b/content/docs/en/next/schema-manage.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/schema-manage/index.html b/content/docs/en/next/schema-manage/index.html
index e9a195c..947ad37 100644
--- a/content/docs/en/next/schema-manage/index.html
+++ b/content/docs/en/next/schema-manage/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/schema-understand.html b/content/docs/en/next/schema-understand.html
index 4dc15d8..6247d29 100644
--- a/content/docs/en/next/schema-understand.html
+++ b/content/docs/en/next/schema-understand.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/schema-understand/index.html b/content/docs/en/next/schema-understand/index.html
index 4dc15d8..6247d29 100644
--- a/content/docs/en/next/schema-understand/index.html
+++ b/content/docs/en/next/schema-understand/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-athenz.html b/content/docs/en/next/security-athenz.html
index 2154f25..58a7d06 100644
--- a/content/docs/en/next/security-athenz.html
+++ b/content/docs/en/next/security-athenz.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-athenz/index.html b/content/docs/en/next/security-athenz/index.html
index 2154f25..58a7d06 100644
--- a/content/docs/en/next/security-athenz/index.html
+++ b/content/docs/en/next/security-athenz/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-authorization.html b/content/docs/en/next/security-authorization.html
index 6f5c37d..9f135d6 100644
--- a/content/docs/en/next/security-authorization.html
+++ b/content/docs/en/next/security-authorization.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-authorization/index.html b/content/docs/en/next/security-authorization/index.html
index 6f5c37d..9f135d6 100644
--- a/content/docs/en/next/security-authorization/index.html
+++ b/content/docs/en/next/security-authorization/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-encryption.html b/content/docs/en/next/security-encryption.html
index ec1ca09..22ed815 100644
--- a/content/docs/en/next/security-encryption.html
+++ b/content/docs/en/next/security-encryption.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-encryption/index.html b/content/docs/en/next/security-encryption/index.html
index ec1ca09..22ed815 100644
--- a/content/docs/en/next/security-encryption/index.html
+++ b/content/docs/en/next/security-encryption/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-extending.html b/content/docs/en/next/security-extending.html
index 2e8a901..5c75f0a 100644
--- a/content/docs/en/next/security-extending.html
+++ b/content/docs/en/next/security-extending.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-extending/index.html b/content/docs/en/next/security-extending/index.html
index 2e8a901..5c75f0a 100644
--- a/content/docs/en/next/security-extending/index.html
+++ b/content/docs/en/next/security-extending/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-kerberos.html b/content/docs/en/next/security-kerberos.html
index d88b935..11e7fb2 100644
--- a/content/docs/en/next/security-kerberos.html
+++ b/content/docs/en/next/security-kerberos.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-kerberos/index.html b/content/docs/en/next/security-kerberos/index.html
index d88b935..11e7fb2 100644
--- a/content/docs/en/next/security-kerberos/index.html
+++ b/content/docs/en/next/security-kerberos/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-overview.html b/content/docs/en/next/security-overview.html
index 2121d4c..1ea18a2 100644
--- a/content/docs/en/next/security-overview.html
+++ b/content/docs/en/next/security-overview.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-overview/index.html b/content/docs/en/next/security-overview/index.html
index 2121d4c..1ea18a2 100644
--- a/content/docs/en/next/security-overview/index.html
+++ b/content/docs/en/next/security-overview/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-tls-authentication.html b/content/docs/en/next/security-tls-authentication.html
index 610c93f..b5a948b 100644
--- a/content/docs/en/next/security-tls-authentication.html
+++ b/content/docs/en/next/security-tls-authentication.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-tls-authentication/index.html b/content/docs/en/next/security-tls-authentication/index.html
index 610c93f..b5a948b 100644
--- a/content/docs/en/next/security-tls-authentication/index.html
+++ b/content/docs/en/next/security-tls-authentication/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-tls-transport.html b/content/docs/en/next/security-tls-transport.html
index 4920491..03aeea5 100644
--- a/content/docs/en/next/security-tls-transport.html
+++ b/content/docs/en/next/security-tls-transport.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-tls-transport/index.html b/content/docs/en/next/security-tls-transport/index.html
index 4920491..03aeea5 100644
--- a/content/docs/en/next/security-tls-transport/index.html
+++ b/content/docs/en/next/security-tls-transport/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-token-admin.html b/content/docs/en/next/security-token-admin.html
index 31718df..7656823 100644
--- a/content/docs/en/next/security-token-admin.html
+++ b/content/docs/en/next/security-token-admin.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-token-admin/index.html b/content/docs/en/next/security-token-admin/index.html
index 31718df..7656823 100644
--- a/content/docs/en/next/security-token-admin/index.html
+++ b/content/docs/en/next/security-token-admin/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-token-client.html b/content/docs/en/next/security-token-client.html
index 3c2e4d1..fb23552 100644
--- a/content/docs/en/next/security-token-client.html
+++ b/content/docs/en/next/security-token-client.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/security-token-client/index.html b/content/docs/en/next/security-token-client/index.html
index 3c2e4d1..fb23552 100644
--- a/content/docs/en/next/security-token-client/index.html
+++ b/content/docs/en/next/security-token-client/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/sql-deployment-configurations.html b/content/docs/en/next/sql-deployment-configurations.html
index b9338f5..6ad6e03 100644
--- a/content/docs/en/next/sql-deployment-configurations.html
+++ b/content/docs/en/next/sql-deployment-configurations.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/sql-deployment-configurations/index.html b/content/docs/en/next/sql-deployment-configurations/index.html
index b9338f5..6ad6e03 100644
--- a/content/docs/en/next/sql-deployment-configurations/index.html
+++ b/content/docs/en/next/sql-deployment-configurations/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/sql-getting-started.html b/content/docs/en/next/sql-getting-started.html
index 9ef4637..9fa0a1f 100644
--- a/content/docs/en/next/sql-getting-started.html
+++ b/content/docs/en/next/sql-getting-started.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/sql-getting-started/index.html b/content/docs/en/next/sql-getting-started/index.html
index 9ef4637..9fa0a1f 100644
--- a/content/docs/en/next/sql-getting-started/index.html
+++ b/content/docs/en/next/sql-getting-started/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/sql-overview.html b/content/docs/en/next/sql-overview.html
index ab62992..1b01022 100644
--- a/content/docs/en/next/sql-overview.html
+++ b/content/docs/en/next/sql-overview.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/sql-overview/index.html b/content/docs/en/next/sql-overview/index.html
index ab62992..1b01022 100644
--- a/content/docs/en/next/sql-overview/index.html
+++ b/content/docs/en/next/sql-overview/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/standalone-docker.html b/content/docs/en/next/standalone-docker.html
index 3ef1343..35f938c 100644
--- a/content/docs/en/next/standalone-docker.html
+++ b/content/docs/en/next/standalone-docker.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/standalone-docker/index.html b/content/docs/en/next/standalone-docker/index.html
index 3ef1343..35f938c 100644
--- a/content/docs/en/next/standalone-docker/index.html
+++ b/content/docs/en/next/standalone-docker/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/standalone.html b/content/docs/en/next/standalone.html
index 8d6fc47..6647dc2 100644
--- a/content/docs/en/next/standalone.html
+++ b/content/docs/en/next/standalone.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/next/standalone/index.html b/content/docs/en/next/standalone/index.html
index 8d6fc47..6647dc2 100644
--- a/content/docs/en/next/standalone/index.html
+++ b/content/docs/en/next/standalone/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/en/sql-overview.html b/content/docs/en/sql-overview.html
index 885036f..b6fd622 100644
--- a/content/docs/en/sql-overview.html
+++ b/content/docs/en/sql-overview.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/en/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture.  Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/en/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/en/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/sql-overview/index.html b/content/docs/en/sql-overview/index.html
index 885036f..b6fd622 100644
--- a/content/docs/en/sql-overview/index.html
+++ b/content/docs/en/sql-overview/index.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/en/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture.  Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/en/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/en/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.0-incubating/deploy-aws.html b/content/docs/fr/2.1.0-incubating/deploy-aws.html
index 5d9b71d..3458d1a 100644
--- a/content/docs/fr/2.1.0-incubating/deploy-aws.html
+++ b/content/docs/fr/2.1.0-incubating/deploy-aws.html
@@ -223,7 +223,7 @@ id_rsa               id_rsa.pub
 <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/fr/2.1.0-incubating/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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="#ins [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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">Ins [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.0-incubating/deploy-aws/index.html b/content/docs/fr/2.1.0-incubating/deploy-aws/index.html
index 5d9b71d..3458d1a 100644
--- a/content/docs/fr/2.1.0-incubating/deploy-aws/index.html
+++ b/content/docs/fr/2.1.0-incubating/deploy-aws/index.html
@@ -223,7 +223,7 @@ id_rsa               id_rsa.pub
 <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/fr/2.1.0-incubating/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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="#ins [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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">Ins [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.0-incubating/io-connectors.html b/content/docs/fr/2.1.0-incubating/io-connectors.html
index e92a337..c146249 100644
--- a/content/docs/fr/2.1.0-incubating/io-connectors.html
+++ b/content/docs/fr/2.1.0-incubating/io-connectors.html
@@ -84,7 +84,7 @@
 <li><a href="/docs/fr/2.1.0-incubating/io-rabbitmq#source">RabbitMQ Source Connector</a></li>
 <li><a href="/docs/fr/2.1.0-incubating/io-twitter">Twitter Firehose Source Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Fou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All R [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.0-incubating/io-connectors/index.html b/content/docs/fr/2.1.0-incubating/io-connectors/index.html
index e92a337..c146249 100644
--- a/content/docs/fr/2.1.0-incubating/io-connectors/index.html
+++ b/content/docs/fr/2.1.0-incubating/io-connectors/index.html
@@ -84,7 +84,7 @@
 <li><a href="/docs/fr/2.1.0-incubating/io-rabbitmq#source">RabbitMQ Source Connector</a></li>
 <li><a href="/docs/fr/2.1.0-incubating/io-twitter">Twitter Firehose Source Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Fou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All R [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/deploy-aws.html b/content/docs/fr/2.1.1-incubating/deploy-aws.html
index 2f01ff8..e910537 100644
--- a/content/docs/fr/2.1.1-incubating/deploy-aws.html
+++ b/content/docs/fr/2.1.1-incubating/deploy-aws.html
@@ -223,7 +223,7 @@ id_rsa               id_rsa.pub
 <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/fr/2.1.1-incubating/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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="#ins [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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">Ins [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/deploy-aws/index.html b/content/docs/fr/2.1.1-incubating/deploy-aws/index.html
index 2f01ff8..e910537 100644
--- a/content/docs/fr/2.1.1-incubating/deploy-aws/index.html
+++ b/content/docs/fr/2.1.1-incubating/deploy-aws/index.html
@@ -223,7 +223,7 @@ id_rsa               id_rsa.pub
 <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/fr/2.1.1-incubating/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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="#ins [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/deploy-kubernetes"><span>Kubernetes</span><span class="arrow-next"> →</span></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">Ins [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/io-connectors.html b/content/docs/fr/2.1.1-incubating/io-connectors.html
index 3f340ca..721c693 100644
--- a/content/docs/fr/2.1.1-incubating/io-connectors.html
+++ b/content/docs/fr/2.1.1-incubating/io-connectors.html
@@ -84,7 +84,7 @@
 <li><a href="/docs/fr/2.1.1-incubating/io-rabbitmq#source">RabbitMQ Source Connector</a></li>
 <li><a href="/docs/fr/2.1.1-incubating/io-twitter">Twitter Firehose Source Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Fou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All R [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/io-connectors/index.html b/content/docs/fr/2.1.1-incubating/io-connectors/index.html
index 3f340ca..721c693 100644
--- a/content/docs/fr/2.1.1-incubating/io-connectors/index.html
+++ b/content/docs/fr/2.1.1-incubating/io-connectors/index.html
@@ -84,7 +84,7 @@
 <li><a href="/docs/fr/2.1.1-incubating/io-rabbitmq#source">RabbitMQ Source Connector</a></li>
 <li><a href="/docs/fr/2.1.1-incubating/io-twitter">Twitter Firehose Source Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Fou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All R [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/io-connectors.html b/content/docs/fr/2.2.0/io-connectors.html
index 4b8b079..bdad477 100644
--- a/content/docs/fr/2.2.0/io-connectors.html
+++ b/content/docs/fr/2.2.0/io-connectors.html
@@ -84,7 +84,7 @@
 <li><a href="/docs/fr/2.2.0/io-rabbitmq#source">RabbitMQ Source Connector</a></li>
 <li><a href="/docs/fr/2.2.0/io-twitter">Twitter Firehose Source Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.0/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Re [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.0/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/io-connectors/index.html b/content/docs/fr/2.2.0/io-connectors/index.html
index 4b8b079..bdad477 100644
--- a/content/docs/fr/2.2.0/io-connectors/index.html
+++ b/content/docs/fr/2.2.0/io-connectors/index.html
@@ -84,7 +84,7 @@
 <li><a href="/docs/fr/2.2.0/io-rabbitmq#source">RabbitMQ Source Connector</a></li>
 <li><a href="/docs/fr/2.2.0/io-twitter">Twitter Firehose Source Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.0/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Re [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.0/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/sql-overview.html b/content/docs/fr/2.2.0/sql-overview.html
index 8c57ccb..d37dbac 100644
--- a/content/docs/fr/2.2.0/sql-overview.html
+++ b/content/docs/fr/2.2.0/sql-overview.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/fr/2.2.0/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture. Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.2.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><s [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.2.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/sql-overview/index.html b/content/docs/fr/2.2.0/sql-overview/index.html
index 8c57ccb..d37dbac 100644
--- a/content/docs/fr/2.2.0/sql-overview/index.html
+++ b/content/docs/fr/2.2.0/sql-overview/index.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/fr/2.2.0/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture. Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.2.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><s [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.2.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.1/io-connectors.html b/content/docs/fr/2.2.1/io-connectors.html
index ddf3f13..3d7c70c 100644
--- a/content/docs/fr/2.2.1/io-connectors.html
+++ b/content/docs/fr/2.2.1/io-connectors.html
@@ -86,7 +86,7 @@
 <li><a href="/docs/fr/2.2.1/io-cdc">CDC Source Connector based on Debezium</a></li>
 <li><a href="io-tcp.md#source">Netty Tcp Source Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.1/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Re [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.1/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.1/io-connectors/index.html b/content/docs/fr/2.2.1/io-connectors/index.html
index ddf3f13..3d7c70c 100644
--- a/content/docs/fr/2.2.1/io-connectors/index.html
+++ b/content/docs/fr/2.2.1/io-connectors/index.html
@@ -86,7 +86,7 @@
 <li><a href="/docs/fr/2.2.1/io-cdc">CDC Source Connector based on Debezium</a></li>
 <li><a href="io-tcp.md#source">Netty Tcp Source Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.1/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Re [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.1/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.1/sql-overview.html b/content/docs/fr/2.2.1/sql-overview.html
index 0c08539..d849827 100644
--- a/content/docs/fr/2.2.1/sql-overview.html
+++ b/content/docs/fr/2.2.1/sql-overview.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/fr/2.2.1/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture. Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.2.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><s [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.2.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.1/sql-overview/index.html b/content/docs/fr/2.2.1/sql-overview/index.html
index 0c08539..d849827 100644
--- a/content/docs/fr/2.2.1/sql-overview/index.html
+++ b/content/docs/fr/2.2.1/sql-overview/index.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/fr/2.2.1/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture. Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.2.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><s [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.2.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/io-cdc.html b/content/docs/fr/2.3.0/io-cdc.html
index 6452b09..e61ad0f 100644
--- a/content/docs/fr/2.3.0/io-cdc.html
+++ b/content/docs/fr/2.3.0/io-cdc.html
@@ -81,7 +81,7 @@
 <li><a href="/docs/fr/2.3.0/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/fr/2.3.0/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.3.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/fr/2.3.0/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.3.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/io-cdc/index.html b/content/docs/fr/2.3.0/io-cdc/index.html
index 6452b09..e61ad0f 100644
--- a/content/docs/fr/2.3.0/io-cdc/index.html
+++ b/content/docs/fr/2.3.0/io-cdc/index.html
@@ -81,7 +81,7 @@
 <li><a href="/docs/fr/2.3.0/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/fr/2.3.0/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.3.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/fr/2.3.0/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.3.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/io-connectors.html b/content/docs/fr/2.3.0/io-connectors.html
index 2429b27..e88748c 100644
--- a/content/docs/fr/2.3.0/io-connectors.html
+++ b/content/docs/fr/2.3.0/io-connectors.html
@@ -87,7 +87,7 @@
 <li><a href="/docs/fr/2.3.0/io-netty#source">Netty Source Connector</a></li>
 <li><a href="/docs/fr/2.3.0/io-hbase#sink">Hbase Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.0/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Re [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.0/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/io-connectors/index.html b/content/docs/fr/2.3.0/io-connectors/index.html
index 2429b27..e88748c 100644
--- a/content/docs/fr/2.3.0/io-connectors/index.html
+++ b/content/docs/fr/2.3.0/io-connectors/index.html
@@ -87,7 +87,7 @@
 <li><a href="/docs/fr/2.3.0/io-netty#source">Netty Source Connector</a></li>
 <li><a href="/docs/fr/2.3.0/io-hbase#sink">Hbase Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.0/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Re [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.0/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/io-develop.html b/content/docs/fr/2.3.0/io-develop.html
index 917804e..3ede92c 100644
--- a/content/docs/fr/2.3.0/io-develop.html
+++ b/content/docs/fr/2.3.0/io-develop.html
@@ -189,7 +189,7 @@
   <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/fr/2.3.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.3.0/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.3.0/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/io-develop/index.html b/content/docs/fr/2.3.0/io-develop/index.html
index 917804e..3ede92c 100644
--- a/content/docs/fr/2.3.0/io-develop/index.html
+++ b/content/docs/fr/2.3.0/io-develop/index.html
@@ -189,7 +189,7 @@
   <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/fr/2.3.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.3.0/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.3.0/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/sql-overview.html b/content/docs/fr/2.3.0/sql-overview.html
index 27c90c4..035fdcb 100644
--- a/content/docs/fr/2.3.0/sql-overview.html
+++ b/content/docs/fr/2.3.0/sql-overview.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/fr/2.3.0/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture. Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/fr/2.3.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/fr/2.3.0/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/fr/2.3.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/sql-overview/index.html b/content/docs/fr/2.3.0/sql-overview/index.html
index 27c90c4..035fdcb 100644
--- a/content/docs/fr/2.3.0/sql-overview/index.html
+++ b/content/docs/fr/2.3.0/sql-overview/index.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/fr/2.3.0/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture. Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/fr/2.3.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/fr/2.3.0/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/fr/2.3.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/io-cdc.html b/content/docs/fr/2.3.1/io-cdc.html
index 5b0a80e..f96e2b2 100644
--- a/content/docs/fr/2.3.1/io-cdc.html
+++ b/content/docs/fr/2.3.1/io-cdc.html
@@ -81,7 +81,7 @@
 <li><a href="/docs/fr/2.3.1/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/fr/2.3.1/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.3.1/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/fr/2.3.1/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.3.1/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/io-cdc/index.html b/content/docs/fr/2.3.1/io-cdc/index.html
index 5b0a80e..f96e2b2 100644
--- a/content/docs/fr/2.3.1/io-cdc/index.html
+++ b/content/docs/fr/2.3.1/io-cdc/index.html
@@ -81,7 +81,7 @@
 <li><a href="/docs/fr/2.3.1/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/fr/2.3.1/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.3.1/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/fr/2.3.1/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.3.1/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/io-connectors.html b/content/docs/fr/2.3.1/io-connectors.html
index cf4df73..8a170d8 100644
--- a/content/docs/fr/2.3.1/io-connectors.html
+++ b/content/docs/fr/2.3.1/io-connectors.html
@@ -94,7 +94,7 @@
 <li><a href="/docs/fr/2.3.1/io-solr#sink">Solr Sink Connector</a></li>
 <li><a href="/docs/fr/2.3.1/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.1/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Re [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.1/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/io-connectors/index.html b/content/docs/fr/2.3.1/io-connectors/index.html
index cf4df73..8a170d8 100644
--- a/content/docs/fr/2.3.1/io-connectors/index.html
+++ b/content/docs/fr/2.3.1/io-connectors/index.html
@@ -94,7 +94,7 @@
 <li><a href="/docs/fr/2.3.1/io-solr#sink">Solr Sink Connector</a></li>
 <li><a href="/docs/fr/2.3.1/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.1/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Re [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.1/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/io-develop.html b/content/docs/fr/2.3.1/io-develop.html
index 0ff1e27..3ae1685 100644
--- a/content/docs/fr/2.3.1/io-develop.html
+++ b/content/docs/fr/2.3.1/io-develop.html
@@ -189,7 +189,7 @@
   <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/fr/2.3.1/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.3.1/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.3.1/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/io-develop/index.html b/content/docs/fr/2.3.1/io-develop/index.html
index 0ff1e27..3ae1685 100644
--- a/content/docs/fr/2.3.1/io-develop/index.html
+++ b/content/docs/fr/2.3.1/io-develop/index.html
@@ -189,7 +189,7 @@
   <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/fr/2.3.1/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.3.1/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.3.1/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/sql-overview.html b/content/docs/fr/2.3.1/sql-overview.html
index e96d93f..5cb547e 100644
--- a/content/docs/fr/2.3.1/sql-overview.html
+++ b/content/docs/fr/2.3.1/sql-overview.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/fr/2.3.1/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture. Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/fr/2.3.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/fr/2.3.1/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/fr/2.3.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/sql-overview/index.html b/content/docs/fr/2.3.1/sql-overview/index.html
index e96d93f..5cb547e 100644
--- a/content/docs/fr/2.3.1/sql-overview/index.html
+++ b/content/docs/fr/2.3.1/sql-overview/index.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/fr/2.3.1/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture. Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/fr/2.3.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/fr/2.3.1/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/fr/2.3.1/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/io-cdc.html b/content/docs/fr/2.3.2/io-cdc.html
index b085984..7841148 100644
--- a/content/docs/fr/2.3.2/io-cdc.html
+++ b/content/docs/fr/2.3.2/io-cdc.html
@@ -81,7 +81,7 @@
 <li><a href="/docs/fr/2.3.2/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/fr/2.3.2/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.3.2/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/fr/2.3.2/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.3.2/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/io-cdc/index.html b/content/docs/fr/2.3.2/io-cdc/index.html
index b085984..7841148 100644
--- a/content/docs/fr/2.3.2/io-cdc/index.html
+++ b/content/docs/fr/2.3.2/io-cdc/index.html
@@ -81,7 +81,7 @@
 <li><a href="/docs/fr/2.3.2/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/fr/2.3.2/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.3.2/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/fr/2.3.2/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.3.2/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/io-connectors.html b/content/docs/fr/2.3.2/io-connectors.html
index bb598e7..542f697 100644
--- a/content/docs/fr/2.3.2/io-connectors.html
+++ b/content/docs/fr/2.3.2/io-connectors.html
@@ -95,7 +95,7 @@
 <li><a href="/docs/fr/2.3.2/io-solr#sink">Solr Sink Connector</a></li>
 <li><a href="/docs/fr/2.3.2/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.2/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Re [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.2/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/io-connectors/index.html b/content/docs/fr/2.3.2/io-connectors/index.html
index bb598e7..542f697 100644
--- a/content/docs/fr/2.3.2/io-connectors/index.html
+++ b/content/docs/fr/2.3.2/io-connectors/index.html
@@ -95,7 +95,7 @@
 <li><a href="/docs/fr/2.3.2/io-solr#sink">Solr Sink Connector</a></li>
 <li><a href="/docs/fr/2.3.2/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.2/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Re [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.2/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/io-develop.html b/content/docs/fr/2.3.2/io-develop.html
index 7f939cd..d2ea093 100644
--- a/content/docs/fr/2.3.2/io-develop.html
+++ b/content/docs/fr/2.3.2/io-develop.html
@@ -189,7 +189,7 @@
   <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/fr/2.3.2/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.3.2/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.3.2/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/io-develop/index.html b/content/docs/fr/2.3.2/io-develop/index.html
index 7f939cd..d2ea093 100644
--- a/content/docs/fr/2.3.2/io-develop/index.html
+++ b/content/docs/fr/2.3.2/io-develop/index.html
@@ -189,7 +189,7 @@
   <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/fr/2.3.2/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.3.2/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.3.2/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/sql-overview.html b/content/docs/fr/2.3.2/sql-overview.html
index c755253..e3b1f7f 100644
--- a/content/docs/fr/2.3.2/sql-overview.html
+++ b/content/docs/fr/2.3.2/sql-overview.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/fr/2.3.2/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture. Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/fr/2.3.2/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/fr/2.3.2/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/fr/2.3.2/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/sql-overview/index.html b/content/docs/fr/2.3.2/sql-overview/index.html
index c755253..e3b1f7f 100644
--- a/content/docs/fr/2.3.2/sql-overview/index.html
+++ b/content/docs/fr/2.3.2/sql-overview/index.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/fr/2.3.2/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture. Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/fr/2.3.2/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/fr/2.3.2/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/fr/2.3.2/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.4.0/io-cdc.html b/content/docs/fr/2.4.0/io-cdc.html
index 58365f2..57445ff 100644
--- a/content/docs/fr/2.4.0/io-cdc.html
+++ b/content/docs/fr/2.4.0/io-cdc.html
@@ -81,7 +81,7 @@
 <li><a href="/docs/fr/2.4.0/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/fr/2.4.0/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.0/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.4.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/fr/2.4.0/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.4.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.4.0/io-cdc/index.html b/content/docs/fr/2.4.0/io-cdc/index.html
index 58365f2..57445ff 100644
--- a/content/docs/fr/2.4.0/io-cdc/index.html
+++ b/content/docs/fr/2.4.0/io-cdc/index.html
@@ -81,7 +81,7 @@
 <li><a href="/docs/fr/2.4.0/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/fr/2.4.0/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.0/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/2.4.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></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/fr/2.4.0/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/2.4.0/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.4.0/io-connectors.html b/content/docs/fr/2.4.0/io-connectors.html
index 0a90c5d..de5d4bf 100644
--- a/content/docs/fr/2.4.0/io-connectors.html
+++ b/content/docs/fr/2.4.0/io-connectors.html
@@ -95,7 +95,7 @@
 <li><a href="/docs/fr/2.4.0/io-solr#sink">Solr Sink Connector</a></li>
 <li><a href="/docs/fr/2.4.0/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.0/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.4.0/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Re [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.0/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.4.0/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.4.0/io-connectors/index.html b/content/docs/fr/2.4.0/io-connectors/index.html
index 0a90c5d..de5d4bf 100644
--- a/content/docs/fr/2.4.0/io-connectors/index.html
+++ b/content/docs/fr/2.4.0/io-connectors/index.html
@@ -95,7 +95,7 @@
 <li><a href="/docs/fr/2.4.0/io-solr#sink">Solr Sink Connector</a></li>
 <li><a href="/docs/fr/2.4.0/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.0/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.4.0/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Re [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.0/io-managing"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.4.0/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.4.0/io-develop.html b/content/docs/fr/2.4.0/io-develop.html
index bfec9d3..0dcfe25 100644
--- a/content/docs/fr/2.4.0/io-develop.html
+++ b/content/docs/fr/2.4.0/io-develop.html
@@ -189,7 +189,7 @@
   <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/fr/2.4.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.4.0/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.4.0/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.4.0/io-develop/index.html b/content/docs/fr/2.4.0/io-develop/index.html
index bfec9d3..0dcfe25 100644
--- a/content/docs/fr/2.4.0/io-develop/index.html
+++ b/content/docs/fr/2.4.0/io-develop/index.html
@@ -189,7 +189,7 @@
   <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/fr/2.4.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.4.0/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.0/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/2.4.0/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Res [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.4.0/sql-overview.html b/content/docs/fr/2.4.0/sql-overview.html
index daa649d..bc807f8 100644
--- a/content/docs/fr/2.4.0/sql-overview.html
+++ b/content/docs/fr/2.4.0/sql-overview.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/fr/2.4.0/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture. Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.0/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/fr/2.4.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/fr/2.4.0/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/fr/2.4.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.4.0/sql-overview/index.html b/content/docs/fr/2.4.0/sql-overview/index.html
index daa649d..bc807f8 100644
--- a/content/docs/fr/2.4.0/sql-overview/index.html
+++ b/content/docs/fr/2.4.0/sql-overview/index.html
@@ -82,7 +82,7 @@
 <p>The reason why query performance is very efficient and highly scalable because of Pulsar's <a href="/docs/fr/2.4.0/concepts-architecture-overview#apache-bookkeeper">two level segment based architecture</a>.</p>
 <p>Topics in Pulsar are stored as segments in <a href="https://bookkeeper.apache.org/">Apache Bookkeeper</a>. Each topic segment is also replicated to a configurable (default 3) number of Bookkeeper nodes which allows for concurrent reads and high read throughput. In the Presto Pulsar connector, we read data directly from Bookkeeper to take advantage of the Pulsar's segment based architecture. Thus, Presto workers can read concurrently from horizontally scalable number bookkeeper nodes.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-1.png" alt="The Pulsar consumer and reader interfaces"></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.0/io-cdc"><span class="arrow-prev">← </span><span>CDC Connector</span></a><a class="docs-next button" href="/docs/fr/2.4.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</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/fr/2.4.0/io-cdc"><span class="arrow-prev">← </span><span>CDC connector</span></a><a class="docs-next button" href="/docs/fr/2.4.0/sql-getting-started"><span>Get Started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#performance">Performance</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/io-cdc.html b/content/docs/fr/io-cdc.html
index 90c85ed..c5eb9d6 100644
--- a/content/docs/fr/io-cdc.html
+++ b/content/docs/fr/io-cdc.html
@@ -81,7 +81,7 @@
 <li><a href="/docs/fr/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/fr/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyrig [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/io-cdc/index.html b/content/docs/fr/io-cdc/index.html
index 90c85ed..c5eb9d6 100644
--- a/content/docs/fr/io-cdc/index.html
+++ b/content/docs/fr/io-cdc/index.html
@@ -81,7 +81,7 @@
 <li><a href="/docs/fr/io-cdc-debezium">Debezium Connector</a></li>
 <li><a href="/docs/fr/io-cdc-canal">Alibaba Canal Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/io-develop"><span class="arrow-prev">← </span><span>Developing Connectors</span></a><a class="docs-next button" href="/docs/fr/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyrig [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/io-develop"><span class="arrow-prev">← </span><span>Develop</span></a><a class="docs-next button" href="/docs/fr/sql-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#source">Source</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/io-connectors.html b/content/docs/fr/io-connectors.html
index c9810ab..e1b7c54 100644
--- a/content/docs/fr/io-connectors.html
+++ b/content/docs/fr/io-connectors.html
@@ -96,7 +96,7 @@
 <li><a href="/docs/fr/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 <li><a href="/docs/fr/io-jdbc">JDBC Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/io-debug"><span class="arrow-prev">← </span><span>Debug</span></a><a class="docs-next button" href="/docs/fr/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apa [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/io-debug"><span class="arrow-prev">← </span><span>Debug</span></a><a class="docs-next button" href="/docs/fr/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/io-connectors/index.html b/content/docs/fr/io-connectors/index.html
index c9810ab..e1b7c54 100644
--- a/content/docs/fr/io-connectors/index.html
+++ b/content/docs/fr/io-connectors/index.html
@@ -96,7 +96,7 @@
 <li><a href="/docs/fr/io-influxdb#sink">InfluxDB Sink Connector</a></li>
 <li><a href="/docs/fr/io-jdbc">JDBC Sink Connector</a></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/io-debug"><span class="arrow-prev">← </span><span>Debug</span></a><a class="docs-next button" href="/docs/fr/io-develop"><span>Developing Connectors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apa [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/io-debug"><span class="arrow-prev">← </span><span>Debug</span></a><a class="docs-next button" href="/docs/fr/io-develop"><span>Develop</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/io-develop.html b/content/docs/fr/io-develop.html
index 1789e1c..ad0cb04 100644
--- a/content/docs/fr/io-develop.html
+++ b/content/docs/fr/io-develop.html
@@ -189,7 +189,7 @@
   <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/fr/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apach [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apach [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/io-develop/index.html b/content/docs/fr/io-develop/index.html
index 1789e1c..ad0cb04 100644
--- a/content/docs/fr/io-develop/index.html
+++ b/content/docs/fr/io-develop/index.html
@@ -189,7 +189,7 @@
   <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/fr/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/io-cdc"><span>CDC Connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apach [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/io-connectors"><span class="arrow-prev">← </span><span>Built-in connector</span></a><a class="docs-next button" href="/docs/fr/io-cdc"><span>CDC connector</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apach [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/next/adaptors-kafka.html b/content/docs/fr/next/adaptors-kafka.html
index 67c6f5d..e4f98f2 100644
--- a/content/docs/fr/next/adaptors-kafka.html
+++ b/content/docs/fr/next/adaptors-kafka.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/adaptors-kafka/index.html b/content/docs/fr/next/adaptors-kafka/index.html
index 67c6f5d..e4f98f2 100644
--- a/content/docs/fr/next/adaptors-kafka/index.html
+++ b/content/docs/fr/next/adaptors-kafka/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/adaptors-spark.html b/content/docs/fr/next/adaptors-spark.html
index d17fcde..c80cff9 100644
--- a/content/docs/fr/next/adaptors-spark.html
+++ b/content/docs/fr/next/adaptors-spark.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/adaptors-spark/index.html b/content/docs/fr/next/adaptors-spark/index.html
index d17fcde..c80cff9 100644
--- a/content/docs/fr/next/adaptors-spark/index.html
+++ b/content/docs/fr/next/adaptors-spark/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/adaptors-storm.html b/content/docs/fr/next/adaptors-storm.html
index d743075..0ab11a4 100644
--- a/content/docs/fr/next/adaptors-storm.html
+++ b/content/docs/fr/next/adaptors-storm.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/adaptors-storm/index.html b/content/docs/fr/next/adaptors-storm/index.html
index d743075..0ab11a4 100644
--- a/content/docs/fr/next/adaptors-storm/index.html
+++ b/content/docs/fr/next/adaptors-storm/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-brokers.html b/content/docs/fr/next/admin-api-brokers.html
index ce560cd..adaf89c 100644
--- a/content/docs/fr/next/admin-api-brokers.html
+++ b/content/docs/fr/next/admin-api-brokers.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-brokers/index.html b/content/docs/fr/next/admin-api-brokers/index.html
index ce560cd..adaf89c 100644
--- a/content/docs/fr/next/admin-api-brokers/index.html
+++ b/content/docs/fr/next/admin-api-brokers/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-clusters.html b/content/docs/fr/next/admin-api-clusters.html
index ed86823..c7a9ffa 100644
--- a/content/docs/fr/next/admin-api-clusters.html
+++ b/content/docs/fr/next/admin-api-clusters.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-clusters/index.html b/content/docs/fr/next/admin-api-clusters/index.html
index ed86823..c7a9ffa 100644
--- a/content/docs/fr/next/admin-api-clusters/index.html
+++ b/content/docs/fr/next/admin-api-clusters/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-namespaces.html b/content/docs/fr/next/admin-api-namespaces.html
index b40657e..7e6570a 100644
--- a/content/docs/fr/next/admin-api-namespaces.html
+++ b/content/docs/fr/next/admin-api-namespaces.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-namespaces/index.html b/content/docs/fr/next/admin-api-namespaces/index.html
index b40657e..7e6570a 100644
--- a/content/docs/fr/next/admin-api-namespaces/index.html
+++ b/content/docs/fr/next/admin-api-namespaces/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-non-partitioned-topics.html b/content/docs/fr/next/admin-api-non-partitioned-topics.html
index c91b650..93b3338 100644
--- a/content/docs/fr/next/admin-api-non-partitioned-topics.html
+++ b/content/docs/fr/next/admin-api-non-partitioned-topics.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-non-partitioned-topics/index.html b/content/docs/fr/next/admin-api-non-partitioned-topics/index.html
index c91b650..93b3338 100644
--- a/content/docs/fr/next/admin-api-non-partitioned-topics/index.html
+++ b/content/docs/fr/next/admin-api-non-partitioned-topics/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-non-persistent-topics.html b/content/docs/fr/next/admin-api-non-persistent-topics.html
index 3ed580d..14cb730 100644
--- a/content/docs/fr/next/admin-api-non-persistent-topics.html
+++ b/content/docs/fr/next/admin-api-non-persistent-topics.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-non-persistent-topics/index.html b/content/docs/fr/next/admin-api-non-persistent-topics/index.html
index 3ed580d..14cb730 100644
--- a/content/docs/fr/next/admin-api-non-persistent-topics/index.html
+++ b/content/docs/fr/next/admin-api-non-persistent-topics/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-overview.html b/content/docs/fr/next/admin-api-overview.html
index e7350ed..7dce4c9 100644
--- a/content/docs/fr/next/admin-api-overview.html
+++ b/content/docs/fr/next/admin-api-overview.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-overview/index.html b/content/docs/fr/next/admin-api-overview/index.html
index e7350ed..7dce4c9 100644
--- a/content/docs/fr/next/admin-api-overview/index.html
+++ b/content/docs/fr/next/admin-api-overview/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-partitioned-topics.html b/content/docs/fr/next/admin-api-partitioned-topics.html
index b161e72..a8e768a 100644
--- a/content/docs/fr/next/admin-api-partitioned-topics.html
+++ b/content/docs/fr/next/admin-api-partitioned-topics.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-partitioned-topics/index.html b/content/docs/fr/next/admin-api-partitioned-topics/index.html
index b161e72..a8e768a 100644
--- a/content/docs/fr/next/admin-api-partitioned-topics/index.html
+++ b/content/docs/fr/next/admin-api-partitioned-topics/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-permissions.html b/content/docs/fr/next/admin-api-permissions.html
index e5bac1c..db4c45f 100644
--- a/content/docs/fr/next/admin-api-permissions.html
+++ b/content/docs/fr/next/admin-api-permissions.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-permissions/index.html b/content/docs/fr/next/admin-api-permissions/index.html
index e5bac1c..db4c45f 100644
--- a/content/docs/fr/next/admin-api-permissions/index.html
+++ b/content/docs/fr/next/admin-api-permissions/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-persistent-topics.html b/content/docs/fr/next/admin-api-persistent-topics.html
index ca579a2..0871124 100644
--- a/content/docs/fr/next/admin-api-persistent-topics.html
+++ b/content/docs/fr/next/admin-api-persistent-topics.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-persistent-topics/index.html b/content/docs/fr/next/admin-api-persistent-topics/index.html
index ca579a2..0871124 100644
--- a/content/docs/fr/next/admin-api-persistent-topics/index.html
+++ b/content/docs/fr/next/admin-api-persistent-topics/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-tenants.html b/content/docs/fr/next/admin-api-tenants.html
index 0341626..735451f 100644
--- a/content/docs/fr/next/admin-api-tenants.html
+++ b/content/docs/fr/next/admin-api-tenants.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/admin-api-tenants/index.html b/content/docs/fr/next/admin-api-tenants/index.html
index 0341626..735451f 100644
--- a/content/docs/fr/next/admin-api-tenants/index.html
+++ b/content/docs/fr/next/admin-api-tenants/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/administration-dashboard.html b/content/docs/fr/next/administration-dashboard.html
index ed2dfb2..6e6711d 100644
--- a/content/docs/fr/next/administration-dashboard.html
+++ b/content/docs/fr/next/administration-dashboard.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/administration-dashboard/index.html b/content/docs/fr/next/administration-dashboard/index.html
index ed2dfb2..6e6711d 100644
--- a/content/docs/fr/next/administration-dashboard/index.html
+++ b/content/docs/fr/next/administration-dashboard/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/administration-geo.html b/content/docs/fr/next/administration-geo.html
index 366919c..ca29488 100644
--- a/content/docs/fr/next/administration-geo.html
+++ b/content/docs/fr/next/administration-geo.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/administration-geo/index.html b/content/docs/fr/next/administration-geo/index.html
index 366919c..ca29488 100644
--- a/content/docs/fr/next/administration-geo/index.html
+++ b/content/docs/fr/next/administration-geo/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/administration-load-balance.html b/content/docs/fr/next/administration-load-balance.html
index da41e9b..86be16e 100644
--- a/content/docs/fr/next/administration-load-balance.html
+++ b/content/docs/fr/next/administration-load-balance.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/administration-load-balance/index.html b/content/docs/fr/next/administration-load-balance/index.html
index da41e9b..86be16e 100644
--- a/content/docs/fr/next/administration-load-balance/index.html
+++ b/content/docs/fr/next/administration-load-balance/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/administration-proxy.html b/content/docs/fr/next/administration-proxy.html
index a06db0e..ddfbae3 100644
--- a/content/docs/fr/next/administration-proxy.html
+++ b/content/docs/fr/next/administration-proxy.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/administration-proxy/index.html b/content/docs/fr/next/administration-proxy/index.html
index a06db0e..ddfbae3 100644
--- a/content/docs/fr/next/administration-proxy/index.html
+++ b/content/docs/fr/next/administration-proxy/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/administration-stats.html b/content/docs/fr/next/administration-stats.html
index 8db14e1..d2931da 100644
--- a/content/docs/fr/next/administration-stats.html
+++ b/content/docs/fr/next/administration-stats.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/administration-stats/index.html b/content/docs/fr/next/administration-stats/index.html
index 8db14e1..d2931da 100644
--- a/content/docs/fr/next/administration-stats/index.html
+++ b/content/docs/fr/next/administration-stats/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/administration-upgrade.html b/content/docs/fr/next/administration-upgrade.html
index 45569d3..799c0ee 100644
--- a/content/docs/fr/next/administration-upgrade.html
+++ b/content/docs/fr/next/administration-upgrade.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/administration-upgrade/index.html b/content/docs/fr/next/administration-upgrade/index.html
index 45569d3..799c0ee 100644
--- a/content/docs/fr/next/administration-upgrade/index.html
+++ b/content/docs/fr/next/administration-upgrade/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/administration-zk-bk.html b/content/docs/fr/next/administration-zk-bk.html
index 7e03c9b..28c0b54 100644
--- a/content/docs/fr/next/administration-zk-bk.html
+++ b/content/docs/fr/next/administration-zk-bk.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/administration-zk-bk/index.html b/content/docs/fr/next/administration-zk-bk/index.html
index 7e03c9b..28c0b54 100644
--- a/content/docs/fr/next/administration-zk-bk/index.html
+++ b/content/docs/fr/next/administration-zk-bk/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/client-libraries-cpp.html b/content/docs/fr/next/client-libraries-cpp.html
index e2610b3..c5abdfa 100644
--- a/content/docs/fr/next/client-libraries-cpp.html
+++ b/content/docs/fr/next/client-libraries-cpp.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/client-libraries-cpp/index.html b/content/docs/fr/next/client-libraries-cpp/index.html
index e2610b3..c5abdfa 100644
--- a/content/docs/fr/next/client-libraries-cpp/index.html
+++ b/content/docs/fr/next/client-libraries-cpp/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/client-libraries-go.html b/content/docs/fr/next/client-libraries-go.html
index 1cf1bfc..bf850ac 100644
--- a/content/docs/fr/next/client-libraries-go.html
+++ b/content/docs/fr/next/client-libraries-go.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/client-libraries-go/index.html b/content/docs/fr/next/client-libraries-go/index.html
index 1cf1bfc..bf850ac 100644
--- a/content/docs/fr/next/client-libraries-go/index.html
+++ b/content/docs/fr/next/client-libraries-go/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/client-libraries-java.html b/content/docs/fr/next/client-libraries-java.html
index b293ca7..141b788 100644
--- a/content/docs/fr/next/client-libraries-java.html
+++ b/content/docs/fr/next/client-libraries-java.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/client-libraries-java/index.html b/content/docs/fr/next/client-libraries-java/index.html
index b293ca7..141b788 100644
--- a/content/docs/fr/next/client-libraries-java/index.html
+++ b/content/docs/fr/next/client-libraries-java/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/client-libraries-python.html b/content/docs/fr/next/client-libraries-python.html
index 9238f64..b47dbb3 100644
--- a/content/docs/fr/next/client-libraries-python.html
+++ b/content/docs/fr/next/client-libraries-python.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/client-libraries-python/index.html b/content/docs/fr/next/client-libraries-python/index.html
index 9238f64..b47dbb3 100644
--- a/content/docs/fr/next/client-libraries-python/index.html
+++ b/content/docs/fr/next/client-libraries-python/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/client-libraries-websocket.html b/content/docs/fr/next/client-libraries-websocket.html
index be72a44..b132276 100644
--- a/content/docs/fr/next/client-libraries-websocket.html
+++ b/content/docs/fr/next/client-libraries-websocket.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/client-libraries-websocket/index.html b/content/docs/fr/next/client-libraries-websocket/index.html
index be72a44..b132276 100644
--- a/content/docs/fr/next/client-libraries-websocket/index.html
+++ b/content/docs/fr/next/client-libraries-websocket/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/client-libraries.html b/content/docs/fr/next/client-libraries.html
index 4acdace..403ab8f 100644
--- a/content/docs/fr/next/client-libraries.html
+++ b/content/docs/fr/next/client-libraries.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/client-libraries/index.html b/content/docs/fr/next/client-libraries/index.html
index 4acdace..403ab8f 100644
--- a/content/docs/fr/next/client-libraries/index.html
+++ b/content/docs/fr/next/client-libraries/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-architecture-overview.html b/content/docs/fr/next/concepts-architecture-overview.html
index 6cd3426..eb27dc2 100644
--- a/content/docs/fr/next/concepts-architecture-overview.html
+++ b/content/docs/fr/next/concepts-architecture-overview.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-architecture-overview/index.html b/content/docs/fr/next/concepts-architecture-overview/index.html
index 6cd3426..eb27dc2 100644
--- a/content/docs/fr/next/concepts-architecture-overview/index.html
+++ b/content/docs/fr/next/concepts-architecture-overview/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-authentication.html b/content/docs/fr/next/concepts-authentication.html
index 900ef87..9a3638e 100644
--- a/content/docs/fr/next/concepts-authentication.html
+++ b/content/docs/fr/next/concepts-authentication.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-authentication/index.html b/content/docs/fr/next/concepts-authentication/index.html
index 900ef87..9a3638e 100644
--- a/content/docs/fr/next/concepts-authentication/index.html
+++ b/content/docs/fr/next/concepts-authentication/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-clients.html b/content/docs/fr/next/concepts-clients.html
index 1a4619c..df3c45d 100644
--- a/content/docs/fr/next/concepts-clients.html
+++ b/content/docs/fr/next/concepts-clients.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-clients/index.html b/content/docs/fr/next/concepts-clients/index.html
index 1a4619c..df3c45d 100644
--- a/content/docs/fr/next/concepts-clients/index.html
+++ b/content/docs/fr/next/concepts-clients/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-messaging.html b/content/docs/fr/next/concepts-messaging.html
index bbf720e..e039637 100644
--- a/content/docs/fr/next/concepts-messaging.html
+++ b/content/docs/fr/next/concepts-messaging.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-messaging/index.html b/content/docs/fr/next/concepts-messaging/index.html
index bbf720e..e039637 100644
--- a/content/docs/fr/next/concepts-messaging/index.html
+++ b/content/docs/fr/next/concepts-messaging/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-multi-tenancy.html b/content/docs/fr/next/concepts-multi-tenancy.html
index b61990a..36e4ed4 100644
--- a/content/docs/fr/next/concepts-multi-tenancy.html
+++ b/content/docs/fr/next/concepts-multi-tenancy.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-multi-tenancy/index.html b/content/docs/fr/next/concepts-multi-tenancy/index.html
index b61990a..36e4ed4 100644
--- a/content/docs/fr/next/concepts-multi-tenancy/index.html
+++ b/content/docs/fr/next/concepts-multi-tenancy/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-overview.html b/content/docs/fr/next/concepts-overview.html
index e7ff6da..ccaa490 100644
--- a/content/docs/fr/next/concepts-overview.html
+++ b/content/docs/fr/next/concepts-overview.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-overview/index.html b/content/docs/fr/next/concepts-overview/index.html
index e7ff6da..ccaa490 100644
--- a/content/docs/fr/next/concepts-overview/index.html
+++ b/content/docs/fr/next/concepts-overview/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-replication.html b/content/docs/fr/next/concepts-replication.html
index 1983b2a..77351b6 100644
--- a/content/docs/fr/next/concepts-replication.html
+++ b/content/docs/fr/next/concepts-replication.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-replication/index.html b/content/docs/fr/next/concepts-replication/index.html
index 1983b2a..77351b6 100644
--- a/content/docs/fr/next/concepts-replication/index.html
+++ b/content/docs/fr/next/concepts-replication/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-tiered-storage.html b/content/docs/fr/next/concepts-tiered-storage.html
index c63a7ee..22b0bc9 100644
--- a/content/docs/fr/next/concepts-tiered-storage.html
+++ b/content/docs/fr/next/concepts-tiered-storage.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-tiered-storage/index.html b/content/docs/fr/next/concepts-tiered-storage/index.html
index c63a7ee..22b0bc9 100644
--- a/content/docs/fr/next/concepts-tiered-storage/index.html
+++ b/content/docs/fr/next/concepts-tiered-storage/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-topic-compaction.html b/content/docs/fr/next/concepts-topic-compaction.html
index d3bdf0c..910304a 100644
--- a/content/docs/fr/next/concepts-topic-compaction.html
+++ b/content/docs/fr/next/concepts-topic-compaction.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/concepts-topic-compaction/index.html b/content/docs/fr/next/concepts-topic-compaction/index.html
index d3bdf0c..910304a 100644
--- a/content/docs/fr/next/concepts-topic-compaction/index.html
+++ b/content/docs/fr/next/concepts-topic-compaction/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-bookkeepermetadata.html b/content/docs/fr/next/cookbooks-bookkeepermetadata.html
index 28dd7e0..f3868d7 100644
--- a/content/docs/fr/next/cookbooks-bookkeepermetadata.html
+++ b/content/docs/fr/next/cookbooks-bookkeepermetadata.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-bookkeepermetadata/index.html b/content/docs/fr/next/cookbooks-bookkeepermetadata/index.html
index 28dd7e0..f3868d7 100644
--- a/content/docs/fr/next/cookbooks-bookkeepermetadata/index.html
+++ b/content/docs/fr/next/cookbooks-bookkeepermetadata/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-compaction.html b/content/docs/fr/next/cookbooks-compaction.html
index 007d138..a1f72e5 100644
--- a/content/docs/fr/next/cookbooks-compaction.html
+++ b/content/docs/fr/next/cookbooks-compaction.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-compaction/index.html b/content/docs/fr/next/cookbooks-compaction/index.html
index 007d138..a1f72e5 100644
--- a/content/docs/fr/next/cookbooks-compaction/index.html
+++ b/content/docs/fr/next/cookbooks-compaction/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-deduplication.html b/content/docs/fr/next/cookbooks-deduplication.html
index 7a300cb..3bbb185 100644
--- a/content/docs/fr/next/cookbooks-deduplication.html
+++ b/content/docs/fr/next/cookbooks-deduplication.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-deduplication/index.html b/content/docs/fr/next/cookbooks-deduplication/index.html
index 7a300cb..3bbb185 100644
--- a/content/docs/fr/next/cookbooks-deduplication/index.html
+++ b/content/docs/fr/next/cookbooks-deduplication/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-encryption.html b/content/docs/fr/next/cookbooks-encryption.html
index 56ffdfa..f6d625b 100644
--- a/content/docs/fr/next/cookbooks-encryption.html
+++ b/content/docs/fr/next/cookbooks-encryption.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-encryption/index.html b/content/docs/fr/next/cookbooks-encryption/index.html
index 56ffdfa..f6d625b 100644
--- a/content/docs/fr/next/cookbooks-encryption/index.html
+++ b/content/docs/fr/next/cookbooks-encryption/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-message-queue.html b/content/docs/fr/next/cookbooks-message-queue.html
index af6c765..7979194 100644
--- a/content/docs/fr/next/cookbooks-message-queue.html
+++ b/content/docs/fr/next/cookbooks-message-queue.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-message-queue/index.html b/content/docs/fr/next/cookbooks-message-queue/index.html
index af6c765..7979194 100644
--- a/content/docs/fr/next/cookbooks-message-queue/index.html
+++ b/content/docs/fr/next/cookbooks-message-queue/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-non-persistent.html b/content/docs/fr/next/cookbooks-non-persistent.html
index 6086e19..c752d10 100644
--- a/content/docs/fr/next/cookbooks-non-persistent.html
+++ b/content/docs/fr/next/cookbooks-non-persistent.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-non-persistent/index.html b/content/docs/fr/next/cookbooks-non-persistent/index.html
index 6086e19..c752d10 100644
--- a/content/docs/fr/next/cookbooks-non-persistent/index.html
+++ b/content/docs/fr/next/cookbooks-non-persistent/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-partitioned.html b/content/docs/fr/next/cookbooks-partitioned.html
index e9e6b7c..2214830 100644
--- a/content/docs/fr/next/cookbooks-partitioned.html
+++ b/content/docs/fr/next/cookbooks-partitioned.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-partitioned/index.html b/content/docs/fr/next/cookbooks-partitioned/index.html
index e9e6b7c..2214830 100644
--- a/content/docs/fr/next/cookbooks-partitioned/index.html
+++ b/content/docs/fr/next/cookbooks-partitioned/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-retention-expiry.html b/content/docs/fr/next/cookbooks-retention-expiry.html
index a296741..f2549f7 100644
--- a/content/docs/fr/next/cookbooks-retention-expiry.html
+++ b/content/docs/fr/next/cookbooks-retention-expiry.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-retention-expiry/index.html b/content/docs/fr/next/cookbooks-retention-expiry/index.html
index a296741..f2549f7 100644
--- a/content/docs/fr/next/cookbooks-retention-expiry/index.html
+++ b/content/docs/fr/next/cookbooks-retention-expiry/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-tiered-storage.html b/content/docs/fr/next/cookbooks-tiered-storage.html
index 50c4d30..746cbee 100644
--- a/content/docs/fr/next/cookbooks-tiered-storage.html
+++ b/content/docs/fr/next/cookbooks-tiered-storage.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/cookbooks-tiered-storage/index.html b/content/docs/fr/next/cookbooks-tiered-storage/index.html
index 50c4d30..746cbee 100644
--- a/content/docs/fr/next/cookbooks-tiered-storage/index.html
+++ b/content/docs/fr/next/cookbooks-tiered-storage/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/deploy-aws.html b/content/docs/fr/next/deploy-aws.html
index 879a391..fc8cebe 100644
--- a/content/docs/fr/next/deploy-aws.html
+++ b/content/docs/fr/next/deploy-aws.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/deploy-aws/index.html b/content/docs/fr/next/deploy-aws/index.html
index 879a391..fc8cebe 100644
--- a/content/docs/fr/next/deploy-aws/index.html
+++ b/content/docs/fr/next/deploy-aws/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/deploy-bare-metal-multi-cluster.html b/content/docs/fr/next/deploy-bare-metal-multi-cluster.html
index 3ee42f7..e04b49e 100644
--- a/content/docs/fr/next/deploy-bare-metal-multi-cluster.html
+++ b/content/docs/fr/next/deploy-bare-metal-multi-cluster.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -141,10 +141,10 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <h2><a class="anchor" aria-hidden="true" id="deploying-zookeeper"></a><a href="#deploying-zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
 <p>Each Pulsar instance relies on two separate ZooKeeper quorums.</p>
 <ul>
-<li><a href="#deploying-local-zookeeper">Local ZooKeeper</a> operates at the cluster level and provides cluster-specific configuration management and coordination. Each Pulsar cluster needs to have a dedicated ZooKeeper cluster.</li>
-<li><a href="#deploying-configuration-store">Configuration Store</a> operates at the instance level and provides configuration management for the entire system (and thus across clusters). The configuration store quorum can be provided by an independent cluster of machines or by the same machines used by local ZooKeeper.</li>
+<li><a href="#deploy-local-zookeeper">Local ZooKeeper</a> operates at the cluster level and provides cluster-specific configuration management and coordination. Each Pulsar cluster needs to have a dedicated ZooKeeper cluster.</li>
+<li><a href="#deploy-the-configuration-store">Configuration Store</a> operates at the instance level and provides configuration management for the entire system (and thus across clusters). The configuration store quorum can be provided by an independent cluster of machines or by the same machines used by local ZooKeeper.</li>
 </ul>
-<h3><a class="anchor" aria-hidden="true" id="deploying-local-zookeeper"></a><a href="#deploying-local-zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
+<h3><a class="anchor" aria-hidden="true" id="deploy-local-zookeeper"></a><a href="#deploy-local-zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>ZooKeeper manages a variety of essential coordination- and configuration-related tasks for Pulsar.</p>
 <p>Deploying a Pulsar instance requires you to stand up one local ZooKeeper cluster <em>per Pulsar cluster</em>.</p>
 <p>To begin, add all ZooKeeper servers to the quorum configuration specified in the <a href="/docs/fr/next/reference-configuration#zookeeper"><code>conf/zookeeper.conf</code></a> file. Add a <code>server.N</code> line for each node in the cluster to the configuration, where <code>N</code> is the number of the ZooKeeper node. Here's an example for a three-node cluster:</p>
@@ -164,12 +164,18 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <p>Once each server has been added to the <code>zookeeper.conf</code> configuration and has the appropriate <code>myid</code> entry, you can start ZooKeeper on all hosts (in the background, using nohup) with the <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start zookeeper</span>
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="deploying-the-configuration-store"></a><a href="#deploying-the-configuration-store" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
+<blockquote>
+<p>Note If you deploy ZooKeeper with bookie on the same node, you need to start ZooKeeper by using different stats port.</p>
+</blockquote>
+<p>Start ZooKeeper with <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool like:</p>
+<pre><code class="hljs css language-bash">$ PULSAR_EXTRA_OPTS=<span class="hljs-string">"-Dstats_server_port=8001"</span> bin/pulsar-daemon start zookeeper
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="deploy-the-configuration-store"></a><a href="#deploy-the-configuration-store" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 1 [...]
 <p>The ZooKeeper cluster configured and started up in the section above is a <em>local</em> ZooKeeper cluster used to manage a single Pulsar cluster. In addition to a local cluster, however, a full Pulsar instance also requires a configuration store for handling some instance-level configuration and coordination tasks.</p>
 <p>If you're deploying a <a href="#single-cluster-pulsar-instance">single-cluster</a> instance, then you will not need a separate cluster for the configuration store. If, however, you're deploying a <a href="#multi-cluster-pulsar-instance">multi-cluster</a> instance, then you should stand up a separate ZooKeeper cluster for configuration tasks.</p>
 <h4><a class="anchor" aria-hidden="true" id="single-cluster-pulsar-instance"></a><a href="#single-cluster-pulsar-instance" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 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>If your Pulsar instance will consist of just one cluster, then you can deploy a configuration store on the same machines as the local ZooKeeper quorum but running on different TCP ports.</p>
-<p>To deploy a ZooKeeper configuration store in a single-cluster instance, add the same ZooKeeper servers used by the local quorom to the configuration file in <a href="/docs/fr/next/reference-configuration#configuration-store"><code>conf/global_zookeeper.conf</code></a> using the same method for <a href="#local-zookeeper">local ZooKeeper</a>, but make sure to use a different port (2181 is the default for ZooKeeper). Here's an example that uses port 2184 for a three-node ZooKeeper cluster:</p>
+<p>To deploy a ZooKeeper configuration store in a single-cluster instance, add the same ZooKeeper servers used by the local quorom to the configuration file in <a href="/docs/fr/next/reference-configuration#configuration-store"><code>conf/global_zookeeper.conf</code></a> using the same method for <a href="#deploy-local-zookeeper">Local ZooKeeper</a>, but make sure to use a different port (2181 is the default for ZooKeeper). Here's an example that uses port 2184 for a three-node ZooKeeper [...]
 <pre><code class="hljs css language-properties"><span class="hljs-attr">clientPort</span>=<span class="hljs-string">2184</span>
 <span class="hljs-meta">server.1</span>=<span class="hljs-string">zk1.us-west.example.com:2185:2186</span>
 <span class="hljs-meta">server.2</span>=<span class="hljs-string">zk2.us-west.example.com:2185:2186</span>
@@ -212,7 +218,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="cluster-metadata-initialization"></a><a href="#cluster-metadata-initialization" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 [...]
 <p>Once you've set up the cluster-specific ZooKeeper and configuration store quorums for your instance, there is some metadata that needs to be written to ZooKeeper for each cluster in your instance. <strong>It only needs to be written once</strong>.</p>
-<p>You can initialize this metadata using the <a href="/docs/fr/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/fr/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. Here's an example:</p>
+<p>You can initialize this metadata using the <a href="/docs/fr/next/reference-cli-tools#initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/fr/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. Here's an example:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar initialize-cluster-metadata \</span>
   --cluster us-west \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -237,17 +243,24 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <p>Each Pulsar broker needs to have its own cluster of bookies. The BookKeeper cluster shares a local ZooKeeper quorum with the Pulsar cluster.</p>
 <h3><a class="anchor" aria-hidden="true" id="configuring-bookies"></a><a href="#configuring-bookies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>BookKeeper bookies can be configured using the <a href="/docs/fr/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important aspect of configuring each bookie is ensuring that the <a href="/docs/fr/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> parameter is set to the connection string for the Pulsar cluster's local ZooKeeper.</p>
-<h3><a class="anchor" aria-hidden="true" id="starting-up-bookies"></a><a href="#starting-up-bookies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 can start up a bookie in two ways: in the foreground or as a background daemon.</p>
-<p>To start up a bookie in the foreground, use the <a href="/docs/fr/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a></p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start bookie</span>
+<h3><a class="anchor" aria-hidden="true" id="start-bookies"></a><a href="#start-bookies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>You can start a bookie in two ways: in the foreground or as a background daemon.</p>
+<p>To start a bookie in the background, use the <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/pulsar-daemon start bookie
 </code></pre>
-<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/fr/next/reference-cli-tools#bookkeeper-shell">BookKeeper shell</a>:</p>
+<p>To start a bookie in the foreground:</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
+</code></pre>
+<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/fr/next/reference-cli-tools#shell">BookKeeper shell</a>:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/bookkeeper shell bookiesanity</span>
 </code></pre>
 <p>This will create a new ledger on the local bookie, write a few entries, read them back and finally delete the ledger.</p>
-<h3><a class="anchor" aria-hidden="true" id="hardware-considerations"></a><a href="#hardware-considerations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 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>Bookie hosts are responsible for storing message data on disk. In order for bookies to provide optimal performance, it's essential that they have a suitable hardware configuration. There are two key dimensions to bookie hardware capacity:</p>
+<p>After you have started all bookies, you can use the <code>simpletest</code> command for <a href="/docs/fr/next/reference-cli-tools#shell">BookKeeper shell</a> on any bookie node, to verify that all bookies in the cluster are running.</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper shell simpletest --ensemble &lt;num-bookies&gt; --writeQuorum &lt;num-bookies&gt; --ackQuorum &lt;num-bookies&gt; --numEntries &lt;num-entries&gt;
+</code></pre>
+<p>This command creates a <code>num-bookies</code> sized ledger on the cluster, writes a few entries, and finally deletes the ledger.</p>
+<h3><a class="anchor" aria-hidden="true" id="hardware-requirements"></a><a href="#hardware-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 [...]
+<p>Bookie hosts are responsible for storing message data on disk. To provide optimal performance for bookies, it's essential that you have a suitable hardware configuration. The following are key dimensions for bookie hardware capacity.</p>
 <ul>
 <li>Disk I/O capacity read/write</li>
 <li>Storage capacity</li>
@@ -262,7 +275,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <h3><a class="anchor" aria-hidden="true" id="broker-configuration"></a><a href="#broker-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
 <p>Brokers can be configured using the <a href="/docs/fr/next/reference-configuration#broker"><code>conf/broker.conf</code></a> configuration file.</p>
 <p>The most important element of broker configuration is ensuring that each broker is aware of its local ZooKeeper quorum as well as the configuration store quorum. Make sure that you set the <a href="/docs/fr/next/reference-configuration#broker-zookeeperServers"><code>zookeeperServers</code></a> parameter to reflect the local quorum and the <a href="/docs/fr/next/reference-configuration#broker-configurationStoreServers"><code>configurationStoreServers</code></a> parameter to reflect the [...]
-<p>You also need to specify the name of the <a href="/docs/fr/next/reference-terminology#cluster">cluster</a> to which the broker belongs using the <a href="/docs/fr/next/reference-configuration#broker-clusterName"><code>clusterName</code></a> parameter.</p>
+<p>You also need to specify the name of the <a href="/docs/fr/next/reference-terminology#cluster">cluster</a> to which the broker belongs using the <a href="/docs/fr/next/reference-configuration#broker-clusterName"><code>clusterName</code></a> parameter. In addition, you need to match the broker and web service ports provided when initializing the cluster's metadata (especially when using a different port from default).</p>
 <p>Voici un exemple de configuration :</p>
 <pre><code class="hljs css language-properties"><span class="hljs-comment"># Local ZooKeeper servers</span>
 <span class="hljs-attr">zookeeperServers</span>=<span class="hljs-string">zk1.us-west.example.com:2181,zk2.us-west.example.com:2181,zk3.us-west.example.com:2181</span>
@@ -271,14 +284,26 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <span class="hljs-attr">configurationStoreServers</span>=<span class="hljs-string">zk1.us-west.example.com:2184,zk2.us-west.example.com:2184,zk3.us-west.example.com:2184</span>
 
 <span class="hljs-attr">clusterName</span>=<span class="hljs-string">us-west</span>
+<span class="hljs-comment">
+# Broker data port</span>
+<span class="hljs-attr">brokerServicePort</span>=<span class="hljs-string">6650</span>
+<span class="hljs-comment">
+# Broker data port for TLS</span>
+<span class="hljs-attr">brokerServicePortTls</span>=<span class="hljs-string">6651</span>
+<span class="hljs-comment">
+# Port to use to server HTTP request</span>
+<span class="hljs-attr">webServicePort</span>=<span class="hljs-string">8080</span>
+<span class="hljs-comment">
+# Port to use to server HTTPS request</span>
+<span class="hljs-attr">webServicePortTls</span>=<span class="hljs-string">8443</span>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="broker-hardware"></a><a href="#broker-hardware" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
 <p>Pulsar brokers do not require any special hardware since they don't use the local disk. Fast CPUs and 10Gbps <a href="https://en.wikipedia.org/wiki/Network_interface_controller">NIC</a> are recommended since the software can take full advantage of that.</p>
 <h3><a class="anchor" aria-hidden="true" id="starting-the-broker-service"></a><a href="#starting-the-broker-service" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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 start a broker in the background using <a href="https://en.wikipedia.org/wiki/Nohup">nohup</a> with the <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<p>You can start a broker in the background by using <a href="https://en.wikipedia.org/wiki/Nohup">nohup</a> with the <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start broker</span>
 </code></pre>
-<p>You can also start brokers in the foreground using <a href="/docs/fr/next/reference-cli-tools#pulsar-broker"><code>pulsar broker</code></a>:</p>
+<p>You can also start brokers in the foreground by using <a href="/docs/fr/next/reference-cli-tools#broker"><code>pulsar broker</code></a>:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar broker</span>
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="service-discovery"></a><a href="#service-discovery" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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- [...]
@@ -306,33 +331,33 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <pre><code class="hljs css language-properties"><span class="hljs-attr">serviceUrl</span>=<span class="hljs-string">http://pulsar.us-west.example.com:8080/</span>
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="provisioning-new-tenants"></a><a href="#provisioning-new-tenants" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.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>Pulsar was built as a fundamentally multi-tenant system.</p>
-<p>To allow a new tenant to use the system, we need to create a new one. You can create a new tenant using the <a href="/docs/fr/next/pulsar-admin#tenants-create"><code>pulsar-admin</code></a> CLI tool:</p>
+<p>Pulsar is built as a fundamentally multi-tenant system.</p>
+<p>If a new tenant wants to use the system, you need to create a new one. You can create a new tenant by using the <a href="/docs/fr/next/pulsar-admin#tenants"><code>pulsar-admin</code></a> CLI tool:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin tenants create <span class="hljs-built_in">test</span>-tentant \</span>
   --allowed-clusters us-west \
   --admin-roles test-admin-role
 </code></pre>
-<p>This will allow users who identify with role <code>test-admin-role</code> to administer the configuration for the tenant <code>test</code> which will only be allowed to use the cluster <code>us-west</code>. From now on, this tenant will be able to self-manage its resources.</p>
-<p>Once a tenant has been created, you will need to create <a href="/docs/fr/next/reference-terminology#namespace">namespaces</a> for topics within that tenant.</p>
+<p>In this command, users who identify with <code>test-admin-role</code> role can administer the configuration for the <code>test-tenant</code> tenant. The <code>test-tenant</code> tenant can only use the <code>us-west</code> cluster. From now on, this tenant can manage its resources.</p>
+<p>Once a tenant has been created, you need to create <a href="/docs/fr/next/reference-terminology#namespace">namespaces</a> for topics within that tenant.</p>
 <p>The first step is to create a namespace. A namespace is an administrative unit that can contain many topics. A common practice is to create a namespace for each different use case from a single tenant.</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin namespaces create <span class="hljs-built_in">test</span>-tenant/ns1</span>
 </code></pre>
 <h5><a class="anchor" aria-hidden="true" id="testing-producer-and-consumer"></a><a href="#testing-producer-and-consumer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
-<p>Everything is now ready to send and receive messages. The quickest way to test the system is through the <code>pulsar-perf</code> client tool.</p>
+<p>Everything is now ready to send and receive messages. The quickest way to test the system is through the <a href="/docs/fr/next/reference-cli-tools#pulsar-perf"><code>pulsar-perf</code></a> client tool.</p>
 <p>Let's use a topic in the namespace we just created. Topics are automatically created the first time a producer or a consumer tries to use them.</p>
 <p>The topic name in this case could be:</p>
 <pre><code class="hljs css language-http">persistent://test-tenant/ns1/my-topic
 </code></pre>
 <p>Start a consumer that will create a subscription on the topic and will wait for messages:</p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf consume persistent://<span class="hljs-built_in">test</span>-tenant/us-west/ns1/my-topic</span>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf consume persistent://<span class="hljs-built_in">test</span>-tenant/ns1/my-topic</span>
 </code></pre>
 <p>Start a producer that publishes messages at a fixed rate and report stats every 10 seconds:</p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf produce persistent://<span class="hljs-built_in">test</span>-tenant/us-west/ns1/my-topic</span>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf produce persistent://<span class="hljs-built_in">test</span>-tenant/ns1/my-topic</span>
 </code></pre>
 <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>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics stats persistent://<span class="hljs-built_in">test</span>-tenant/ns1/my-topic</span>
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/deploy-bare-metal"><span class="arrow-prev">← </span><span>Bare metal</span></a><a class="docs-next button" href="/docs/fr/next/deploy-dcos"><span>DC/OS</span><span class="arrow-next"> →</span></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>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/deploy-bare-metal"><span class="arrow-prev">← </span><span>Bare metal</span></a><a class="docs-next button" href="/docs/fr/next/deploy-dcos"><span>DC/OS</span><span class="arrow-next"> →</span></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>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/next/deploy-bare-metal-multi-cluster/index.html b/content/docs/fr/next/deploy-bare-metal-multi-cluster/index.html
index 3ee42f7..e04b49e 100644
--- a/content/docs/fr/next/deploy-bare-metal-multi-cluster/index.html
+++ b/content/docs/fr/next/deploy-bare-metal-multi-cluster/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -141,10 +141,10 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <h2><a class="anchor" aria-hidden="true" id="deploying-zookeeper"></a><a href="#deploying-zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
 <p>Each Pulsar instance relies on two separate ZooKeeper quorums.</p>
 <ul>
-<li><a href="#deploying-local-zookeeper">Local ZooKeeper</a> operates at the cluster level and provides cluster-specific configuration management and coordination. Each Pulsar cluster needs to have a dedicated ZooKeeper cluster.</li>
-<li><a href="#deploying-configuration-store">Configuration Store</a> operates at the instance level and provides configuration management for the entire system (and thus across clusters). The configuration store quorum can be provided by an independent cluster of machines or by the same machines used by local ZooKeeper.</li>
+<li><a href="#deploy-local-zookeeper">Local ZooKeeper</a> operates at the cluster level and provides cluster-specific configuration management and coordination. Each Pulsar cluster needs to have a dedicated ZooKeeper cluster.</li>
+<li><a href="#deploy-the-configuration-store">Configuration Store</a> operates at the instance level and provides configuration management for the entire system (and thus across clusters). The configuration store quorum can be provided by an independent cluster of machines or by the same machines used by local ZooKeeper.</li>
 </ul>
-<h3><a class="anchor" aria-hidden="true" id="deploying-local-zookeeper"></a><a href="#deploying-local-zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
+<h3><a class="anchor" aria-hidden="true" id="deploy-local-zookeeper"></a><a href="#deploy-local-zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
 <p>ZooKeeper manages a variety of essential coordination- and configuration-related tasks for Pulsar.</p>
 <p>Deploying a Pulsar instance requires you to stand up one local ZooKeeper cluster <em>per Pulsar cluster</em>.</p>
 <p>To begin, add all ZooKeeper servers to the quorum configuration specified in the <a href="/docs/fr/next/reference-configuration#zookeeper"><code>conf/zookeeper.conf</code></a> file. Add a <code>server.N</code> line for each node in the cluster to the configuration, where <code>N</code> is the number of the ZooKeeper node. Here's an example for a three-node cluster:</p>
@@ -164,12 +164,18 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <p>Once each server has been added to the <code>zookeeper.conf</code> configuration and has the appropriate <code>myid</code> entry, you can start ZooKeeper on all hosts (in the background, using nohup) with the <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start zookeeper</span>
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="deploying-the-configuration-store"></a><a href="#deploying-the-configuration-store" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
+<blockquote>
+<p>Note If you deploy ZooKeeper with bookie on the same node, you need to start ZooKeeper by using different stats port.</p>
+</blockquote>
+<p>Start ZooKeeper with <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool like:</p>
+<pre><code class="hljs css language-bash">$ PULSAR_EXTRA_OPTS=<span class="hljs-string">"-Dstats_server_port=8001"</span> bin/pulsar-daemon start zookeeper
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="deploy-the-configuration-store"></a><a href="#deploy-the-configuration-store" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 1 [...]
 <p>The ZooKeeper cluster configured and started up in the section above is a <em>local</em> ZooKeeper cluster used to manage a single Pulsar cluster. In addition to a local cluster, however, a full Pulsar instance also requires a configuration store for handling some instance-level configuration and coordination tasks.</p>
 <p>If you're deploying a <a href="#single-cluster-pulsar-instance">single-cluster</a> instance, then you will not need a separate cluster for the configuration store. If, however, you're deploying a <a href="#multi-cluster-pulsar-instance">multi-cluster</a> instance, then you should stand up a separate ZooKeeper cluster for configuration tasks.</p>
 <h4><a class="anchor" aria-hidden="true" id="single-cluster-pulsar-instance"></a><a href="#single-cluster-pulsar-instance" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 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>If your Pulsar instance will consist of just one cluster, then you can deploy a configuration store on the same machines as the local ZooKeeper quorum but running on different TCP ports.</p>
-<p>To deploy a ZooKeeper configuration store in a single-cluster instance, add the same ZooKeeper servers used by the local quorom to the configuration file in <a href="/docs/fr/next/reference-configuration#configuration-store"><code>conf/global_zookeeper.conf</code></a> using the same method for <a href="#local-zookeeper">local ZooKeeper</a>, but make sure to use a different port (2181 is the default for ZooKeeper). Here's an example that uses port 2184 for a three-node ZooKeeper cluster:</p>
+<p>To deploy a ZooKeeper configuration store in a single-cluster instance, add the same ZooKeeper servers used by the local quorom to the configuration file in <a href="/docs/fr/next/reference-configuration#configuration-store"><code>conf/global_zookeeper.conf</code></a> using the same method for <a href="#deploy-local-zookeeper">Local ZooKeeper</a>, but make sure to use a different port (2181 is the default for ZooKeeper). Here's an example that uses port 2184 for a three-node ZooKeeper [...]
 <pre><code class="hljs css language-properties"><span class="hljs-attr">clientPort</span>=<span class="hljs-string">2184</span>
 <span class="hljs-meta">server.1</span>=<span class="hljs-string">zk1.us-west.example.com:2185:2186</span>
 <span class="hljs-meta">server.2</span>=<span class="hljs-string">zk2.us-west.example.com:2185:2186</span>
@@ -212,7 +218,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="cluster-metadata-initialization"></a><a href="#cluster-metadata-initialization" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 [...]
 <p>Once you've set up the cluster-specific ZooKeeper and configuration store quorums for your instance, there is some metadata that needs to be written to ZooKeeper for each cluster in your instance. <strong>It only needs to be written once</strong>.</p>
-<p>You can initialize this metadata using the <a href="/docs/fr/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/fr/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. Here's an example:</p>
+<p>You can initialize this metadata using the <a href="/docs/fr/next/reference-cli-tools#initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/fr/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. Here's an example:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar initialize-cluster-metadata \</span>
   --cluster us-west \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -237,17 +243,24 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <p>Each Pulsar broker needs to have its own cluster of bookies. The BookKeeper cluster shares a local ZooKeeper quorum with the Pulsar cluster.</p>
 <h3><a class="anchor" aria-hidden="true" id="configuring-bookies"></a><a href="#configuring-bookies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>BookKeeper bookies can be configured using the <a href="/docs/fr/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important aspect of configuring each bookie is ensuring that the <a href="/docs/fr/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> parameter is set to the connection string for the Pulsar cluster's local ZooKeeper.</p>
-<h3><a class="anchor" aria-hidden="true" id="starting-up-bookies"></a><a href="#starting-up-bookies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 can start up a bookie in two ways: in the foreground or as a background daemon.</p>
-<p>To start up a bookie in the foreground, use the <a href="/docs/fr/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a></p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start bookie</span>
+<h3><a class="anchor" aria-hidden="true" id="start-bookies"></a><a href="#start-bookies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>You can start a bookie in two ways: in the foreground or as a background daemon.</p>
+<p>To start a bookie in the background, use the <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/pulsar-daemon start bookie
 </code></pre>
-<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/fr/next/reference-cli-tools#bookkeeper-shell">BookKeeper shell</a>:</p>
+<p>To start a bookie in the foreground:</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
+</code></pre>
+<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/fr/next/reference-cli-tools#shell">BookKeeper shell</a>:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/bookkeeper shell bookiesanity</span>
 </code></pre>
 <p>This will create a new ledger on the local bookie, write a few entries, read them back and finally delete the ledger.</p>
-<h3><a class="anchor" aria-hidden="true" id="hardware-considerations"></a><a href="#hardware-considerations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 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>Bookie hosts are responsible for storing message data on disk. In order for bookies to provide optimal performance, it's essential that they have a suitable hardware configuration. There are two key dimensions to bookie hardware capacity:</p>
+<p>After you have started all bookies, you can use the <code>simpletest</code> command for <a href="/docs/fr/next/reference-cli-tools#shell">BookKeeper shell</a> on any bookie node, to verify that all bookies in the cluster are running.</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper shell simpletest --ensemble &lt;num-bookies&gt; --writeQuorum &lt;num-bookies&gt; --ackQuorum &lt;num-bookies&gt; --numEntries &lt;num-entries&gt;
+</code></pre>
+<p>This command creates a <code>num-bookies</code> sized ledger on the cluster, writes a few entries, and finally deletes the ledger.</p>
+<h3><a class="anchor" aria-hidden="true" id="hardware-requirements"></a><a href="#hardware-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 [...]
+<p>Bookie hosts are responsible for storing message data on disk. To provide optimal performance for bookies, it's essential that you have a suitable hardware configuration. The following are key dimensions for bookie hardware capacity.</p>
 <ul>
 <li>Disk I/O capacity read/write</li>
 <li>Storage capacity</li>
@@ -262,7 +275,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <h3><a class="anchor" aria-hidden="true" id="broker-configuration"></a><a href="#broker-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
 <p>Brokers can be configured using the <a href="/docs/fr/next/reference-configuration#broker"><code>conf/broker.conf</code></a> configuration file.</p>
 <p>The most important element of broker configuration is ensuring that each broker is aware of its local ZooKeeper quorum as well as the configuration store quorum. Make sure that you set the <a href="/docs/fr/next/reference-configuration#broker-zookeeperServers"><code>zookeeperServers</code></a> parameter to reflect the local quorum and the <a href="/docs/fr/next/reference-configuration#broker-configurationStoreServers"><code>configurationStoreServers</code></a> parameter to reflect the [...]
-<p>You also need to specify the name of the <a href="/docs/fr/next/reference-terminology#cluster">cluster</a> to which the broker belongs using the <a href="/docs/fr/next/reference-configuration#broker-clusterName"><code>clusterName</code></a> parameter.</p>
+<p>You also need to specify the name of the <a href="/docs/fr/next/reference-terminology#cluster">cluster</a> to which the broker belongs using the <a href="/docs/fr/next/reference-configuration#broker-clusterName"><code>clusterName</code></a> parameter. In addition, you need to match the broker and web service ports provided when initializing the cluster's metadata (especially when using a different port from default).</p>
 <p>Voici un exemple de configuration :</p>
 <pre><code class="hljs css language-properties"><span class="hljs-comment"># Local ZooKeeper servers</span>
 <span class="hljs-attr">zookeeperServers</span>=<span class="hljs-string">zk1.us-west.example.com:2181,zk2.us-west.example.com:2181,zk3.us-west.example.com:2181</span>
@@ -271,14 +284,26 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <span class="hljs-attr">configurationStoreServers</span>=<span class="hljs-string">zk1.us-west.example.com:2184,zk2.us-west.example.com:2184,zk3.us-west.example.com:2184</span>
 
 <span class="hljs-attr">clusterName</span>=<span class="hljs-string">us-west</span>
+<span class="hljs-comment">
+# Broker data port</span>
+<span class="hljs-attr">brokerServicePort</span>=<span class="hljs-string">6650</span>
+<span class="hljs-comment">
+# Broker data port for TLS</span>
+<span class="hljs-attr">brokerServicePortTls</span>=<span class="hljs-string">6651</span>
+<span class="hljs-comment">
+# Port to use to server HTTP request</span>
+<span class="hljs-attr">webServicePort</span>=<span class="hljs-string">8080</span>
+<span class="hljs-comment">
+# Port to use to server HTTPS request</span>
+<span class="hljs-attr">webServicePortTls</span>=<span class="hljs-string">8443</span>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="broker-hardware"></a><a href="#broker-hardware" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
 <p>Pulsar brokers do not require any special hardware since they don't use the local disk. Fast CPUs and 10Gbps <a href="https://en.wikipedia.org/wiki/Network_interface_controller">NIC</a> are recommended since the software can take full advantage of that.</p>
 <h3><a class="anchor" aria-hidden="true" id="starting-the-broker-service"></a><a href="#starting-the-broker-service" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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 start a broker in the background using <a href="https://en.wikipedia.org/wiki/Nohup">nohup</a> with the <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<p>You can start a broker in the background by using <a href="https://en.wikipedia.org/wiki/Nohup">nohup</a> with the <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start broker</span>
 </code></pre>
-<p>You can also start brokers in the foreground using <a href="/docs/fr/next/reference-cli-tools#pulsar-broker"><code>pulsar broker</code></a>:</p>
+<p>You can also start brokers in the foreground by using <a href="/docs/fr/next/reference-cli-tools#broker"><code>pulsar broker</code></a>:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar broker</span>
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="service-discovery"></a><a href="#service-discovery" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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- [...]
@@ -306,33 +331,33 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <pre><code class="hljs css language-properties"><span class="hljs-attr">serviceUrl</span>=<span class="hljs-string">http://pulsar.us-west.example.com:8080/</span>
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="provisioning-new-tenants"></a><a href="#provisioning-new-tenants" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.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>Pulsar was built as a fundamentally multi-tenant system.</p>
-<p>To allow a new tenant to use the system, we need to create a new one. You can create a new tenant using the <a href="/docs/fr/next/pulsar-admin#tenants-create"><code>pulsar-admin</code></a> CLI tool:</p>
+<p>Pulsar is built as a fundamentally multi-tenant system.</p>
+<p>If a new tenant wants to use the system, you need to create a new one. You can create a new tenant by using the <a href="/docs/fr/next/pulsar-admin#tenants"><code>pulsar-admin</code></a> CLI tool:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin tenants create <span class="hljs-built_in">test</span>-tentant \</span>
   --allowed-clusters us-west \
   --admin-roles test-admin-role
 </code></pre>
-<p>This will allow users who identify with role <code>test-admin-role</code> to administer the configuration for the tenant <code>test</code> which will only be allowed to use the cluster <code>us-west</code>. From now on, this tenant will be able to self-manage its resources.</p>
-<p>Once a tenant has been created, you will need to create <a href="/docs/fr/next/reference-terminology#namespace">namespaces</a> for topics within that tenant.</p>
+<p>In this command, users who identify with <code>test-admin-role</code> role can administer the configuration for the <code>test-tenant</code> tenant. The <code>test-tenant</code> tenant can only use the <code>us-west</code> cluster. From now on, this tenant can manage its resources.</p>
+<p>Once a tenant has been created, you need to create <a href="/docs/fr/next/reference-terminology#namespace">namespaces</a> for topics within that tenant.</p>
 <p>The first step is to create a namespace. A namespace is an administrative unit that can contain many topics. A common practice is to create a namespace for each different use case from a single tenant.</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin namespaces create <span class="hljs-built_in">test</span>-tenant/ns1</span>
 </code></pre>
 <h5><a class="anchor" aria-hidden="true" id="testing-producer-and-consumer"></a><a href="#testing-producer-and-consumer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
-<p>Everything is now ready to send and receive messages. The quickest way to test the system is through the <code>pulsar-perf</code> client tool.</p>
+<p>Everything is now ready to send and receive messages. The quickest way to test the system is through the <a href="/docs/fr/next/reference-cli-tools#pulsar-perf"><code>pulsar-perf</code></a> client tool.</p>
 <p>Let's use a topic in the namespace we just created. Topics are automatically created the first time a producer or a consumer tries to use them.</p>
 <p>The topic name in this case could be:</p>
 <pre><code class="hljs css language-http">persistent://test-tenant/ns1/my-topic
 </code></pre>
 <p>Start a consumer that will create a subscription on the topic and will wait for messages:</p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf consume persistent://<span class="hljs-built_in">test</span>-tenant/us-west/ns1/my-topic</span>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf consume persistent://<span class="hljs-built_in">test</span>-tenant/ns1/my-topic</span>
 </code></pre>
 <p>Start a producer that publishes messages at a fixed rate and report stats every 10 seconds:</p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf produce persistent://<span class="hljs-built_in">test</span>-tenant/us-west/ns1/my-topic</span>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-perf produce persistent://<span class="hljs-built_in">test</span>-tenant/ns1/my-topic</span>
 </code></pre>
 <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>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics stats persistent://<span class="hljs-built_in">test</span>-tenant/ns1/my-topic</span>
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/deploy-bare-metal"><span class="arrow-prev">← </span><span>Bare metal</span></a><a class="docs-next button" href="/docs/fr/next/deploy-dcos"><span>DC/OS</span><span class="arrow-next"> →</span></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>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/deploy-bare-metal"><span class="arrow-prev">← </span><span>Bare metal</span></a><a class="docs-next button" href="/docs/fr/next/deploy-dcos"><span>DC/OS</span><span class="arrow-next"> →</span></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>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/next/deploy-bare-metal.html b/content/docs/fr/next/deploy-bare-metal.html
index d7fd633..6f4d2a7 100644
--- a/content/docs/fr/next/deploy-bare-metal.html
+++ b/content/docs/fr/next/deploy-bare-metal.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Deploying a cluster on bare metal · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&gt; ### Tips"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="fr"/><meta property="og:title" content="Deploying a cluster on bare metal · Apa [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Deploy a cluster on bare metal · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&gt; ### Tips"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="fr"/><meta property="og:title" content="Deploy a cluster on bare metal · Apache Pu [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -74,60 +74,60 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Deploying a cluster on bare metal</h1></header><article><div><span><blockquote>
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Deploy 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 Pulsar or using it in a startup or on a single team, we recommend opting for a single cluster. If you do need to run a multi-cluster Pulsar instance, however, see the guide <a href="/docs/fr/next/deploy-bare-metal-multi-cluster">here</a>.</p></li>
-<li><p>If you want to use all builtin <a href="/docs/fr/next/io-overview">Pulsar IO</a> connectors in your Pulsar deployment, you need to download <code>apache-pulsar-io-connectors</code> package and make sure it is installed under <code>connectors</code> directory in the pulsar directory on every broker node or on every function-worker node if you have run a separate cluster of function workers for <a href="/docs/fr/next/functions-overview">Pulsar Functions</a>.</p></li>
-<li><p>If you want to use <a href="/docs/fr/next/concepts-tiered-storage">Tiered Storage</a> feature in your Pulsar deployment, you need to download <code>apache-pulsar-offloaders</code> package and make sure it is installed under <code>offloaders</code> directory in the pulsar directory on every broker node. For more details of how to configure this feature, you could reference this <a href="/docs/fr/next/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p></li>
+<li><p>Single-cluster Pulsar installations should be sufficient for all but the most ambitious use cases. If you are interested in experimenting with Pulsar or using Pulsar in a startup or on a single team, you had better opt for a single cluster. If you do need to run a multi-cluster Pulsar instance, see the guide <a href="/docs/fr/next/deploy-bare-metal-multi-cluster">here</a>.</p></li>
+<li><p>If you want to use all builtin <a href="/docs/fr/next/io-overview">Pulsar IO</a> connectors in your Pulsar deployment, you need to download <code>apache-pulsar-io-connectors</code> package and install <code>apache-pulsar-io-connectors</code> under <code>connectors</code> directory in the pulsar directory on every broker node or on every function-worker node if you have run a separate cluster of function workers for <a href="/docs/fr/next/functions-overview">Pulsar Functions</a>.</p></li>
+<li><p>If you want to use <a href="/docs/fr/next/concepts-tiered-storage">Tiered Storage</a> feature in your Pulsar deployment, you need to download <code>apache-pulsar-offloaders</code> package and install <code>apache-pulsar-offloaders</code> under <code>offloaders</code> directory in the pulsar directory on every broker node. For more details of how to configure this feature, you can refer to the <a href="/docs/fr/next/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p></li>
 </ol>
 </blockquote>
 <p>Deploying a Pulsar cluster involves doing the following (in order):</p>
 <ul>
-<li>Deploying a <a href="#deploying-a-zookeeper-cluster">ZooKeeper</a> cluster (optional)</li>
-<li>Initializing <a href="#initializing-cluster-metadata">cluster metadata</a></li>
-<li>Deploying a <a href="#deploying-a-bookkeeper-cluster">BookKeeper</a> cluster</li>
-<li>Deploying one or more Pulsar <a href="#deploying-pulsar-brokers">brokers</a></li>
+<li>Deploy a <a href="#deploy-a-zookeeper-cluster">ZooKeeper</a> cluster (optional)</li>
+<li>Initialize <a href="#initialize-cluster-metadata">cluster metadata</a></li>
+<li>Deploy a <a href="#deploy-a-bookkeeper-cluster">BookKeeper</a> cluster</li>
+<li>Deploy one or more Pulsar <a href="#deploy-pulsar-brokers">brokers</a></li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="preparation"></a><a href="#preparation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 [...]
 <h3><a class="anchor" aria-hidden="true" id="requirements"></a><a href="#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.22-2-2.5 0-.83. [...]
 <blockquote>
-<p>If you already have an existing zookeeper cluster and would like to reuse it, you don't need to prepare the machines for running ZooKeeper.</p>
+<p>If you already have an existing zookeeper cluster and want to reuse it, you do not need to prepare the machines for running ZooKeeper.</p>
 </blockquote>
-<p>To run Pulsar on bare metal, you are recommended to have:</p>
+<p>To run Pulsar on bare metal, you had better have the following:</p>
 <ul>
 <li>At least 6 Linux machines or VMs
 <ul>
-<li>3 running <a href="https://zookeeper.apache.org">ZooKeeper</a></li>
-<li>3 running a Pulsar broker, and a <a href="https://bookkeeper.apache.org">BookKeeper</a> bookie</li>
+<li>3 for running <a href="https://zookeeper.apache.org">ZooKeeper</a></li>
+<li>3 for running a Pulsar broker, and a <a href="https://bookkeeper.apache.org">BookKeeper</a> bookie</li>
 </ul></li>
 <li>A single <a href="https://en.wikipedia.org/wiki/Domain_Name_System">DNS</a> name covering all of the Pulsar broker hosts</li>
 </ul>
 <blockquote>
-<p>However if you don't have enough machines, or are trying out Pulsar in cluster mode (and expand the cluster later), you can even deploy Pulsar in one node, where it will run zookeeper, bookie and broker in same machine.</p>
-<p>If you don't have a DNS server, you can use multi-host in service URL instead.</p>
+<p>If you do not have enough machines, or try out Pulsar in cluster mode (and expand the cluster later), you can even deploy Pulsar in one node, where Zookeeper, bookie and broker are run in the same machine.</p>
+<p>If you do not have a DNS server, you can use multi-host in service URL instead.</p>
 </blockquote>
-<p>Each machine in your cluster will need to have <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java 8</a> or higher installed.</p>
-<p>Here's a diagram showing the basic setup:</p>
+<p>Each machine in your cluster needs to have <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java 8</a> or higher version of Java installed.</p>
+<p>The following is a diagram showing the basic setup:</p>
 <p><img src="/docs/assets/pulsar-basic-setup.png" alt="alt-text"></p>
-<p>In this diagram, connecting clients need to be able to communicate with the Pulsar cluster using a single URL, in this case <code>pulsar-cluster.acme.com</code>, that abstracts over all of the message-handling brokers. Pulsar message brokers run on machines alongside BookKeeper bookies; brokers and bookies, in turn, rely on ZooKeeper.</p>
+<p>In this diagram, connecting clients need to be able to communicate with the Pulsar cluster using a single URL, in this case <code>pulsar-cluster.acme.com</code> abstracts over all of the message-handling brokers. Pulsar message brokers run on machines alongside BookKeeper bookies; brokers and bookies, in turn, rely on ZooKeeper.</p>
 <h3><a class="anchor" aria-hidden="true" id="hardware-considerations"></a><a href="#hardware-considerations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 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>When deploying a Pulsar cluster, we have some basic recommendations that you should keep in mind when capacity planning.</p>
+<p>When you deploy a Pulsar cluster, keep in mind the following basic better choices when you do the capacity planning.</p>
 <h4><a class="anchor" aria-hidden="true" id="zookeeper"></a><a href="#zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>For machines running ZooKeeper, we recommend using lighter-weight machines or VMs. Pulsar uses ZooKeeper only for periodic coordination- and configuration-related tasks, <em>not</em> for basic operations. If you're running Pulsar on <a href="https://aws.amazon.com/">Amazon Web Services</a> (AWS), for example, a <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html">t2.small</a> instance would likely suffice.</p>
-<h4><a class="anchor" aria-hidden="true" id="bookies-brokers"></a><a href="#bookies-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
-<p>For machines running a bookie and a Pulsar broker, we recommend using more powerful machines. For an AWS deployment, for example, <a href="https://aws.amazon.com/blogs/aws/now-available-i3-instances-for-demanding-io-intensive-applications/">i3.4xlarge</a> instances may be appropriate. On those machines we also recommend:</p>
+<p>For machines running ZooKeeper, you had better use lighter-weight machines or VMs. Pulsar uses ZooKeeper only for periodic coordination-related and configuration-related tasks, <em>not</em> for basic operations. If you run Pulsar on <a href="https://aws.amazon.com/">Amazon Web Services</a> (AWS), for example, a <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html">t2.small</a> instance might likely suffice.</p>
+<h4><a class="anchor" aria-hidden="true" id="bookies-and-brokers"></a><a href="#bookies-and-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>For machines running a bookie and a Pulsar broker, you had better use more powerful machines. For an AWS deployment, for example, <a href="https://aws.amazon.com/blogs/aws/now-available-i3-instances-for-demanding-io-intensive-applications/">i3.4xlarge</a> instances may be appropriate. On those machines you can use the following:</p>
 <ul>
 <li>Fast CPUs and 10Gbps <a href="https://en.wikipedia.org/wiki/Network_interface_controller">NIC</a> (for Pulsar brokers)</li>
 <li>Small and fast <a href="https://en.wikipedia.org/wiki/Solid-state_drive">solid-state drives</a> (SSDs) or <a href="https://en.wikipedia.org/wiki/Hard_disk_drive">hard disk drives</a> (HDDs) with a <a href="https://en.wikipedia.org/wiki/RAID">RAID</a> controller and a battery-backed write cache (for BookKeeper bookies)</li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="installing-the-pulsar-binary-package"></a><a href="#installing-the-pulsar-binary-package" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 [...]
+<h2><a class="anchor" aria-hidden="true" id="install-the-pulsar-binary-package"></a><a href="#install-the-pulsar-binary-package" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
 <blockquote>
-<p>You'll need to install the Pulsar binary package on <em>each machine in the cluster</em>, including machines running <a href="#deploying-a-zookeeper-cluster">ZooKeeper</a> and <a href="#deploying-a-bookkeeper-cluster">BookKeeper</a>.</p>
+<p>You need to install the Pulsar binary package on <em>each machine in the cluster</em>, including machines running <a href="#deploy-a-zookeeper-cluster">ZooKeeper</a> and <a href="#deploy-a-bookkeeper-cluster">BookKeeper</a>.</p>
 </blockquote>
-<p>To get started deploying a Pulsar cluster on bare metal, you'll need to download a binary tarball release in one of the following ways:</p>
+<p>To get started deploying a Pulsar cluster on bare metal, you need to download a binary tarball release in one of the following ways:</p>
 <ul>
-<li>By clicking on the link directly below, which will automatically trigger a download:
+<li>By clicking on the link below directly, which automatically triggers a download:
 <ul>
 <li><a href="https://archive.apache.org/dist/pulsar/pulsar-2.4.1/apache-pulsar-2.4.1-bin.tar.gz" download>Pulsar 2.4.1 binary release</a></li>
 </ul></li>
@@ -137,7 +137,7 @@
 </ul>
 <pre><code class="hljs css language-bash">$ wget https://archive.apache.org/dist/pulsar/pulsar-2.4.1/apache-pulsar-2.4.1-bin.tar.gz
 </code></pre>
-<p>Once you've downloaded the tarball, untar it and <code>cd</code> into the resulting directory:</p>
+<p>Once you download the tarball, untar it and <code>cd</code> into the resulting directory:</p>
 <pre><code class="hljs css language-bash">$ tar xvzf apache-pulsar-2.4.1-bin.tar.gz
 $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 </code></pre>
@@ -147,18 +147,18 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <tr><th style="text-align:left">Directory</th><th style="text-align:left">Contains</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left">Pulsar's <a href="/docs/fr/next/reference-cli-tools">command-line tools</a>, such as <a href="/docs/fr/next/reference-cli-tools#pulsar"><code>pulsar</code></a> and <a href="/docs/fr/next/pulsar-admin"><code>pulsar-admin</code></a></td></tr>
+<tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left"><a href="/docs/fr/next/reference-cli-tools">command-line tools</a> of Pulsar, such as <a href="/docs/fr/next/reference-cli-tools#pulsar"><code>pulsar</code></a> and <a href="/docs/fr/next/pulsar-admin"><code>pulsar-admin</code></a></td></tr>
 <tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including for <a href="/docs/fr/next/reference-configuration#broker">broker configuration</a>, <a href="/docs/fr/next/reference-configuration#zookeeper">ZooKeeper configuration</a>, and more</td></tr>
-<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by ZooKeeper and BookKeeper.</td></tr>
-<tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files used by Pulsar.</td></tr>
-<tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">Logs created by the installation.</td></tr>
+<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory that ZooKeeper and BookKeeper use</td></tr>
+<tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files that Pulsar uses</td></tr>
+<tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">Logs that the installation creates</td></tr>
 </tbody>
 </table>
-<h2><a class="anchor" aria-hidden="true" id="installing-builtin-connectors-optional"></a><a href="#installing-builtin-connectors-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<h2><a class="anchor" aria-hidden="true" id="install-builtin-connectors-optional-https-pulsarapacheorg-docs-en-next-standalone-install-builtin-connectors-optional"></a><a href="#install-builtin-connectors-optional-https-pulsarapacheorg-docs-en-next-standalone-install-builtin-connectors-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69- [...]
 <blockquote>
-<p>Since release <code>2.1.0-incubating</code>, Pulsar releases a separate binary distribution, containing all the <code>builtin</code> connectors. If you would like to enable those <code>builtin</code> connectors, you can follow the instructions as below; otherwise you can skip this section for now.</p>
+<p>Since Pulsar releases <code>2.1.0-incubating</code>, Pulsar releases a separate binary distribution, containing all the <code>builtin</code> connectors. If you want to enable those <code>builtin</code> connectors, you can follow the instructions as below; otherwise you can skip this section for now.</p>
 </blockquote>
-<p>To get started using builtin connectors, you'll need to download the connectors tarball release on every broker node in one of the following ways:</p>
+<p>To get started using builtin connectors, you need to download the connectors tarball release on every broker node in one of the following ways:</p>
 <ul>
 <li><p>by clicking the link below and downloading the release from an Apache mirror:</p>
 <ul>
@@ -170,7 +170,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> wget https://archive.apache.org/dist/pulsar/pulsar-2.4.1/connectors/{connector}-2.4.1.nar</span>
 </code></pre></li>
 </ul>
-<p>Once the nar file is downloaded, copy the file to directory <code>connectors</code> in the pulsar directory, for example, if the connector file <code>pulsar-io-aerospike-2.4.1.nar</code> is downloaded:</p>
+<p>Once you download the nar file, copy the file to directory <code>connectors</code> in the pulsar directory, for example, if you download the connector file <code>pulsar-io-aerospike-2.4.1.nar</code>:</p>
 <pre><code class="hljs css language-bash">$ mkdir connectors
 $ mv pulsar-io-aerospike-2.4.1.nar connectors
 
@@ -178,11 +178,11 @@ $ ls connectors
 pulsar-io-aerospike-2.4.1.nar
 ...
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="installing-tiered-storage-offloaders-optional"></a><a href="#installing-tiered-storage-offloaders-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h- [...]
+<h2><a class="anchor" aria-hidden="true" id="install-tiered-storage-offloaders-optional-https-pulsarapacheorg-docs-en-next-standalone-install-tiered-storage-offloaders-optional"></a><a href="#install-tiered-storage-offloaders-optional-https-pulsarapacheorg-docs-en-next-standalone-install-tiered-storage-offloaders-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd"  [...]
 <blockquote>
-<p>Since release <code>2.2.0</code>, Pulsar releases a separate binary distribution, containing the tiered storage offloaders. If you would like to enable tiered storage feature, you can follow the instructions as below; otherwise you can skip this section for now.</p>
+<p>Since Pulsar release <code>2.2.0</code>, Pulsar releases a separate binary distribution, containing the tiered storage offloaders. If you want to enable tiered storage feature, you can follow the instructions as below; otherwise you can skip this section for now.</p>
 </blockquote>
-<p>To get started using tiered storage offloaders, you'll need to download the offloaders tarball release on every broker node in one of the following ways:</p>
+<p>To get started using tiered storage offloaders, you need to download the offloaders tarball release on every broker node in one of the following ways:</p>
 <ul>
 <li><p>by clicking the link below and downloading the release from an Apache mirror:</p>
 <ul>
@@ -194,10 +194,10 @@ pulsar-io-aerospike-2.4.1.nar
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> wget https://archive.apache.org/dist/pulsar/pulsar-2.4.1/apache-pulsar-offloaders-2.4.1-bin.tar.gz</span>
 </code></pre></li>
 </ul>
-<p>Once the tarball is downloaded, in the pulsar directory, untar the offloaders package and copy the offloaders as <code>offloaders</code> in the pulsar directory:</p>
+<p>Once you download the tarball, in the pulsar directory, untar the offloaders package and copy the offloaders as <code>offloaders</code> in the pulsar directory:</p>
 <pre><code class="hljs css language-bash">$ tar xvfz apache-pulsar-offloaders-2.4.1-bin.tar.gz
 
-// you will find a directory named `apache-pulsar-offloaders-2.4.1` <span class="hljs-keyword">in</span> the pulsar directory
+// you can find a directory named `apache-pulsar-offloaders-2.4.1` <span class="hljs-keyword">in</span> the pulsar directory
 // <span class="hljs-keyword">then</span> copy the offloaders
 
 $ mv apache-pulsar-offloaders-2.4.1/offloaders offloaders
@@ -205,13 +205,13 @@ $ mv apache-pulsar-offloaders-2.4.1/offloaders offloaders
 $ ls offloaders
 tiered-storage-jcloud-2.4.1.nar
 </code></pre>
-<p>For more details of how to configure tiered storage feature, you could reference this <a href="/docs/fr/next/cookbooks-tiered-storage">Tiered storage cookbook</a></p>
-<h2><a class="anchor" aria-hidden="true" id="deploying-a-zookeeper-cluster"></a><a href="#deploying-a-zookeeper-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
+<p>For more details of how to configure tiered storage feature, you can refer to the <a href="/docs/fr/next/cookbooks-tiered-storage">Tiered storage cookbook</a></p>
+<h2><a class="anchor" aria-hidden="true" id="deploy-a-zookeeper-cluster"></a><a href="#deploy-a-zookeeper-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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 [...]
 <blockquote>
-<p>If you already have an exsiting zookeeper cluster and would like to use it, you can skip this section.</p>
+<p>If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.</p>
 </blockquote>
-<p><a href="https://zookeeper.apache.org">ZooKeeper</a> manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you'll need to deploy ZooKeeper first (before all other components). We recommend deploying a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.</p>
-<p>To begin, add all ZooKeeper servers to the configuration specified in <a href="/docs/fr/next/reference-configuration#zookeeper"><code>conf/zookeeper.conf</code></a> (in the Pulsar directory you created <a href="#installing-the-pulsar-binary-package">above</a>). Here's an example:</p>
+<p><a href="https://zookeeper.apache.org">ZooKeeper</a> manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you need to deploy ZooKeeper first (before all other components). You had better deploy a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.</p>
+<p>To begin, add all ZooKeeper servers to the configuration specified in <a href="/docs/fr/next/reference-configuration#zookeeper"><code>conf/zookeeper.conf</code></a> (in the Pulsar directory that you create <a href="#install-the-pulsar-binary-package">above</a>). The following is an example:</p>
 <pre><code class="hljs css language-properties"><span class="hljs-meta">server.1</span>=<span class="hljs-string">zk1.us-west.example.com:2888:3888</span>
 <span class="hljs-meta">server.2</span>=<span class="hljs-string">zk2.us-west.example.com:2888:3888</span>
 <span class="hljs-meta">server.3</span>=<span class="hljs-string">zk3.us-west.example.com:2888:3888</span>
@@ -219,27 +219,27 @@ tiered-storage-jcloud-2.4.1.nar
 <blockquote>
 <p>If you have only one machine to deploy Pulsar, you just need to add one server entry in the configuration file.</p>
 </blockquote>
-<p>On each host, you need to specify the ID of the node in each node's <code>myid</code> file, which is in each server's <code>data/zookeeper</code> folder by default (this can be changed via the <a href="/docs/fr/next/reference-configuration#zookeeper-dataDir"><code>dataDir</code></a> parameter).</p>
+<p>On each host, you need to specify the ID of the node in the <code>myid</code> file of each node, which is in each <code>data/zookeeper</code> folder of server by default (you can change the file location via the <a href="/docs/fr/next/reference-configuration#zookeeper-dataDir"><code>dataDir</code></a> parameter).</p>
 <blockquote>
-<p>See the <a href="https://zookeeper.apache.org/doc/r3.4.10/zookeeperAdmin.html#sc_zkMulitServerSetup">Multi-server setup guide</a> in the ZooKeeper documentation for detailed info on <code>myid</code> and more.</p>
+<p>See the <a href="https://zookeeper.apache.org/doc/r3.4.10/zookeeperAdmin.html#sc_zkMulitServerSetup">Multi-server setup guide</a> in the ZooKeeper documentation for detailed information on <code>myid</code> and more.</p>
 </blockquote>
-<p>On a ZooKeeper server at <code>zk1.us-west.example.com</code>, for example, you could set the <code>myid</code> value like this:</p>
+<p>On a ZooKeeper server at <code>zk1.us-west.example.com</code>, for example, you can set the <code>myid</code> value like this:</p>
 <pre><code class="hljs css language-bash">$ mkdir -p data/zookeeper
 $ <span class="hljs-built_in">echo</span> 1 &gt; data/zookeeper/myid
 </code></pre>
-<p>On <code>zk2.us-west.example.com</code> the command would be <code>echo 2 &gt; data/zookeeper/myid</code> and so on.</p>
-<p>Once each server has been added to the <code>zookeeper.conf</code> configuration and has the appropriate <code>myid</code> entry, you can start ZooKeeper on all hosts (in the background, using nohup) with the <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<p>On <code>zk2.us-west.example.com</code> the command is <code>echo 2 &gt; data/zookeeper/myid</code> and so on.</p>
+<p>Once you add each server to the <code>zookeeper.conf</code> configuration and have the appropriate <code>myid</code> entry, you can start ZooKeeper on all hosts (in the background, using nohup) with the <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-daemon start zookeeper
 </code></pre>
 <blockquote>
-<p>If you are planning to deploy zookeeper with bookie on the same node, you need to start zookeeper by using different stats port.</p>
+<p>If you plan to deploy zookeeper with bookie on the same node, you need to start zookeeper by using different stats port.</p>
 </blockquote>
 <p>Start zookeeper with <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool like:</p>
 <pre><code class="hljs css language-bash">$ PULSAR_EXTRA_OPTS=<span class="hljs-string">"-Dstats_server_port=8001"</span> bin/pulsar-daemon start zookeeper
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="initializing-cluster-metadata"></a><a href="#initializing-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
-<p>Once you've deployed ZooKeeper for your cluster, there is some metadata that needs to be written to ZooKeeper for each cluster in your instance. It only needs to be written <strong>once</strong>.</p>
-<p>You can initialize this metadata using the <a href="/docs/fr/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/fr/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. This command can be run on any machine in your ZooKeeper cluster. Here's an example:</p>
+<h2><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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>Once you deploy ZooKeeper for your cluster, you need to write some metadata to ZooKeeper for each cluster in your instance. You only need to write <strong>once</strong>.</p>
+<p>You can initialize this metadata using the <a href="/docs/fr/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/fr/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. This command can be run on any machine in your ZooKeeper cluster. The following is an example:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar initialize-cluster-metadata \</span>
   --cluster pulsar-cluster-1 \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -249,7 +249,7 @@ $ <span class="hljs-built_in">echo</span> 1 &gt; data/zookeeper/myid
   --broker-service-url pulsar://pulsar.us-west.example.com:6650 \
   --broker-service-url-tls pulsar+ssl://pulsar.us-west.example.com:6651
 </code></pre>
-<p>As you can see from the example above, the following needs to be specified:</p>
+<p>As you can see from the example above, you need to specify the following:</p>
 <table>
 <thead>
 <tr><th style="text-align:left">Flag</th><th style="text-align:left">Description</th></tr>
@@ -258,10 +258,10 @@ $ <span class="hljs-built_in">echo</span> 1 &gt; data/zookeeper/myid
 <tr><td style="text-align:left"><code>--cluster</code></td><td style="text-align:left">A name for the cluster</td></tr>
 <tr><td style="text-align:left"><code>--zookeeper</code></td><td style="text-align:left">A &quot;local&quot; ZooKeeper connection string for the cluster. This connection string only needs to include <em>one</em> machine in the ZooKeeper cluster.</td></tr>
 <tr><td style="text-align:left"><code>--configuration-store</code></td><td style="text-align:left">The configuration store connection string for the entire instance. As with the <code>--zookeeper</code> flag, this connection string only needs to include <em>one</em> machine in the ZooKeeper cluster.</td></tr>
-<tr><td style="text-align:left"><code>--web-service-url</code></td><td style="text-align:left">The web service URL for the cluster, plus a port. This URL should be a standard DNS name. The default port is 8080 (we don't recommend using a different port).</td></tr>
-<tr><td style="text-align:left"><code>--web-service-url-tls</code></td><td style="text-align:left">If you're using <a href="/docs/fr/next/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster. The default port is 8443 (we don't recommend using a different port).</td></tr>
-<tr><td style="text-align:left"><code>--broker-service-url</code></td><td style="text-align:left">A broker service URL enabling interaction with the brokers in the cluster. This URL should use the same DNS name as the web service URL but should use the <code>pulsar</code> scheme instead. The default port is 6650 (we don't recommend using a different port).</td></tr>
-<tr><td style="text-align:left"><code>--broker-service-url-tls</code></td><td style="text-align:left">If you're using <a href="/docs/fr/next/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster. The default port is 6651 (we don't recommend using a different port).</td></tr>
+<tr><td style="text-align:left"><code>--web-service-url</code></td><td style="text-align:left">The web service URL for the cluster, plus a port. This URL should be a standard DNS name. The default port is 8080 (you had better not use a different port).</td></tr>
+<tr><td style="text-align:left"><code>--web-service-url-tls</code></td><td style="text-align:left">If you use <a href="/docs/fr/next/security-tls-transport">TLS</a>, you also need to specify a TLS web service URL for the cluster. The default port is 8443 (you had better not use a different port).</td></tr>
+<tr><td style="text-align:left"><code>--broker-service-url</code></td><td style="text-align:left">A broker service URL enabling interaction with the brokers in the cluster. This URL should not use the same DNS name as the web service URL but should use the <code>pulsar</code> scheme instead. The default port is 6650 (you had better not use a different port).</td></tr>
+<tr><td style="text-align:left"><code>--broker-service-url-tls</code></td><td style="text-align:left">If you use <a href="/docs/fr/next/security-tls-transport">TLS</a>, you also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster. The default port is 6651 (you had better not use a different port).</td></tr>
 </tbody>
 </table>
 <blockquote>
@@ -273,24 +273,24 @@ $ <span class="hljs-built_in">echo</span> 1 &gt; data/zookeeper/myid
 --broker-service-url <a href="pulsar://host1:6650,host2:6650,host3:6650">pulsar://host1:6650,host2:6650,host3:6650</a> <br>
 --broker-service-url-tls <a href="pulsar+ssl://host1:6651,host2:6651,host3:6651">pulsar+ssl://host1:6651,host2:6651,host3:6651</a></p>
 <pre><code class="hljs">
-<span class="hljs-section">## Deploying a BookKeeper cluster</span>
+<span class="hljs-section">## Deploy a BookKeeper cluster</span>
 
-[<span class="hljs-string">BookKeeper</span>](<span class="hljs-link">https://bookkeeper.apache.org</span>) handles all persistent data storage in Pulsar. You will need to deploy a cluster of BookKeeper bookies to use Pulsar. We recommend running a <span class="hljs-strong">**3-bookie BookKeeper cluster**</span>.
+[<span class="hljs-string">BookKeeper</span>](<span class="hljs-link">https://bookkeeper.apache.org</span>) handles all persistent data storage in Pulsar. You need to deploy a cluster of BookKeeper bookies to use Pulsar. You can choose to run a <span class="hljs-strong">**3-bookie BookKeeper cluster**</span>.
 
-BookKeeper bookies can be configured using the [<span class="hljs-string">`conf/bookkeeper.conf`</span>](<span class="hljs-link">reference-configuration.md#bookkeeper</span>) configuration file. The most important step in configuring bookies for our purposes here is ensuring that the [<span class="hljs-string">`zkServers`</span>](<span class="hljs-link">reference-configuration.md#bookkeeper-zkServers</span>) is set to the connection string for the ZooKeeper cluster. Here's an example:
+You can configure BookKeeper bookies using the [<span class="hljs-string">`conf/bookkeeper.conf`</span>](<span class="hljs-link">reference-configuration.md#bookkeeper</span>) configuration file. The most important step in configuring bookies for our purposes here is ensuring that the [<span class="hljs-string">`zkServers`</span>](<span class="hljs-link">reference-configuration.md#bookkeeper-zkServers</span>) is set to the connection string for the ZooKeeper cluster. The following is an example:
 
 <span class="hljs-code">```properties
 zkServers=zk1.us-west.example.com:2181,zk2.us-west.example.com:2181,zk3.us-west.example.com:2181
 </span></code></pre>
-<p>Once you've appropriately modified the <code>zkServers</code> parameter, you can provide any other configuration modifications you need. You can find a full listing of the available BookKeeper configuration parameters <a href="reference-configuration.md#bookkeeper">here</a>, although we would recommend consulting the <a href="http://bookkeeper.apache.org/docs/latest/reference/config/">BookKeeper documentation</a> for a more in-depth guide.</p>
+<p>Once you appropriately modify the <code>zkServers</code> parameter, you can provide any other configuration modifications you need. You can find a full listing of the available BookKeeper configuration parameters <a href="reference-configuration.md#bookkeeper">here</a>, although consulting the <a href="http://bookkeeper.apache.org/docs/latest/reference/config/">BookKeeper documentation</a> for a more in-depth guide might be a better choice.</p>
 <blockquote>
 <h5><a class="anchor" aria-hidden="true" id="notes"></a><a href="#notes" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Since Pulsar 2.1.0 release, Pulsar introduces <a href="functions-state.md">stateful function</a> for Pulsar Functions. If you would like to enable that feature, you need to enable table service on BookKeeper by setting following setting in <code>conf/bookkeeper.conf</code> file.</p>
+<p>Since Pulsar 2.1.0 releases, Pulsar introduces <a href="functions-state.md">stateful function</a> for Pulsar Functions. If you want to enable that feature, you need to enable table service on BookKeeper by doing the following setting in <code>conf/bookkeeper.conf</code> file.</p>
 <pre><code class="hljs css language-conf"></code></pre>
 </blockquote>
 <p>extraServerComponents=org.apache.bookkeeper.stream.server.StreamStorageLifecycleComponent</p>
 <pre><code class="hljs">
-Once you've applied the desired configuration in <span class="hljs-code">`conf/bookkeeper.conf`</span>, you can start up a bookie on each of your BookKeeper hosts. You can start up each bookie either in the background, using [<span class="hljs-string">nohup</span>](<span class="hljs-link">https://en.wikipedia.org/wiki/Nohup</span>), or in the foreground.
+Once you apply the desired configuration in <span class="hljs-code">`conf/bookkeeper.conf`</span>, you can start up a bookie on each of your BookKeeper hosts. You can start up each bookie either in the background, using [<span class="hljs-string">nohup</span>](<span class="hljs-link">https://en.wikipedia.org/wiki/Nohup</span>), or in the foreground.
 
 To start the bookie in the background, use the [<span class="hljs-string">`pulsar-daemon`</span>](<span class="hljs-link">/docs/fr/next/reference-cli-tools#pulsar-daemon</span>) CLI tool:
 
@@ -300,25 +300,25 @@ $ bin/pulsar-daemon start bookie
 <p>To start the bookie in the foreground:</p>
 <pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
 </code></pre>
-<p>You can verify that a bookie is working properly by running the <code>bookiesanity</code> command for the <a href="/docs/fr/next/reference-cli-tools#shell">BookKeeper shell</a> on it:</p>
+<p>You can verify that a bookie works properly by running the <code>bookiesanity</code> command for the <a href="/docs/fr/next/reference-cli-tools#shell">BookKeeper shell</a> on it:</p>
 <pre><code class="hljs css language-bash">$ bin/bookkeeper shell bookiesanity
 </code></pre>
-<p>This will create an ephemeral BookKeeper ledger on the local bookie, write a few entries, read them back, and finally delete the ledger.</p>
-<p>After you have started all the bookies, you can use <code>simpletest</code> command for <a href="/docs/fr/next/reference-cli-tools#shell">BookKeeper shell</a> on any bookie node, to verify all the bookies in the cluster are up running.</p>
+<p>This command creates an ephemeral BookKeeper ledger on the local bookie, writes a few entries, reads them back, and finally deletes the ledger.</p>
+<p>After you start all the bookies, you can use <code>simpletest</code> command for <a href="/docs/fr/next/reference-cli-tools#shell">BookKeeper shell</a> on any bookie node, to verify all the bookies in the cluster are up running.</p>
 <pre><code class="hljs css language-bash">$ bin/bookkeeper shell simpletest --ensemble &lt;num-bookies&gt; --writeQuorum &lt;num-bookies&gt; --ackQuorum &lt;num-bookies&gt; --numEntries &lt;num-entries&gt;
 </code></pre>
-<p>This command will create a <code>num-bookies</code> sized ledger on the cluster, write a few entries, and finally delete the ledger.</p>
-<h2><a class="anchor" aria-hidden="true" id="deploying-pulsar-brokers"></a><a href="#deploying-pulsar-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.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>Pulsar brokers are the last thing you need to deploy in your Pulsar cluster. Brokers handle Pulsar messages and provide Pulsar's administrative interface. We recommend running <strong>3 brokers</strong>, one for each machine that's already running a BookKeeper bookie.</p>
-<h3><a class="anchor" aria-hidden="true" id="configuring-brokers"></a><a href="#configuring-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p>The most important element of broker configuration is ensuring that each broker is aware of the ZooKeeper cluster that you've deployed. Make sure that the <a href="/docs/fr/next/reference-configuration#broker-zookeeperServers"><code>zookeeperServers</code></a> and <a href="/docs/fr/next/reference-configuration#broker-configurationStoreServers"><code>configurationStoreServers</code></a> parameters. In this case, since we only have 1 cluster and no configuration store setup, the <code>c [...]
+<p>This command creates a <code>num-bookies</code> sized ledger on the cluster, writes a few entries, and finally deletes the ledger.</p>
+<h2><a class="anchor" aria-hidden="true" id="deploy-pulsar-brokers"></a><a href="#deploy-pulsar-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<p>Pulsar brokers are the last thing you need to deploy in your Pulsar cluster. Brokers handle Pulsar messages and provide the administrative interface of Pulsar. A good choice is to run <strong>3 brokers</strong>, one for each machine that already runs a BookKeeper bookie.</p>
+<h3><a class="anchor" aria-hidden="true" id="configure-brokers"></a><a href="#configure-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>The most important element of broker configuration is ensuring that each broker is aware of the ZooKeeper cluster that you have deployed. Make sure that the <a href="/docs/fr/next/reference-configuration#broker-zookeeperServers"><code>zookeeperServers</code></a> and <a href="/docs/fr/next/reference-configuration#broker-configurationStoreServers"><code>configurationStoreServers</code></a> parameters. In this case, since you only have 1 cluster and no configuration store setup, the <cod [...]
 <pre><code class="hljs css language-properties"><span class="hljs-attr">zookeeperServers</span>=<span class="hljs-string">zk1.us-west.example.com:2181,zk2.us-west.example.com:2181,zk3.us-west.example.com:2181</span>
 <span class="hljs-attr">configurationStoreServers</span>=<span class="hljs-string">zk1.us-west.example.com:2181,zk2.us-west.example.com:2181,zk3.us-west.example.com:2181</span>
 </code></pre>
-<p>You also need to specify the cluster name (matching the name that you provided when <a href="#initializing-cluster-metadata">initializing the cluster's metadata</a>):</p>
+<p>You also need to specify the cluster name (matching the name that you provide when you <a href="#initialize-cluster-metadata">initialize the metadata of the cluster</a>):</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">clusterName</span>=<span class="hljs-string">pulsar-cluster-1</span>
 </code></pre>
-<p>In addition, you need to match the broker and web service ports provided when initializing the cluster's metadata (especially when using a different port from default):</p>
+<p>In addition, you need to match the broker and web service ports provided when you initialize the metadata of the cluster (especially when you use a different port from default):</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">brokerServicePort</span>=<span class="hljs-string">6650</span>
 <span class="hljs-attr">brokerServicePortTls</span>=<span class="hljs-string">6651</span>
 <span class="hljs-attr">webServicePort</span>=<span class="hljs-string">8080</span>
@@ -335,7 +335,7 @@ $ bin/pulsar-daemon start bookie
 <h1><a class="anchor" aria-hidden="true" id="number-of-guaranteed-copies-acks-to-wait-before-write-is-complete"></a><a href="#number-of-guaranteed-copies-acks-to-wait-before-write-is-complete" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4  [...]
 <p>managedLedgerDefaultAckQuorum=1</p>
 <pre><code class="hljs">
-<span class="hljs-section">### Enabling Pulsar Functions (optional)</span>
+<span class="hljs-section">### Enable Pulsar Functions (optional)</span>
 
 If you want to enable [<span class="hljs-string">Pulsar Functions</span>](<span class="hljs-link">functions-overview.md</span>), you can follow the instructions as below:
 <span class="hljs-bullet">
@@ -346,18 +346,18 @@ If you want to enable [<span class="hljs-string">Pulsar Functions</span>](<span
 <span class="hljs-code">      ```</span>
 <span class="hljs-bullet">      
 
-2. </span>Edit <span class="hljs-code">`conf/functions_worker.yml`</span> and set <span class="hljs-code">`pulsarFunctionsCluster`</span> to the cluster name that you provided when [<span class="hljs-string">initializing the cluster's metadata</span>](<span class="hljs-link">#initializing-cluster-metadata</span>).
+2. </span>Edit <span class="hljs-code">`conf/functions_worker.yml`</span> and set <span class="hljs-code">`pulsarFunctionsCluster`</span> to the cluster name that you provide when you [<span class="hljs-string">initialize the metadata of the cluster</span>](<span class="hljs-link">#initialize-cluster-metadata</span>).
   
 <span class="hljs-code">      ```conf</span>
 <span class="hljs-code">      pulsarFunctionsCluster: pulsar-cluster-1</span>
 <span class="hljs-code">      ```</span>
 <span class="hljs-code">      </span>
 
-If you would like to learn more options about deploying functions worker, please checkout [<span class="hljs-string">Deploy and manage functions worker</span>](<span class="hljs-link">functions-worker.md</span>).
+If you want to learn more options about deploying functions worker, checkout [<span class="hljs-string">Deploy and manage functions worker</span>](<span class="hljs-link">functions-worker.md</span>).
 
-<span class="hljs-section">### Starting Brokers</span>
+<span class="hljs-section">### Start Brokers</span>
 
-You can then provide any other configuration changes that you'd like in the [<span class="hljs-string">`conf/broker.conf`</span>](<span class="hljs-link">reference-configuration.md#broker</span>) file. Once you've decided on a configuration, you can start up the brokers for your Pulsar cluster. Like ZooKeeper and BookKeeper, brokers can be started either in the foreground or in the background, using nohup.
+You can then provide any other configuration changes that you want in the [<span class="hljs-string">`conf/broker.conf`</span>](<span class="hljs-link">reference-configuration.md#broker</span>) file. Once you decide on a configuration, you can start up the brokers for your Pulsar cluster. Like ZooKeeper and BookKeeper, you can start brokers either in the foreground or in the background, using nohup.
 
 You can start a broker in the foreground using the [<span class="hljs-string">`pulsar broker`</span>](<span class="hljs-link">reference-cli-tools.md#pulsar-broker</span>) command:
 
@@ -367,10 +367,10 @@ $ bin/pulsar broker
 <p>You can start a broker in the background using the <a href="reference-cli-tools.md#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-daemon start broker
 </code></pre>
-<p>Once you've succesfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!</p>
-<h2><a class="anchor" aria-hidden="true" id="connecting-to-the-running-cluster"></a><a href="#connecting-to-the-running-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
-<p>Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the <a href="reference-cli-tools.md#pulsar-client"><code>pulsar-client</code></a> tool, which is included with the Pulsar binary package. The <code>pulsar-client</code> tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is runnning properly.</p>
-<p>To use the <code>pulsar-client</code> tool, first modify the client configuration file in <a href="reference-configuration.md#client"><code>conf/client.conf</code></a> in your binary package. You'll need to change the values for <code>webServiceUrl</code> and <code>brokerServiceUrl</code>, substituting <code>localhost</code> (which is the default), with the DNS name that you've assigned to your broker/bookie hosts. Here's an example:</p>
+<p>Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!</p>
+<h2><a class="anchor" aria-hidden="true" id="connect-to-the-running-cluster"></a><a href="#connect-to-the-running-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 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>Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the <a href="reference-cli-tools.md#pulsar-client"><code>pulsar-client</code></a> tool, which is included with the Pulsar binary package. The <code>pulsar-client</code> tool can publish messages to and consume messages from Pulsar topics and thus provide a simple way to make sure that your cluster runs properly.</p>
+<p>To use the <code>pulsar-client</code> tool, first modify the client configuration file in <a href="reference-configuration.md#client"><code>conf/client.conf</code></a> in your binary package. You need to change the values for <code>webServiceUrl</code> and <code>brokerServiceUrl</code>, substituting <code>localhost</code> (which is the default), with the DNS name that you assign to your broker/bookie hosts. The following is an example:</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">webServiceUrl</span>=<span class="hljs-string">http://us-west.example.com:8080</span>
 <span class="hljs-attr">brokerServiceurl</span>=<span class="hljs-string">pulsar://us-west.example.com:6650</span>
 </code></pre>
@@ -381,31 +381,31 @@ $ bin/pulsar broker
 <p>webServiceUrl=<a href="http://host1:8080,host2:8080,host3:8080">http://host1:8080,host2:8080,host3:8080</a>
 brokerServiceurl=<a href="pulsar://host1:6650,host2:6650,host3:6650">pulsar://host1:6650,host2:6650,host3:6650</a></p>
 <pre><code class="hljs">
-Once you<span class="hljs-comment">'ve done that, you can publish a message to Pulsar topic:</span>
+Once you <span class="hljs-built_in">do</span> that, you can publish a message to Pulsar topic:
 
-```bash
+<span class="hljs-string">```</span>bash
 $ bin/pulsar-client produce \
-  persistent://<span class="hljs-keyword">public</span>/<span class="hljs-keyword">default</span>/test \
+<span class="hljs-symbol">  persistent:</span>//<span class="hljs-meta">public</span>/<span class="hljs-meta">default</span>/<span class="hljs-keyword">test</span> \
   -n <span class="hljs-number">1</span> \
   -m <span class="hljs-string">"Hello Pulsar"</span>
 </code></pre>
 <blockquote>
-<p>You may need to use a different cluster name in the topic if you specified a cluster name different from <code>pulsar-cluster-1</code>.</p>
+<p>You may need to use a different cluster name in the topic if you specify a cluster name different from <code>pulsar-cluster-1</code>.</p>
 </blockquote>
-<p>This will publish a single message to the Pulsar topic. In addition, you can subscribe the Pulsar topic in a different terminal before publishing messages as below:</p>
+<p>This command publishes a single message to the Pulsar topic. In addition, you can subscribe the Pulsar topic in a different terminal before publishing messages as below:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client consume \
   persistent://public/default/<span class="hljs-built_in">test</span> \
   -n 100 \
   -s <span class="hljs-string">"consumer-test"</span> \
   -t <span class="hljs-string">"Exclusive"</span>
 </code></pre>
-<p>Once the message above has been successfully published to the topic, you should see it in the standard output:</p>
+<p>Once you successfully publish the message above to the topic, you should see it in the standard output:</p>
 <pre><code class="hljs css language-bash">----- got message -----
 Hello Pulsar
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="running-functions"></a><a href="#running-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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- [...]
+<h2><a class="anchor" aria-hidden="true" id="run-functions"></a><a href="#run-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 [...]
 <blockquote>
-<p>If you have <a href="#enabling-pulsar-functions-optional">enabled</a> Pulsar Functions, you can also tryout pulsar functions now.</p>
+<p>If you have <a href="#enable-pulsar-functions-optional">enabled</a> Pulsar Functions, you can also tryout pulsar functions now.</p>
 </blockquote>
 <p>Create a ExclamationFunction <code>exclamation</code>.</p>
 <pre><code class="hljs css language-bash">bin/pulsar-admin <span class="hljs-built_in">functions</span> create \
@@ -417,13 +417,13 @@ Hello Pulsar
   --namespace default \
   --name exclamation
 </code></pre>
-<p>Check if the function is running as expected by <a href="functions-deploying.md#triggering-pulsar-functions">triggering</a> the function.</p>
+<p>Check if the function runs as expected by <a href="functions-deploying.md#triggering-pulsar-functions">triggering</a> the function.</p>
 <pre><code class="hljs css language-bash">bin/pulsar-admin <span class="hljs-built_in">functions</span> trigger --name exclamation --trigger-value <span class="hljs-string">"hello world"</span>
 </code></pre>
-<p>You will see output as below:</p>
+<p>You can see the 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/fr/next/deploy-kubernetes"><span class="arrow-prev">← </span><span>Kubernetes</span></a><a class="docs-next button" href="/docs/fr/next/deploy-bare-metal-multi-cluster"><span>Bare metal multi-cluster</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#preparation">Preparation</a><ul class="toc-headings"><li><a href="#requi [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/deploy-kubernetes"><span class="arrow-prev">← </span><span>Kubernetes</span></a><a class="docs-next button" href="/docs/fr/next/deploy-bare-metal-multi-cluster"><span>Bare metal multi-cluster</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#preparation">Preparation</a><ul class="toc-headings"><li><a href="#requi [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/next/deploy-bare-metal/index.html b/content/docs/fr/next/deploy-bare-metal/index.html
index d7fd633..6f4d2a7 100644
--- a/content/docs/fr/next/deploy-bare-metal/index.html
+++ b/content/docs/fr/next/deploy-bare-metal/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Deploying a cluster on bare metal · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&gt; ### Tips"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="fr"/><meta property="og:title" content="Deploying a cluster on bare metal · Apa [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Deploy a cluster on bare metal · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&gt; ### Tips"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="fr"/><meta property="og:title" content="Deploy a cluster on bare metal · Apache Pu [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -74,60 +74,60 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Deploying a cluster on bare metal</h1></header><article><div><span><blockquote>
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Deploy 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 Pulsar or using it in a startup or on a single team, we recommend opting for a single cluster. If you do need to run a multi-cluster Pulsar instance, however, see the guide <a href="/docs/fr/next/deploy-bare-metal-multi-cluster">here</a>.</p></li>
-<li><p>If you want to use all builtin <a href="/docs/fr/next/io-overview">Pulsar IO</a> connectors in your Pulsar deployment, you need to download <code>apache-pulsar-io-connectors</code> package and make sure it is installed under <code>connectors</code> directory in the pulsar directory on every broker node or on every function-worker node if you have run a separate cluster of function workers for <a href="/docs/fr/next/functions-overview">Pulsar Functions</a>.</p></li>
-<li><p>If you want to use <a href="/docs/fr/next/concepts-tiered-storage">Tiered Storage</a> feature in your Pulsar deployment, you need to download <code>apache-pulsar-offloaders</code> package and make sure it is installed under <code>offloaders</code> directory in the pulsar directory on every broker node. For more details of how to configure this feature, you could reference this <a href="/docs/fr/next/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p></li>
+<li><p>Single-cluster Pulsar installations should be sufficient for all but the most ambitious use cases. If you are interested in experimenting with Pulsar or using Pulsar in a startup or on a single team, you had better opt for a single cluster. If you do need to run a multi-cluster Pulsar instance, see the guide <a href="/docs/fr/next/deploy-bare-metal-multi-cluster">here</a>.</p></li>
+<li><p>If you want to use all builtin <a href="/docs/fr/next/io-overview">Pulsar IO</a> connectors in your Pulsar deployment, you need to download <code>apache-pulsar-io-connectors</code> package and install <code>apache-pulsar-io-connectors</code> under <code>connectors</code> directory in the pulsar directory on every broker node or on every function-worker node if you have run a separate cluster of function workers for <a href="/docs/fr/next/functions-overview">Pulsar Functions</a>.</p></li>
+<li><p>If you want to use <a href="/docs/fr/next/concepts-tiered-storage">Tiered Storage</a> feature in your Pulsar deployment, you need to download <code>apache-pulsar-offloaders</code> package and install <code>apache-pulsar-offloaders</code> under <code>offloaders</code> directory in the pulsar directory on every broker node. For more details of how to configure this feature, you can refer to the <a href="/docs/fr/next/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p></li>
 </ol>
 </blockquote>
 <p>Deploying a Pulsar cluster involves doing the following (in order):</p>
 <ul>
-<li>Deploying a <a href="#deploying-a-zookeeper-cluster">ZooKeeper</a> cluster (optional)</li>
-<li>Initializing <a href="#initializing-cluster-metadata">cluster metadata</a></li>
-<li>Deploying a <a href="#deploying-a-bookkeeper-cluster">BookKeeper</a> cluster</li>
-<li>Deploying one or more Pulsar <a href="#deploying-pulsar-brokers">brokers</a></li>
+<li>Deploy a <a href="#deploy-a-zookeeper-cluster">ZooKeeper</a> cluster (optional)</li>
+<li>Initialize <a href="#initialize-cluster-metadata">cluster metadata</a></li>
+<li>Deploy a <a href="#deploy-a-bookkeeper-cluster">BookKeeper</a> cluster</li>
+<li>Deploy one or more Pulsar <a href="#deploy-pulsar-brokers">brokers</a></li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="preparation"></a><a href="#preparation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 [...]
 <h3><a class="anchor" aria-hidden="true" id="requirements"></a><a href="#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.22-2-2.5 0-.83. [...]
 <blockquote>
-<p>If you already have an existing zookeeper cluster and would like to reuse it, you don't need to prepare the machines for running ZooKeeper.</p>
+<p>If you already have an existing zookeeper cluster and want to reuse it, you do not need to prepare the machines for running ZooKeeper.</p>
 </blockquote>
-<p>To run Pulsar on bare metal, you are recommended to have:</p>
+<p>To run Pulsar on bare metal, you had better have the following:</p>
 <ul>
 <li>At least 6 Linux machines or VMs
 <ul>
-<li>3 running <a href="https://zookeeper.apache.org">ZooKeeper</a></li>
-<li>3 running a Pulsar broker, and a <a href="https://bookkeeper.apache.org">BookKeeper</a> bookie</li>
+<li>3 for running <a href="https://zookeeper.apache.org">ZooKeeper</a></li>
+<li>3 for running a Pulsar broker, and a <a href="https://bookkeeper.apache.org">BookKeeper</a> bookie</li>
 </ul></li>
 <li>A single <a href="https://en.wikipedia.org/wiki/Domain_Name_System">DNS</a> name covering all of the Pulsar broker hosts</li>
 </ul>
 <blockquote>
-<p>However if you don't have enough machines, or are trying out Pulsar in cluster mode (and expand the cluster later), you can even deploy Pulsar in one node, where it will run zookeeper, bookie and broker in same machine.</p>
-<p>If you don't have a DNS server, you can use multi-host in service URL instead.</p>
+<p>If you do not have enough machines, or try out Pulsar in cluster mode (and expand the cluster later), you can even deploy Pulsar in one node, where Zookeeper, bookie and broker are run in the same machine.</p>
+<p>If you do not have a DNS server, you can use multi-host in service URL instead.</p>
 </blockquote>
-<p>Each machine in your cluster will need to have <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java 8</a> or higher installed.</p>
-<p>Here's a diagram showing the basic setup:</p>
+<p>Each machine in your cluster needs to have <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java 8</a> or higher version of Java installed.</p>
+<p>The following is a diagram showing the basic setup:</p>
 <p><img src="/docs/assets/pulsar-basic-setup.png" alt="alt-text"></p>
-<p>In this diagram, connecting clients need to be able to communicate with the Pulsar cluster using a single URL, in this case <code>pulsar-cluster.acme.com</code>, that abstracts over all of the message-handling brokers. Pulsar message brokers run on machines alongside BookKeeper bookies; brokers and bookies, in turn, rely on ZooKeeper.</p>
+<p>In this diagram, connecting clients need to be able to communicate with the Pulsar cluster using a single URL, in this case <code>pulsar-cluster.acme.com</code> abstracts over all of the message-handling brokers. Pulsar message brokers run on machines alongside BookKeeper bookies; brokers and bookies, in turn, rely on ZooKeeper.</p>
 <h3><a class="anchor" aria-hidden="true" id="hardware-considerations"></a><a href="#hardware-considerations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 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>When deploying a Pulsar cluster, we have some basic recommendations that you should keep in mind when capacity planning.</p>
+<p>When you deploy a Pulsar cluster, keep in mind the following basic better choices when you do the capacity planning.</p>
 <h4><a class="anchor" aria-hidden="true" id="zookeeper"></a><a href="#zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>For machines running ZooKeeper, we recommend using lighter-weight machines or VMs. Pulsar uses ZooKeeper only for periodic coordination- and configuration-related tasks, <em>not</em> for basic operations. If you're running Pulsar on <a href="https://aws.amazon.com/">Amazon Web Services</a> (AWS), for example, a <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html">t2.small</a> instance would likely suffice.</p>
-<h4><a class="anchor" aria-hidden="true" id="bookies-brokers"></a><a href="#bookies-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
-<p>For machines running a bookie and a Pulsar broker, we recommend using more powerful machines. For an AWS deployment, for example, <a href="https://aws.amazon.com/blogs/aws/now-available-i3-instances-for-demanding-io-intensive-applications/">i3.4xlarge</a> instances may be appropriate. On those machines we also recommend:</p>
+<p>For machines running ZooKeeper, you had better use lighter-weight machines or VMs. Pulsar uses ZooKeeper only for periodic coordination-related and configuration-related tasks, <em>not</em> for basic operations. If you run Pulsar on <a href="https://aws.amazon.com/">Amazon Web Services</a> (AWS), for example, a <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html">t2.small</a> instance might likely suffice.</p>
+<h4><a class="anchor" aria-hidden="true" id="bookies-and-brokers"></a><a href="#bookies-and-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>For machines running a bookie and a Pulsar broker, you had better use more powerful machines. For an AWS deployment, for example, <a href="https://aws.amazon.com/blogs/aws/now-available-i3-instances-for-demanding-io-intensive-applications/">i3.4xlarge</a> instances may be appropriate. On those machines you can use the following:</p>
 <ul>
 <li>Fast CPUs and 10Gbps <a href="https://en.wikipedia.org/wiki/Network_interface_controller">NIC</a> (for Pulsar brokers)</li>
 <li>Small and fast <a href="https://en.wikipedia.org/wiki/Solid-state_drive">solid-state drives</a> (SSDs) or <a href="https://en.wikipedia.org/wiki/Hard_disk_drive">hard disk drives</a> (HDDs) with a <a href="https://en.wikipedia.org/wiki/RAID">RAID</a> controller and a battery-backed write cache (for BookKeeper bookies)</li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="installing-the-pulsar-binary-package"></a><a href="#installing-the-pulsar-binary-package" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 [...]
+<h2><a class="anchor" aria-hidden="true" id="install-the-pulsar-binary-package"></a><a href="#install-the-pulsar-binary-package" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
 <blockquote>
-<p>You'll need to install the Pulsar binary package on <em>each machine in the cluster</em>, including machines running <a href="#deploying-a-zookeeper-cluster">ZooKeeper</a> and <a href="#deploying-a-bookkeeper-cluster">BookKeeper</a>.</p>
+<p>You need to install the Pulsar binary package on <em>each machine in the cluster</em>, including machines running <a href="#deploy-a-zookeeper-cluster">ZooKeeper</a> and <a href="#deploy-a-bookkeeper-cluster">BookKeeper</a>.</p>
 </blockquote>
-<p>To get started deploying a Pulsar cluster on bare metal, you'll need to download a binary tarball release in one of the following ways:</p>
+<p>To get started deploying a Pulsar cluster on bare metal, you need to download a binary tarball release in one of the following ways:</p>
 <ul>
-<li>By clicking on the link directly below, which will automatically trigger a download:
+<li>By clicking on the link below directly, which automatically triggers a download:
 <ul>
 <li><a href="https://archive.apache.org/dist/pulsar/pulsar-2.4.1/apache-pulsar-2.4.1-bin.tar.gz" download>Pulsar 2.4.1 binary release</a></li>
 </ul></li>
@@ -137,7 +137,7 @@
 </ul>
 <pre><code class="hljs css language-bash">$ wget https://archive.apache.org/dist/pulsar/pulsar-2.4.1/apache-pulsar-2.4.1-bin.tar.gz
 </code></pre>
-<p>Once you've downloaded the tarball, untar it and <code>cd</code> into the resulting directory:</p>
+<p>Once you download the tarball, untar it and <code>cd</code> into the resulting directory:</p>
 <pre><code class="hljs css language-bash">$ tar xvzf apache-pulsar-2.4.1-bin.tar.gz
 $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 </code></pre>
@@ -147,18 +147,18 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <tr><th style="text-align:left">Directory</th><th style="text-align:left">Contains</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left">Pulsar's <a href="/docs/fr/next/reference-cli-tools">command-line tools</a>, such as <a href="/docs/fr/next/reference-cli-tools#pulsar"><code>pulsar</code></a> and <a href="/docs/fr/next/pulsar-admin"><code>pulsar-admin</code></a></td></tr>
+<tr><td style="text-align:left"><code>bin</code></td><td style="text-align:left"><a href="/docs/fr/next/reference-cli-tools">command-line tools</a> of Pulsar, such as <a href="/docs/fr/next/reference-cli-tools#pulsar"><code>pulsar</code></a> and <a href="/docs/fr/next/pulsar-admin"><code>pulsar-admin</code></a></td></tr>
 <tr><td style="text-align:left"><code>conf</code></td><td style="text-align:left">Configuration files for Pulsar, including for <a href="/docs/fr/next/reference-configuration#broker">broker configuration</a>, <a href="/docs/fr/next/reference-configuration#zookeeper">ZooKeeper configuration</a>, and more</td></tr>
-<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory used by ZooKeeper and BookKeeper.</td></tr>
-<tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files used by Pulsar.</td></tr>
-<tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">Logs created by the installation.</td></tr>
+<tr><td style="text-align:left"><code>data</code></td><td style="text-align:left">The data storage directory that ZooKeeper and BookKeeper use</td></tr>
+<tr><td style="text-align:left"><code>lib</code></td><td style="text-align:left">The <a href="https://en.wikipedia.org/wiki/JAR_(file_format)">JAR</a> files that Pulsar uses</td></tr>
+<tr><td style="text-align:left"><code>logs</code></td><td style="text-align:left">Logs that the installation creates</td></tr>
 </tbody>
 </table>
-<h2><a class="anchor" aria-hidden="true" id="installing-builtin-connectors-optional"></a><a href="#installing-builtin-connectors-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<h2><a class="anchor" aria-hidden="true" id="install-builtin-connectors-optional-https-pulsarapacheorg-docs-en-next-standalone-install-builtin-connectors-optional"></a><a href="#install-builtin-connectors-optional-https-pulsarapacheorg-docs-en-next-standalone-install-builtin-connectors-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69- [...]
 <blockquote>
-<p>Since release <code>2.1.0-incubating</code>, Pulsar releases a separate binary distribution, containing all the <code>builtin</code> connectors. If you would like to enable those <code>builtin</code> connectors, you can follow the instructions as below; otherwise you can skip this section for now.</p>
+<p>Since Pulsar releases <code>2.1.0-incubating</code>, Pulsar releases a separate binary distribution, containing all the <code>builtin</code> connectors. If you want to enable those <code>builtin</code> connectors, you can follow the instructions as below; otherwise you can skip this section for now.</p>
 </blockquote>
-<p>To get started using builtin connectors, you'll need to download the connectors tarball release on every broker node in one of the following ways:</p>
+<p>To get started using builtin connectors, you need to download the connectors tarball release on every broker node in one of the following ways:</p>
 <ul>
 <li><p>by clicking the link below and downloading the release from an Apache mirror:</p>
 <ul>
@@ -170,7 +170,7 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.4.1
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> wget https://archive.apache.org/dist/pulsar/pulsar-2.4.1/connectors/{connector}-2.4.1.nar</span>
 </code></pre></li>
 </ul>
-<p>Once the nar file is downloaded, copy the file to directory <code>connectors</code> in the pulsar directory, for example, if the connector file <code>pulsar-io-aerospike-2.4.1.nar</code> is downloaded:</p>
+<p>Once you download the nar file, copy the file to directory <code>connectors</code> in the pulsar directory, for example, if you download the connector file <code>pulsar-io-aerospike-2.4.1.nar</code>:</p>
 <pre><code class="hljs css language-bash">$ mkdir connectors
 $ mv pulsar-io-aerospike-2.4.1.nar connectors
 
@@ -178,11 +178,11 @@ $ ls connectors
 pulsar-io-aerospike-2.4.1.nar
 ...
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="installing-tiered-storage-offloaders-optional"></a><a href="#installing-tiered-storage-offloaders-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h- [...]
+<h2><a class="anchor" aria-hidden="true" id="install-tiered-storage-offloaders-optional-https-pulsarapacheorg-docs-en-next-standalone-install-tiered-storage-offloaders-optional"></a><a href="#install-tiered-storage-offloaders-optional-https-pulsarapacheorg-docs-en-next-standalone-install-tiered-storage-offloaders-optional" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd"  [...]
 <blockquote>
-<p>Since release <code>2.2.0</code>, Pulsar releases a separate binary distribution, containing the tiered storage offloaders. If you would like to enable tiered storage feature, you can follow the instructions as below; otherwise you can skip this section for now.</p>
+<p>Since Pulsar release <code>2.2.0</code>, Pulsar releases a separate binary distribution, containing the tiered storage offloaders. If you want to enable tiered storage feature, you can follow the instructions as below; otherwise you can skip this section for now.</p>
 </blockquote>
-<p>To get started using tiered storage offloaders, you'll need to download the offloaders tarball release on every broker node in one of the following ways:</p>
+<p>To get started using tiered storage offloaders, you need to download the offloaders tarball release on every broker node in one of the following ways:</p>
 <ul>
 <li><p>by clicking the link below and downloading the release from an Apache mirror:</p>
 <ul>
@@ -194,10 +194,10 @@ pulsar-io-aerospike-2.4.1.nar
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> wget https://archive.apache.org/dist/pulsar/pulsar-2.4.1/apache-pulsar-offloaders-2.4.1-bin.tar.gz</span>
 </code></pre></li>
 </ul>
-<p>Once the tarball is downloaded, in the pulsar directory, untar the offloaders package and copy the offloaders as <code>offloaders</code> in the pulsar directory:</p>
+<p>Once you download the tarball, in the pulsar directory, untar the offloaders package and copy the offloaders as <code>offloaders</code> in the pulsar directory:</p>
 <pre><code class="hljs css language-bash">$ tar xvfz apache-pulsar-offloaders-2.4.1-bin.tar.gz
 
-// you will find a directory named `apache-pulsar-offloaders-2.4.1` <span class="hljs-keyword">in</span> the pulsar directory
+// you can find a directory named `apache-pulsar-offloaders-2.4.1` <span class="hljs-keyword">in</span> the pulsar directory
 // <span class="hljs-keyword">then</span> copy the offloaders
 
 $ mv apache-pulsar-offloaders-2.4.1/offloaders offloaders
@@ -205,13 +205,13 @@ $ mv apache-pulsar-offloaders-2.4.1/offloaders offloaders
 $ ls offloaders
 tiered-storage-jcloud-2.4.1.nar
 </code></pre>
-<p>For more details of how to configure tiered storage feature, you could reference this <a href="/docs/fr/next/cookbooks-tiered-storage">Tiered storage cookbook</a></p>
-<h2><a class="anchor" aria-hidden="true" id="deploying-a-zookeeper-cluster"></a><a href="#deploying-a-zookeeper-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
+<p>For more details of how to configure tiered storage feature, you can refer to the <a href="/docs/fr/next/cookbooks-tiered-storage">Tiered storage cookbook</a></p>
+<h2><a class="anchor" aria-hidden="true" id="deploy-a-zookeeper-cluster"></a><a href="#deploy-a-zookeeper-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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 [...]
 <blockquote>
-<p>If you already have an exsiting zookeeper cluster and would like to use it, you can skip this section.</p>
+<p>If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.</p>
 </blockquote>
-<p><a href="https://zookeeper.apache.org">ZooKeeper</a> manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you'll need to deploy ZooKeeper first (before all other components). We recommend deploying a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.</p>
-<p>To begin, add all ZooKeeper servers to the configuration specified in <a href="/docs/fr/next/reference-configuration#zookeeper"><code>conf/zookeeper.conf</code></a> (in the Pulsar directory you created <a href="#installing-the-pulsar-binary-package">above</a>). Here's an example:</p>
+<p><a href="https://zookeeper.apache.org">ZooKeeper</a> manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you need to deploy ZooKeeper first (before all other components). You had better deploy a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.</p>
+<p>To begin, add all ZooKeeper servers to the configuration specified in <a href="/docs/fr/next/reference-configuration#zookeeper"><code>conf/zookeeper.conf</code></a> (in the Pulsar directory that you create <a href="#install-the-pulsar-binary-package">above</a>). The following is an example:</p>
 <pre><code class="hljs css language-properties"><span class="hljs-meta">server.1</span>=<span class="hljs-string">zk1.us-west.example.com:2888:3888</span>
 <span class="hljs-meta">server.2</span>=<span class="hljs-string">zk2.us-west.example.com:2888:3888</span>
 <span class="hljs-meta">server.3</span>=<span class="hljs-string">zk3.us-west.example.com:2888:3888</span>
@@ -219,27 +219,27 @@ tiered-storage-jcloud-2.4.1.nar
 <blockquote>
 <p>If you have only one machine to deploy Pulsar, you just need to add one server entry in the configuration file.</p>
 </blockquote>
-<p>On each host, you need to specify the ID of the node in each node's <code>myid</code> file, which is in each server's <code>data/zookeeper</code> folder by default (this can be changed via the <a href="/docs/fr/next/reference-configuration#zookeeper-dataDir"><code>dataDir</code></a> parameter).</p>
+<p>On each host, you need to specify the ID of the node in the <code>myid</code> file of each node, which is in each <code>data/zookeeper</code> folder of server by default (you can change the file location via the <a href="/docs/fr/next/reference-configuration#zookeeper-dataDir"><code>dataDir</code></a> parameter).</p>
 <blockquote>
-<p>See the <a href="https://zookeeper.apache.org/doc/r3.4.10/zookeeperAdmin.html#sc_zkMulitServerSetup">Multi-server setup guide</a> in the ZooKeeper documentation for detailed info on <code>myid</code> and more.</p>
+<p>See the <a href="https://zookeeper.apache.org/doc/r3.4.10/zookeeperAdmin.html#sc_zkMulitServerSetup">Multi-server setup guide</a> in the ZooKeeper documentation for detailed information on <code>myid</code> and more.</p>
 </blockquote>
-<p>On a ZooKeeper server at <code>zk1.us-west.example.com</code>, for example, you could set the <code>myid</code> value like this:</p>
+<p>On a ZooKeeper server at <code>zk1.us-west.example.com</code>, for example, you can set the <code>myid</code> value like this:</p>
 <pre><code class="hljs css language-bash">$ mkdir -p data/zookeeper
 $ <span class="hljs-built_in">echo</span> 1 &gt; data/zookeeper/myid
 </code></pre>
-<p>On <code>zk2.us-west.example.com</code> the command would be <code>echo 2 &gt; data/zookeeper/myid</code> and so on.</p>
-<p>Once each server has been added to the <code>zookeeper.conf</code> configuration and has the appropriate <code>myid</code> entry, you can start ZooKeeper on all hosts (in the background, using nohup) with the <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<p>On <code>zk2.us-west.example.com</code> the command is <code>echo 2 &gt; data/zookeeper/myid</code> and so on.</p>
+<p>Once you add each server to the <code>zookeeper.conf</code> configuration and have the appropriate <code>myid</code> entry, you can start ZooKeeper on all hosts (in the background, using nohup) with the <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-daemon start zookeeper
 </code></pre>
 <blockquote>
-<p>If you are planning to deploy zookeeper with bookie on the same node, you need to start zookeeper by using different stats port.</p>
+<p>If you plan to deploy zookeeper with bookie on the same node, you need to start zookeeper by using different stats port.</p>
 </blockquote>
 <p>Start zookeeper with <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool like:</p>
 <pre><code class="hljs css language-bash">$ PULSAR_EXTRA_OPTS=<span class="hljs-string">"-Dstats_server_port=8001"</span> bin/pulsar-daemon start zookeeper
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="initializing-cluster-metadata"></a><a href="#initializing-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
-<p>Once you've deployed ZooKeeper for your cluster, there is some metadata that needs to be written to ZooKeeper for each cluster in your instance. It only needs to be written <strong>once</strong>.</p>
-<p>You can initialize this metadata using the <a href="/docs/fr/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/fr/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. This command can be run on any machine in your ZooKeeper cluster. Here's an example:</p>
+<h2><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 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>Once you deploy ZooKeeper for your cluster, you need to write some metadata to ZooKeeper for each cluster in your instance. You only need to write <strong>once</strong>.</p>
+<p>You can initialize this metadata using the <a href="/docs/fr/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command of the <a href="/docs/fr/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool. This command can be run on any machine in your ZooKeeper cluster. The following is an example:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar initialize-cluster-metadata \</span>
   --cluster pulsar-cluster-1 \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -249,7 +249,7 @@ $ <span class="hljs-built_in">echo</span> 1 &gt; data/zookeeper/myid
   --broker-service-url pulsar://pulsar.us-west.example.com:6650 \
   --broker-service-url-tls pulsar+ssl://pulsar.us-west.example.com:6651
 </code></pre>
-<p>As you can see from the example above, the following needs to be specified:</p>
+<p>As you can see from the example above, you need to specify the following:</p>
 <table>
 <thead>
 <tr><th style="text-align:left">Flag</th><th style="text-align:left">Description</th></tr>
@@ -258,10 +258,10 @@ $ <span class="hljs-built_in">echo</span> 1 &gt; data/zookeeper/myid
 <tr><td style="text-align:left"><code>--cluster</code></td><td style="text-align:left">A name for the cluster</td></tr>
 <tr><td style="text-align:left"><code>--zookeeper</code></td><td style="text-align:left">A &quot;local&quot; ZooKeeper connection string for the cluster. This connection string only needs to include <em>one</em> machine in the ZooKeeper cluster.</td></tr>
 <tr><td style="text-align:left"><code>--configuration-store</code></td><td style="text-align:left">The configuration store connection string for the entire instance. As with the <code>--zookeeper</code> flag, this connection string only needs to include <em>one</em> machine in the ZooKeeper cluster.</td></tr>
-<tr><td style="text-align:left"><code>--web-service-url</code></td><td style="text-align:left">The web service URL for the cluster, plus a port. This URL should be a standard DNS name. The default port is 8080 (we don't recommend using a different port).</td></tr>
-<tr><td style="text-align:left"><code>--web-service-url-tls</code></td><td style="text-align:left">If you're using <a href="/docs/fr/next/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster. The default port is 8443 (we don't recommend using a different port).</td></tr>
-<tr><td style="text-align:left"><code>--broker-service-url</code></td><td style="text-align:left">A broker service URL enabling interaction with the brokers in the cluster. This URL should use the same DNS name as the web service URL but should use the <code>pulsar</code> scheme instead. The default port is 6650 (we don't recommend using a different port).</td></tr>
-<tr><td style="text-align:left"><code>--broker-service-url-tls</code></td><td style="text-align:left">If you're using <a href="/docs/fr/next/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster. The default port is 6651 (we don't recommend using a different port).</td></tr>
+<tr><td style="text-align:left"><code>--web-service-url</code></td><td style="text-align:left">The web service URL for the cluster, plus a port. This URL should be a standard DNS name. The default port is 8080 (you had better not use a different port).</td></tr>
+<tr><td style="text-align:left"><code>--web-service-url-tls</code></td><td style="text-align:left">If you use <a href="/docs/fr/next/security-tls-transport">TLS</a>, you also need to specify a TLS web service URL for the cluster. The default port is 8443 (you had better not use a different port).</td></tr>
+<tr><td style="text-align:left"><code>--broker-service-url</code></td><td style="text-align:left">A broker service URL enabling interaction with the brokers in the cluster. This URL should not use the same DNS name as the web service URL but should use the <code>pulsar</code> scheme instead. The default port is 6650 (you had better not use a different port).</td></tr>
+<tr><td style="text-align:left"><code>--broker-service-url-tls</code></td><td style="text-align:left">If you use <a href="/docs/fr/next/security-tls-transport">TLS</a>, you also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster. The default port is 6651 (you had better not use a different port).</td></tr>
 </tbody>
 </table>
 <blockquote>
@@ -273,24 +273,24 @@ $ <span class="hljs-built_in">echo</span> 1 &gt; data/zookeeper/myid
 --broker-service-url <a href="pulsar://host1:6650,host2:6650,host3:6650">pulsar://host1:6650,host2:6650,host3:6650</a> <br>
 --broker-service-url-tls <a href="pulsar+ssl://host1:6651,host2:6651,host3:6651">pulsar+ssl://host1:6651,host2:6651,host3:6651</a></p>
 <pre><code class="hljs">
-<span class="hljs-section">## Deploying a BookKeeper cluster</span>
+<span class="hljs-section">## Deploy a BookKeeper cluster</span>
 
-[<span class="hljs-string">BookKeeper</span>](<span class="hljs-link">https://bookkeeper.apache.org</span>) handles all persistent data storage in Pulsar. You will need to deploy a cluster of BookKeeper bookies to use Pulsar. We recommend running a <span class="hljs-strong">**3-bookie BookKeeper cluster**</span>.
+[<span class="hljs-string">BookKeeper</span>](<span class="hljs-link">https://bookkeeper.apache.org</span>) handles all persistent data storage in Pulsar. You need to deploy a cluster of BookKeeper bookies to use Pulsar. You can choose to run a <span class="hljs-strong">**3-bookie BookKeeper cluster**</span>.
 
-BookKeeper bookies can be configured using the [<span class="hljs-string">`conf/bookkeeper.conf`</span>](<span class="hljs-link">reference-configuration.md#bookkeeper</span>) configuration file. The most important step in configuring bookies for our purposes here is ensuring that the [<span class="hljs-string">`zkServers`</span>](<span class="hljs-link">reference-configuration.md#bookkeeper-zkServers</span>) is set to the connection string for the ZooKeeper cluster. Here's an example:
+You can configure BookKeeper bookies using the [<span class="hljs-string">`conf/bookkeeper.conf`</span>](<span class="hljs-link">reference-configuration.md#bookkeeper</span>) configuration file. The most important step in configuring bookies for our purposes here is ensuring that the [<span class="hljs-string">`zkServers`</span>](<span class="hljs-link">reference-configuration.md#bookkeeper-zkServers</span>) is set to the connection string for the ZooKeeper cluster. The following is an example:
 
 <span class="hljs-code">```properties
 zkServers=zk1.us-west.example.com:2181,zk2.us-west.example.com:2181,zk3.us-west.example.com:2181
 </span></code></pre>
-<p>Once you've appropriately modified the <code>zkServers</code> parameter, you can provide any other configuration modifications you need. You can find a full listing of the available BookKeeper configuration parameters <a href="reference-configuration.md#bookkeeper">here</a>, although we would recommend consulting the <a href="http://bookkeeper.apache.org/docs/latest/reference/config/">BookKeeper documentation</a> for a more in-depth guide.</p>
+<p>Once you appropriately modify the <code>zkServers</code> parameter, you can provide any other configuration modifications you need. You can find a full listing of the available BookKeeper configuration parameters <a href="reference-configuration.md#bookkeeper">here</a>, although consulting the <a href="http://bookkeeper.apache.org/docs/latest/reference/config/">BookKeeper documentation</a> for a more in-depth guide might be a better choice.</p>
 <blockquote>
 <h5><a class="anchor" aria-hidden="true" id="notes"></a><a href="#notes" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>Since Pulsar 2.1.0 release, Pulsar introduces <a href="functions-state.md">stateful function</a> for Pulsar Functions. If you would like to enable that feature, you need to enable table service on BookKeeper by setting following setting in <code>conf/bookkeeper.conf</code> file.</p>
+<p>Since Pulsar 2.1.0 releases, Pulsar introduces <a href="functions-state.md">stateful function</a> for Pulsar Functions. If you want to enable that feature, you need to enable table service on BookKeeper by doing the following setting in <code>conf/bookkeeper.conf</code> file.</p>
 <pre><code class="hljs css language-conf"></code></pre>
 </blockquote>
 <p>extraServerComponents=org.apache.bookkeeper.stream.server.StreamStorageLifecycleComponent</p>
 <pre><code class="hljs">
-Once you've applied the desired configuration in <span class="hljs-code">`conf/bookkeeper.conf`</span>, you can start up a bookie on each of your BookKeeper hosts. You can start up each bookie either in the background, using [<span class="hljs-string">nohup</span>](<span class="hljs-link">https://en.wikipedia.org/wiki/Nohup</span>), or in the foreground.
+Once you apply the desired configuration in <span class="hljs-code">`conf/bookkeeper.conf`</span>, you can start up a bookie on each of your BookKeeper hosts. You can start up each bookie either in the background, using [<span class="hljs-string">nohup</span>](<span class="hljs-link">https://en.wikipedia.org/wiki/Nohup</span>), or in the foreground.
 
 To start the bookie in the background, use the [<span class="hljs-string">`pulsar-daemon`</span>](<span class="hljs-link">/docs/fr/next/reference-cli-tools#pulsar-daemon</span>) CLI tool:
 
@@ -300,25 +300,25 @@ $ bin/pulsar-daemon start bookie
 <p>To start the bookie in the foreground:</p>
 <pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
 </code></pre>
-<p>You can verify that a bookie is working properly by running the <code>bookiesanity</code> command for the <a href="/docs/fr/next/reference-cli-tools#shell">BookKeeper shell</a> on it:</p>
+<p>You can verify that a bookie works properly by running the <code>bookiesanity</code> command for the <a href="/docs/fr/next/reference-cli-tools#shell">BookKeeper shell</a> on it:</p>
 <pre><code class="hljs css language-bash">$ bin/bookkeeper shell bookiesanity
 </code></pre>
-<p>This will create an ephemeral BookKeeper ledger on the local bookie, write a few entries, read them back, and finally delete the ledger.</p>
-<p>After you have started all the bookies, you can use <code>simpletest</code> command for <a href="/docs/fr/next/reference-cli-tools#shell">BookKeeper shell</a> on any bookie node, to verify all the bookies in the cluster are up running.</p>
+<p>This command creates an ephemeral BookKeeper ledger on the local bookie, writes a few entries, reads them back, and finally deletes the ledger.</p>
+<p>After you start all the bookies, you can use <code>simpletest</code> command for <a href="/docs/fr/next/reference-cli-tools#shell">BookKeeper shell</a> on any bookie node, to verify all the bookies in the cluster are up running.</p>
 <pre><code class="hljs css language-bash">$ bin/bookkeeper shell simpletest --ensemble &lt;num-bookies&gt; --writeQuorum &lt;num-bookies&gt; --ackQuorum &lt;num-bookies&gt; --numEntries &lt;num-entries&gt;
 </code></pre>
-<p>This command will create a <code>num-bookies</code> sized ledger on the cluster, write a few entries, and finally delete the ledger.</p>
-<h2><a class="anchor" aria-hidden="true" id="deploying-pulsar-brokers"></a><a href="#deploying-pulsar-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.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>Pulsar brokers are the last thing you need to deploy in your Pulsar cluster. Brokers handle Pulsar messages and provide Pulsar's administrative interface. We recommend running <strong>3 brokers</strong>, one for each machine that's already running a BookKeeper bookie.</p>
-<h3><a class="anchor" aria-hidden="true" id="configuring-brokers"></a><a href="#configuring-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p>The most important element of broker configuration is ensuring that each broker is aware of the ZooKeeper cluster that you've deployed. Make sure that the <a href="/docs/fr/next/reference-configuration#broker-zookeeperServers"><code>zookeeperServers</code></a> and <a href="/docs/fr/next/reference-configuration#broker-configurationStoreServers"><code>configurationStoreServers</code></a> parameters. In this case, since we only have 1 cluster and no configuration store setup, the <code>c [...]
+<p>This command creates a <code>num-bookies</code> sized ledger on the cluster, writes a few entries, and finally deletes the ledger.</p>
+<h2><a class="anchor" aria-hidden="true" id="deploy-pulsar-brokers"></a><a href="#deploy-pulsar-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<p>Pulsar brokers are the last thing you need to deploy in your Pulsar cluster. Brokers handle Pulsar messages and provide the administrative interface of Pulsar. A good choice is to run <strong>3 brokers</strong>, one for each machine that already runs a BookKeeper bookie.</p>
+<h3><a class="anchor" aria-hidden="true" id="configure-brokers"></a><a href="#configure-brokers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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>The most important element of broker configuration is ensuring that each broker is aware of the ZooKeeper cluster that you have deployed. Make sure that the <a href="/docs/fr/next/reference-configuration#broker-zookeeperServers"><code>zookeeperServers</code></a> and <a href="/docs/fr/next/reference-configuration#broker-configurationStoreServers"><code>configurationStoreServers</code></a> parameters. In this case, since you only have 1 cluster and no configuration store setup, the <cod [...]
 <pre><code class="hljs css language-properties"><span class="hljs-attr">zookeeperServers</span>=<span class="hljs-string">zk1.us-west.example.com:2181,zk2.us-west.example.com:2181,zk3.us-west.example.com:2181</span>
 <span class="hljs-attr">configurationStoreServers</span>=<span class="hljs-string">zk1.us-west.example.com:2181,zk2.us-west.example.com:2181,zk3.us-west.example.com:2181</span>
 </code></pre>
-<p>You also need to specify the cluster name (matching the name that you provided when <a href="#initializing-cluster-metadata">initializing the cluster's metadata</a>):</p>
+<p>You also need to specify the cluster name (matching the name that you provide when you <a href="#initialize-cluster-metadata">initialize the metadata of the cluster</a>):</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">clusterName</span>=<span class="hljs-string">pulsar-cluster-1</span>
 </code></pre>
-<p>In addition, you need to match the broker and web service ports provided when initializing the cluster's metadata (especially when using a different port from default):</p>
+<p>In addition, you need to match the broker and web service ports provided when you initialize the metadata of the cluster (especially when you use a different port from default):</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">brokerServicePort</span>=<span class="hljs-string">6650</span>
 <span class="hljs-attr">brokerServicePortTls</span>=<span class="hljs-string">6651</span>
 <span class="hljs-attr">webServicePort</span>=<span class="hljs-string">8080</span>
@@ -335,7 +335,7 @@ $ bin/pulsar-daemon start bookie
 <h1><a class="anchor" aria-hidden="true" id="number-of-guaranteed-copies-acks-to-wait-before-write-is-complete"></a><a href="#number-of-guaranteed-copies-acks-to-wait-before-write-is-complete" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4  [...]
 <p>managedLedgerDefaultAckQuorum=1</p>
 <pre><code class="hljs">
-<span class="hljs-section">### Enabling Pulsar Functions (optional)</span>
+<span class="hljs-section">### Enable Pulsar Functions (optional)</span>
 
 If you want to enable [<span class="hljs-string">Pulsar Functions</span>](<span class="hljs-link">functions-overview.md</span>), you can follow the instructions as below:
 <span class="hljs-bullet">
@@ -346,18 +346,18 @@ If you want to enable [<span class="hljs-string">Pulsar Functions</span>](<span
 <span class="hljs-code">      ```</span>
 <span class="hljs-bullet">      
 
-2. </span>Edit <span class="hljs-code">`conf/functions_worker.yml`</span> and set <span class="hljs-code">`pulsarFunctionsCluster`</span> to the cluster name that you provided when [<span class="hljs-string">initializing the cluster's metadata</span>](<span class="hljs-link">#initializing-cluster-metadata</span>).
+2. </span>Edit <span class="hljs-code">`conf/functions_worker.yml`</span> and set <span class="hljs-code">`pulsarFunctionsCluster`</span> to the cluster name that you provide when you [<span class="hljs-string">initialize the metadata of the cluster</span>](<span class="hljs-link">#initialize-cluster-metadata</span>).
   
 <span class="hljs-code">      ```conf</span>
 <span class="hljs-code">      pulsarFunctionsCluster: pulsar-cluster-1</span>
 <span class="hljs-code">      ```</span>
 <span class="hljs-code">      </span>
 
-If you would like to learn more options about deploying functions worker, please checkout [<span class="hljs-string">Deploy and manage functions worker</span>](<span class="hljs-link">functions-worker.md</span>).
+If you want to learn more options about deploying functions worker, checkout [<span class="hljs-string">Deploy and manage functions worker</span>](<span class="hljs-link">functions-worker.md</span>).
 
-<span class="hljs-section">### Starting Brokers</span>
+<span class="hljs-section">### Start Brokers</span>
 
-You can then provide any other configuration changes that you'd like in the [<span class="hljs-string">`conf/broker.conf`</span>](<span class="hljs-link">reference-configuration.md#broker</span>) file. Once you've decided on a configuration, you can start up the brokers for your Pulsar cluster. Like ZooKeeper and BookKeeper, brokers can be started either in the foreground or in the background, using nohup.
+You can then provide any other configuration changes that you want in the [<span class="hljs-string">`conf/broker.conf`</span>](<span class="hljs-link">reference-configuration.md#broker</span>) file. Once you decide on a configuration, you can start up the brokers for your Pulsar cluster. Like ZooKeeper and BookKeeper, you can start brokers either in the foreground or in the background, using nohup.
 
 You can start a broker in the foreground using the [<span class="hljs-string">`pulsar broker`</span>](<span class="hljs-link">reference-cli-tools.md#pulsar-broker</span>) command:
 
@@ -367,10 +367,10 @@ $ bin/pulsar broker
 <p>You can start a broker in the background using the <a href="reference-cli-tools.md#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-daemon start broker
 </code></pre>
-<p>Once you've succesfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!</p>
-<h2><a class="anchor" aria-hidden="true" id="connecting-to-the-running-cluster"></a><a href="#connecting-to-the-running-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
-<p>Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the <a href="reference-cli-tools.md#pulsar-client"><code>pulsar-client</code></a> tool, which is included with the Pulsar binary package. The <code>pulsar-client</code> tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is runnning properly.</p>
-<p>To use the <code>pulsar-client</code> tool, first modify the client configuration file in <a href="reference-configuration.md#client"><code>conf/client.conf</code></a> in your binary package. You'll need to change the values for <code>webServiceUrl</code> and <code>brokerServiceUrl</code>, substituting <code>localhost</code> (which is the default), with the DNS name that you've assigned to your broker/bookie hosts. Here's an example:</p>
+<p>Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!</p>
+<h2><a class="anchor" aria-hidden="true" id="connect-to-the-running-cluster"></a><a href="#connect-to-the-running-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 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>Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the <a href="reference-cli-tools.md#pulsar-client"><code>pulsar-client</code></a> tool, which is included with the Pulsar binary package. The <code>pulsar-client</code> tool can publish messages to and consume messages from Pulsar topics and thus provide a simple way to make sure that your cluster runs properly.</p>
+<p>To use the <code>pulsar-client</code> tool, first modify the client configuration file in <a href="reference-configuration.md#client"><code>conf/client.conf</code></a> in your binary package. You need to change the values for <code>webServiceUrl</code> and <code>brokerServiceUrl</code>, substituting <code>localhost</code> (which is the default), with the DNS name that you assign to your broker/bookie hosts. The following is an example:</p>
 <pre><code class="hljs css language-properties"><span class="hljs-attr">webServiceUrl</span>=<span class="hljs-string">http://us-west.example.com:8080</span>
 <span class="hljs-attr">brokerServiceurl</span>=<span class="hljs-string">pulsar://us-west.example.com:6650</span>
 </code></pre>
@@ -381,31 +381,31 @@ $ bin/pulsar broker
 <p>webServiceUrl=<a href="http://host1:8080,host2:8080,host3:8080">http://host1:8080,host2:8080,host3:8080</a>
 brokerServiceurl=<a href="pulsar://host1:6650,host2:6650,host3:6650">pulsar://host1:6650,host2:6650,host3:6650</a></p>
 <pre><code class="hljs">
-Once you<span class="hljs-comment">'ve done that, you can publish a message to Pulsar topic:</span>
+Once you <span class="hljs-built_in">do</span> that, you can publish a message to Pulsar topic:
 
-```bash
+<span class="hljs-string">```</span>bash
 $ bin/pulsar-client produce \
-  persistent://<span class="hljs-keyword">public</span>/<span class="hljs-keyword">default</span>/test \
+<span class="hljs-symbol">  persistent:</span>//<span class="hljs-meta">public</span>/<span class="hljs-meta">default</span>/<span class="hljs-keyword">test</span> \
   -n <span class="hljs-number">1</span> \
   -m <span class="hljs-string">"Hello Pulsar"</span>
 </code></pre>
 <blockquote>
-<p>You may need to use a different cluster name in the topic if you specified a cluster name different from <code>pulsar-cluster-1</code>.</p>
+<p>You may need to use a different cluster name in the topic if you specify a cluster name different from <code>pulsar-cluster-1</code>.</p>
 </blockquote>
-<p>This will publish a single message to the Pulsar topic. In addition, you can subscribe the Pulsar topic in a different terminal before publishing messages as below:</p>
+<p>This command publishes a single message to the Pulsar topic. In addition, you can subscribe the Pulsar topic in a different terminal before publishing messages as below:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client consume \
   persistent://public/default/<span class="hljs-built_in">test</span> \
   -n 100 \
   -s <span class="hljs-string">"consumer-test"</span> \
   -t <span class="hljs-string">"Exclusive"</span>
 </code></pre>
-<p>Once the message above has been successfully published to the topic, you should see it in the standard output:</p>
+<p>Once you successfully publish the message above to the topic, you should see it in the standard output:</p>
 <pre><code class="hljs css language-bash">----- got message -----
 Hello Pulsar
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="running-functions"></a><a href="#running-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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- [...]
+<h2><a class="anchor" aria-hidden="true" id="run-functions"></a><a href="#run-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 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 [...]
 <blockquote>
-<p>If you have <a href="#enabling-pulsar-functions-optional">enabled</a> Pulsar Functions, you can also tryout pulsar functions now.</p>
+<p>If you have <a href="#enable-pulsar-functions-optional">enabled</a> Pulsar Functions, you can also tryout pulsar functions now.</p>
 </blockquote>
 <p>Create a ExclamationFunction <code>exclamation</code>.</p>
 <pre><code class="hljs css language-bash">bin/pulsar-admin <span class="hljs-built_in">functions</span> create \
@@ -417,13 +417,13 @@ Hello Pulsar
   --namespace default \
   --name exclamation
 </code></pre>
-<p>Check if the function is running as expected by <a href="functions-deploying.md#triggering-pulsar-functions">triggering</a> the function.</p>
+<p>Check if the function runs as expected by <a href="functions-deploying.md#triggering-pulsar-functions">triggering</a> the function.</p>
 <pre><code class="hljs css language-bash">bin/pulsar-admin <span class="hljs-built_in">functions</span> trigger --name exclamation --trigger-value <span class="hljs-string">"hello world"</span>
 </code></pre>
-<p>You will see output as below:</p>
+<p>You can see the 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/fr/next/deploy-kubernetes"><span class="arrow-prev">← </span><span>Kubernetes</span></a><a class="docs-next button" href="/docs/fr/next/deploy-bare-metal-multi-cluster"><span>Bare metal multi-cluster</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#preparation">Preparation</a><ul class="toc-headings"><li><a href="#requi [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/deploy-kubernetes"><span class="arrow-prev">← </span><span>Kubernetes</span></a><a class="docs-next button" href="/docs/fr/next/deploy-bare-metal-multi-cluster"><span>Bare metal multi-cluster</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#preparation">Preparation</a><ul class="toc-headings"><li><a href="#requi [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/next/deploy-dcos.html b/content/docs/fr/next/deploy-dcos.html
index 0b66b59..288a1e9 100644
--- a/content/docs/fr/next/deploy-dcos.html
+++ b/content/docs/fr/next/deploy-dcos.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/deploy-dcos/index.html b/content/docs/fr/next/deploy-dcos/index.html
index 0b66b59..288a1e9 100644
--- a/content/docs/fr/next/deploy-dcos/index.html
+++ b/content/docs/fr/next/deploy-dcos/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/deploy-kubernetes.html b/content/docs/fr/next/deploy-kubernetes.html
index 64b0a35..074b962 100644
--- a/content/docs/fr/next/deploy-kubernetes.html
+++ b/content/docs/fr/next/deploy-kubernetes.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/deploy-kubernetes/index.html b/content/docs/fr/next/deploy-kubernetes/index.html
index 64b0a35..074b962 100644
--- a/content/docs/fr/next/deploy-kubernetes/index.html
+++ b/content/docs/fr/next/deploy-kubernetes/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/deploy-monitoring.html b/content/docs/fr/next/deploy-monitoring.html
index 01a0662..f87c7be 100644
--- a/content/docs/fr/next/deploy-monitoring.html
+++ b/content/docs/fr/next/deploy-monitoring.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/deploy-monitoring/index.html b/content/docs/fr/next/deploy-monitoring/index.html
index 01a0662..f87c7be 100644
--- a/content/docs/fr/next/deploy-monitoring/index.html
+++ b/content/docs/fr/next/deploy-monitoring/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/develop-binary-protocol.html b/content/docs/fr/next/develop-binary-protocol.html
index ed4e2be..8b25842 100644
--- a/content/docs/fr/next/develop-binary-protocol.html
+++ b/content/docs/fr/next/develop-binary-protocol.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/develop-binary-protocol/index.html b/content/docs/fr/next/develop-binary-protocol/index.html
index ed4e2be..8b25842 100644
--- a/content/docs/fr/next/develop-binary-protocol/index.html
+++ b/content/docs/fr/next/develop-binary-protocol/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/develop-cpp.html b/content/docs/fr/next/develop-cpp.html
index 62a0571..ecb2512 100644
--- a/content/docs/fr/next/develop-cpp.html
+++ b/content/docs/fr/next/develop-cpp.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </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="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/fr/next/develop-cpp/index.html b/content/docs/fr/next/develop-cpp/index.html
index 62a0571..ecb2512 100644
--- a/content/docs/fr/next/develop-cpp/index.html
... 13906 lines suppressed ...