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/08/15 09:16:02 UTC

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

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 6494290  Updated site at revision 900d81a
6494290 is described below

commit 649429084de030aff2645d829610b4e6a535a135
Author: jenkins <bu...@apache.org>
AuthorDate: Thu Aug 15 09:15:46 2019 +0000

    Updated site at revision 900d81a
---
 .../docs/en/2.1.0-incubating/adaptors-kafka.html   |   2 +-
 .../en/2.1.0-incubating/adaptors-kafka/index.html  |   2 +-
 .../admin-api-partitioned-topics.html              |   2 +-
 .../admin-api-partitioned-topics/index.html        |   2 +-
 .../en/2.1.0-incubating/admin-api-schemas.html     |   2 +-
 .../2.1.0-incubating/admin-api-schemas/index.html  |   2 +-
 .../en/2.1.0-incubating/client-libraries-java.html |   2 +-
 .../client-libraries-java/index.html               |   2 +-
 .../en/2.1.0-incubating/concepts-messaging.html    |   2 +-
 .../2.1.0-incubating/concepts-messaging/index.html |   2 +-
 .../en/2.1.0-incubating/concepts-overview.html     |   2 +-
 .../2.1.0-incubating/concepts-overview/index.html  |   2 +-
 .../2.1.0-incubating/concepts-schema-registry.html |   2 +-
 .../concepts-schema-registry/index.html            |   2 +-
 .../2.1.0-incubating/concepts-tiered-storage.html  |   2 +-
 .../concepts-tiered-storage/index.html             |   2 +-
 .../2.1.0-incubating/develop-binary-protocol.html  |   2 +-
 .../develop-binary-protocol/index.html             |   2 +-
 .../en/2.1.0-incubating/develop-load-manager.html  |   2 +-
 .../develop-load-manager/index.html                |   2 +-
 .../docs/en/2.1.0-incubating/develop-schema.html   |   4 +-
 .../en/2.1.0-incubating/develop-schema/index.html  |   4 +-
 .../en/2.1.0-incubating/functions-overview.html    |   2 +-
 .../2.1.0-incubating/functions-overview/index.html |   2 +-
 .../docs/en/2.1.1-incubating/adaptors-kafka.html   |   2 +-
 .../en/2.1.1-incubating/adaptors-kafka/index.html  |   2 +-
 .../admin-api-partitioned-topics.html              |   2 +-
 .../admin-api-partitioned-topics/index.html        |   2 +-
 .../en/2.1.1-incubating/admin-api-schemas.html     |   2 +-
 .../2.1.1-incubating/admin-api-schemas/index.html  |   2 +-
 .../en/2.1.1-incubating/client-libraries-java.html |   2 +-
 .../client-libraries-java/index.html               |   2 +-
 .../en/2.1.1-incubating/concepts-messaging.html    |   2 +-
 .../2.1.1-incubating/concepts-messaging/index.html |   2 +-
 .../en/2.1.1-incubating/concepts-overview.html     |   2 +-
 .../2.1.1-incubating/concepts-overview/index.html  |   2 +-
 .../2.1.1-incubating/concepts-schema-registry.html |   2 +-
 .../concepts-schema-registry/index.html            |   2 +-
 .../2.1.1-incubating/concepts-tiered-storage.html  |   2 +-
 .../concepts-tiered-storage/index.html             |   2 +-
 .../2.1.1-incubating/develop-binary-protocol.html  |   2 +-
 .../develop-binary-protocol/index.html             |   2 +-
 .../en/2.1.1-incubating/develop-load-manager.html  |   2 +-
 .../develop-load-manager/index.html                |   2 +-
 .../docs/en/2.1.1-incubating/develop-schema.html   |   4 +-
 .../en/2.1.1-incubating/develop-schema/index.html  |   4 +-
 .../en/2.1.1-incubating/functions-overview.html    |   2 +-
 .../2.1.1-incubating/functions-overview/index.html |   2 +-
 content/docs/en/2.2.0/adaptors-kafka.html          |   2 +-
 content/docs/en/2.2.0/adaptors-kafka/index.html    |   2 +-
 .../en/2.2.0/admin-api-partitioned-topics.html     |   2 +-
 .../2.2.0/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/en/2.2.0/admin-api-schemas.html       |   2 +-
 content/docs/en/2.2.0/admin-api-schemas/index.html |   2 +-
 content/docs/en/2.2.0/client-libraries-java.html   |   2 +-
 .../docs/en/2.2.0/client-libraries-java/index.html |   2 +-
 content/docs/en/2.2.0/concepts-messaging.html      |   2 +-
 .../docs/en/2.2.0/concepts-messaging/index.html    |   2 +-
 content/docs/en/2.2.0/concepts-overview.html       |   2 +-
 content/docs/en/2.2.0/concepts-overview/index.html |   2 +-
 .../docs/en/2.2.0/concepts-schema-registry.html    |   2 +-
 .../en/2.2.0/concepts-schema-registry/index.html   |   2 +-
 content/docs/en/2.2.0/concepts-tiered-storage.html |   2 +-
 .../en/2.2.0/concepts-tiered-storage/index.html    |   2 +-
 content/docs/en/2.2.0/develop-binary-protocol.html |   2 +-
 .../en/2.2.0/develop-binary-protocol/index.html    |   2 +-
 content/docs/en/2.2.0/develop-load-manager.html    |   2 +-
 .../docs/en/2.2.0/develop-load-manager/index.html  |   2 +-
 content/docs/en/2.2.0/develop-schema.html          |   4 +-
 content/docs/en/2.2.0/develop-schema/index.html    |   4 +-
 content/docs/en/2.2.0/functions-overview.html      |   2 +-
 .../docs/en/2.2.0/functions-overview/index.html    |   2 +-
 content/docs/en/2.2.0/sql-overview.html            |   4 +-
 content/docs/en/2.2.0/sql-overview/index.html      |   4 +-
 content/docs/en/2.2.1/adaptors-kafka.html          |   2 +-
 content/docs/en/2.2.1/adaptors-kafka/index.html    |   2 +-
 .../en/2.2.1/admin-api-partitioned-topics.html     |   2 +-
 .../2.2.1/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/en/2.2.1/admin-api-schemas.html       |   2 +-
 content/docs/en/2.2.1/admin-api-schemas/index.html |   2 +-
 content/docs/en/2.2.1/client-libraries-java.html   |   2 +-
 .../docs/en/2.2.1/client-libraries-java/index.html |   2 +-
 content/docs/en/2.2.1/concepts-messaging.html      |   2 +-
 .../docs/en/2.2.1/concepts-messaging/index.html    |   2 +-
 content/docs/en/2.2.1/concepts-overview.html       |   2 +-
 content/docs/en/2.2.1/concepts-overview/index.html |   2 +-
 .../docs/en/2.2.1/concepts-schema-registry.html    |   2 +-
 .../en/2.2.1/concepts-schema-registry/index.html   |   2 +-
 content/docs/en/2.2.1/concepts-tiered-storage.html |   2 +-
 .../en/2.2.1/concepts-tiered-storage/index.html    |   2 +-
 content/docs/en/2.2.1/develop-binary-protocol.html |   2 +-
 .../en/2.2.1/develop-binary-protocol/index.html    |   2 +-
 content/docs/en/2.2.1/develop-load-manager.html    |   2 +-
 .../docs/en/2.2.1/develop-load-manager/index.html  |   2 +-
 content/docs/en/2.2.1/develop-schema.html          |   4 +-
 content/docs/en/2.2.1/develop-schema/index.html    |   4 +-
 content/docs/en/2.2.1/functions-overview.html      |   2 +-
 .../docs/en/2.2.1/functions-overview/index.html    |   2 +-
 content/docs/en/2.2.1/sql-overview.html            |   4 +-
 content/docs/en/2.2.1/sql-overview/index.html      |   4 +-
 content/docs/en/2.3.0/adaptors-kafka.html          |   2 +-
 content/docs/en/2.3.0/adaptors-kafka/index.html    |   2 +-
 .../en/2.3.0/admin-api-partitioned-topics.html     |   2 +-
 .../2.3.0/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/en/2.3.0/admin-api-schemas.html       |   2 +-
 content/docs/en/2.3.0/admin-api-schemas/index.html |   2 +-
 content/docs/en/2.3.0/client-libraries-java.html   |   2 +-
 .../docs/en/2.3.0/client-libraries-java/index.html |   2 +-
 content/docs/en/2.3.0/concepts-messaging.html      |   2 +-
 .../docs/en/2.3.0/concepts-messaging/index.html    |   2 +-
 content/docs/en/2.3.0/concepts-overview.html       |   2 +-
 content/docs/en/2.3.0/concepts-overview/index.html |   2 +-
 .../docs/en/2.3.0/concepts-schema-registry.html    |   2 +-
 .../en/2.3.0/concepts-schema-registry/index.html   |   2 +-
 content/docs/en/2.3.0/concepts-tiered-storage.html |   2 +-
 .../en/2.3.0/concepts-tiered-storage/index.html    |   2 +-
 content/docs/en/2.3.0/develop-binary-protocol.html |   2 +-
 .../en/2.3.0/develop-binary-protocol/index.html    |   2 +-
 content/docs/en/2.3.0/develop-load-manager.html    |   2 +-
 .../docs/en/2.3.0/develop-load-manager/index.html  |   2 +-
 content/docs/en/2.3.0/develop-schema.html          |   4 +-
 content/docs/en/2.3.0/develop-schema/index.html    |   4 +-
 content/docs/en/2.3.0/functions-overview.html      |   2 +-
 .../docs/en/2.3.0/functions-overview/index.html    |   2 +-
 content/docs/en/2.3.0/sql-overview.html            |   4 +-
 content/docs/en/2.3.0/sql-overview/index.html      |   4 +-
 content/docs/en/2.3.1/adaptors-kafka.html          |   2 +-
 content/docs/en/2.3.1/adaptors-kafka/index.html    |   2 +-
 .../en/2.3.1/admin-api-partitioned-topics.html     |   2 +-
 .../2.3.1/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/en/2.3.1/admin-api-schemas.html       |   2 +-
 content/docs/en/2.3.1/admin-api-schemas/index.html |   2 +-
 content/docs/en/2.3.1/client-libraries-java.html   |   2 +-
 .../docs/en/2.3.1/client-libraries-java/index.html |   2 +-
 content/docs/en/2.3.1/concepts-messaging.html      |   2 +-
 .../docs/en/2.3.1/concepts-messaging/index.html    |   2 +-
 content/docs/en/2.3.1/concepts-overview.html       |   2 +-
 content/docs/en/2.3.1/concepts-overview/index.html |   2 +-
 .../docs/en/2.3.1/concepts-schema-registry.html    |   2 +-
 .../en/2.3.1/concepts-schema-registry/index.html   |   2 +-
 content/docs/en/2.3.1/concepts-tiered-storage.html |   2 +-
 .../en/2.3.1/concepts-tiered-storage/index.html    |   2 +-
 content/docs/en/2.3.1/develop-binary-protocol.html |   2 +-
 .../en/2.3.1/develop-binary-protocol/index.html    |   2 +-
 content/docs/en/2.3.1/develop-load-manager.html    |   2 +-
 .../docs/en/2.3.1/develop-load-manager/index.html  |   2 +-
 content/docs/en/2.3.1/develop-schema.html          |   4 +-
 content/docs/en/2.3.1/develop-schema/index.html    |   4 +-
 content/docs/en/2.3.1/functions-overview.html      |   2 +-
 .../docs/en/2.3.1/functions-overview/index.html    |   2 +-
 content/docs/en/2.3.1/sql-overview.html            |   4 +-
 content/docs/en/2.3.1/sql-overview/index.html      |   4 +-
 content/docs/en/2.3.2/adaptors-kafka.html          |   2 +-
 content/docs/en/2.3.2/adaptors-kafka/index.html    |   2 +-
 .../en/2.3.2/admin-api-partitioned-topics.html     |   2 +-
 .../2.3.2/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/en/2.3.2/admin-api-schemas.html       |   2 +-
 content/docs/en/2.3.2/admin-api-schemas/index.html |   2 +-
 content/docs/en/2.3.2/client-libraries-java.html   |   2 +-
 .../docs/en/2.3.2/client-libraries-java/index.html |   2 +-
 content/docs/en/2.3.2/concepts-messaging.html      |   2 +-
 .../docs/en/2.3.2/concepts-messaging/index.html    |   2 +-
 content/docs/en/2.3.2/concepts-overview.html       |   2 +-
 content/docs/en/2.3.2/concepts-overview/index.html |   2 +-
 .../docs/en/2.3.2/concepts-schema-registry.html    |   2 +-
 .../en/2.3.2/concepts-schema-registry/index.html   |   2 +-
 content/docs/en/2.3.2/concepts-tiered-storage.html |   2 +-
 .../en/2.3.2/concepts-tiered-storage/index.html    |   2 +-
 content/docs/en/2.3.2/develop-binary-protocol.html |   2 +-
 .../en/2.3.2/develop-binary-protocol/index.html    |   2 +-
 content/docs/en/2.3.2/develop-load-manager.html    |   2 +-
 .../docs/en/2.3.2/develop-load-manager/index.html  |   2 +-
 content/docs/en/2.3.2/develop-schema.html          |   4 +-
 content/docs/en/2.3.2/develop-schema/index.html    |   4 +-
 content/docs/en/2.3.2/functions-overview.html      |   2 +-
 .../docs/en/2.3.2/functions-overview/index.html    |   2 +-
 content/docs/en/2.3.2/sql-overview.html            |   4 +-
 content/docs/en/2.3.2/sql-overview/index.html      |   4 +-
 content/docs/en/adaptors-kafka.html                |   2 +-
 content/docs/en/adaptors-kafka/index.html          |   2 +-
 content/docs/en/admin-api-partitioned-topics.html  |   2 +-
 .../en/admin-api-partitioned-topics/index.html     |   2 +-
 content/docs/en/admin-api-schemas.html             |   2 +-
 content/docs/en/admin-api-schemas/index.html       |   2 +-
 content/docs/en/client-libraries-java.html         |   2 +-
 content/docs/en/client-libraries-java/index.html   |   2 +-
 content/docs/en/concepts-messaging.html            |   2 +-
 content/docs/en/concepts-messaging/index.html      |   2 +-
 content/docs/en/concepts-overview.html             |   2 +-
 content/docs/en/concepts-overview/index.html       |   2 +-
 content/docs/en/concepts-schema-registry.html      |   2 +-
 .../docs/en/concepts-schema-registry/index.html    |   2 +-
 content/docs/en/concepts-tiered-storage.html       |   2 +-
 content/docs/en/concepts-tiered-storage/index.html |   2 +-
 content/docs/en/develop-binary-protocol.html       |   2 +-
 content/docs/en/develop-binary-protocol/index.html |   2 +-
 content/docs/en/develop-load-manager.html          |   2 +-
 content/docs/en/develop-load-manager/index.html    |   2 +-
 content/docs/en/develop-schema.html                |   4 +-
 content/docs/en/develop-schema/index.html          |   4 +-
 content/docs/en/functions-overview.html            |   2 +-
 content/docs/en/functions-overview/index.html      |   2 +-
 content/docs/en/next/adaptors-kafka.html           |   4 +-
 content/docs/en/next/adaptors-kafka/index.html     |   4 +-
 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-persistent-topics.html   |   9 +-
 .../admin-api-non-persistent-topics/index.html     |   9 +-
 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 |  18 ++-
 .../next/admin-api-partitioned-topics/index.html   |  18 ++-
 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    |   4 +-
 .../docs/en/next/client-libraries-java/index.html  |   4 +-
 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       |   4 +-
 content/docs/en/next/concepts-messaging/index.html |   4 +-
 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        |   4 +-
 content/docs/en/next/concepts-overview/index.html  |   4 +-
 content/docs/en/next/concepts-replication.html     |   2 +-
 .../docs/en/next/concepts-replication/index.html   |   2 +-
 content/docs/en/next/concepts-tiered-storage.html  |   4 +-
 .../en/next/concepts-tiered-storage/index.html     |   4 +-
 .../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   |   2 +-
 .../deploy-bare-metal-multi-cluster/index.html     |   2 +-
 content/docs/en/next/deploy-bare-metal.html        |   2 +-
 content/docs/en/next/deploy-bare-metal/index.html  |   2 +-
 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  |   4 +-
 .../en/next/develop-binary-protocol/index.html     |   4 +-
 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     |   4 +-
 .../docs/en/next/develop-load-manager/index.html   |   4 +-
 content/docs/en/next/develop-tools.html            |   2 +-
 content/docs/en/next/develop-tools/index.html      |   2 +-
 content/docs/en/next/functions-api.html            |   2 +-
 content/docs/en/next/functions-api/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-debugging.html      |   2 +-
 .../docs/en/next/functions-debugging/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-deploying.html      |   2 +-
 .../docs/en/next/functions-deploying/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-guarantees.html     |   2 +-
 .../docs/en/next/functions-guarantees/index.html   |   2 +-
 content/docs/en/next/functions-metrics.html        |   2 +-
 content/docs/en/next/functions-metrics/index.html  |   2 +-
 content/docs/en/next/functions-overview-new.html   |   2 +-
 .../docs/en/next/functions-overview-new/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-quickstart.html     |   2 +-
 .../docs/en/next/functions-quickstart/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-state.html          |   2 +-
 content/docs/en/next/functions-state/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.html                   |   2 +-
 content/docs/en/next/io-cdc/index.html             |   2 +-
 content/docs/en/next/io-connectors.html            |   2 +-
 content/docs/en/next/io-connectors/index.html      |   2 +-
 content/docs/en/next/io-develop.html               |   2 +-
 content/docs/en/next/io-develop/index.html         |   2 +-
 content/docs/en/next/io-managing.html              |   2 +-
 content/docs/en/next/io-managing/index.html        |   2 +-
 content/docs/en/next/io-overview.html              |   2 +-
 content/docs/en/next/io-overview/index.html        |   2 +-
 content/docs/en/next/io-quickstart.html            |   2 +-
 content/docs/en/next/io-quickstart/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             |  16 ++-
 content/docs/en/next/pulsar-admin/index.html       |  16 ++-
 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  |   2 +-
 .../en/next/reference-configuration/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    |   8 +-
 .../next/schema-evolution-compatibility/index.html |   8 +-
 content/docs/en/next/schema-get-started.html       |   9 +-
 content/docs/en/next/schema-get-started/index.html |   9 +-
 content/docs/en/next/schema-manage.html            |   6 +-
 content/docs/en/next/schema-manage/index.html      |   6 +-
 content/docs/en/next/schema-understand.html        |  19 +--
 content/docs/en/next/schema-understand/index.html  |  19 +--
 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             |   6 +-
 content/docs/en/next/sql-overview/index.html       |   6 +-
 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                  |   4 +-
 content/docs/en/sql-overview/index.html            |   4 +-
 .../docs/fr/2.1.0-incubating/adaptors-kafka.html   |   2 +-
 .../fr/2.1.0-incubating/adaptors-kafka/index.html  |   2 +-
 .../admin-api-partitioned-topics.html              |   2 +-
 .../admin-api-partitioned-topics/index.html        |   2 +-
 .../fr/2.1.0-incubating/admin-api-schemas.html     |   2 +-
 .../2.1.0-incubating/admin-api-schemas/index.html  |   2 +-
 .../fr/2.1.0-incubating/concepts-messaging.html    |   2 +-
 .../2.1.0-incubating/concepts-messaging/index.html |   2 +-
 .../fr/2.1.0-incubating/concepts-overview.html     |   2 +-
 .../2.1.0-incubating/concepts-overview/index.html  |   2 +-
 .../2.1.0-incubating/concepts-schema-registry.html |   2 +-
 .../concepts-schema-registry/index.html            |   2 +-
 .../2.1.0-incubating/concepts-tiered-storage.html  |   2 +-
 .../concepts-tiered-storage/index.html             |   2 +-
 .../2.1.0-incubating/develop-binary-protocol.html  |   2 +-
 .../develop-binary-protocol/index.html             |   2 +-
 .../fr/2.1.0-incubating/develop-load-manager.html  |   2 +-
 .../develop-load-manager/index.html                |   2 +-
 .../docs/fr/2.1.0-incubating/develop-schema.html   |   4 +-
 .../fr/2.1.0-incubating/develop-schema/index.html  |   4 +-
 .../fr/2.1.0-incubating/functions-overview.html    |   2 +-
 .../2.1.0-incubating/functions-overview/index.html |   2 +-
 .../docs/fr/2.1.1-incubating/adaptors-kafka.html   |   2 +-
 .../fr/2.1.1-incubating/adaptors-kafka/index.html  |   2 +-
 .../admin-api-partitioned-topics.html              |   2 +-
 .../admin-api-partitioned-topics/index.html        |   2 +-
 .../fr/2.1.1-incubating/admin-api-schemas.html     |   2 +-
 .../2.1.1-incubating/admin-api-schemas/index.html  |   2 +-
 .../fr/2.1.1-incubating/concepts-messaging.html    |   2 +-
 .../2.1.1-incubating/concepts-messaging/index.html |   2 +-
 .../fr/2.1.1-incubating/concepts-overview.html     |   2 +-
 .../2.1.1-incubating/concepts-overview/index.html  |   2 +-
 .../2.1.1-incubating/concepts-schema-registry.html |   2 +-
 .../concepts-schema-registry/index.html            |   2 +-
 .../2.1.1-incubating/concepts-tiered-storage.html  |   2 +-
 .../concepts-tiered-storage/index.html             |   2 +-
 .../2.1.1-incubating/develop-binary-protocol.html  |   2 +-
 .../develop-binary-protocol/index.html             |   2 +-
 .../fr/2.1.1-incubating/develop-load-manager.html  |   2 +-
 .../develop-load-manager/index.html                |   2 +-
 .../docs/fr/2.1.1-incubating/develop-schema.html   |   4 +-
 .../fr/2.1.1-incubating/develop-schema/index.html  |   4 +-
 .../fr/2.1.1-incubating/functions-overview.html    |   2 +-
 .../2.1.1-incubating/functions-overview/index.html |   2 +-
 content/docs/fr/2.2.0/adaptors-kafka.html          |   2 +-
 content/docs/fr/2.2.0/adaptors-kafka/index.html    |   2 +-
 .../fr/2.2.0/admin-api-partitioned-topics.html     |   2 +-
 .../2.2.0/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/fr/2.2.0/admin-api-schemas.html       |   2 +-
 content/docs/fr/2.2.0/admin-api-schemas/index.html |   2 +-
 content/docs/fr/2.2.0/concepts-messaging.html      |   2 +-
 .../docs/fr/2.2.0/concepts-messaging/index.html    |   2 +-
 content/docs/fr/2.2.0/concepts-overview.html       |   2 +-
 content/docs/fr/2.2.0/concepts-overview/index.html |   2 +-
 .../docs/fr/2.2.0/concepts-schema-registry.html    |   2 +-
 .../fr/2.2.0/concepts-schema-registry/index.html   |   2 +-
 content/docs/fr/2.2.0/concepts-tiered-storage.html |   2 +-
 .../fr/2.2.0/concepts-tiered-storage/index.html    |   2 +-
 content/docs/fr/2.2.0/develop-binary-protocol.html |   2 +-
 .../fr/2.2.0/develop-binary-protocol/index.html    |   2 +-
 content/docs/fr/2.2.0/develop-load-manager.html    |   2 +-
 .../docs/fr/2.2.0/develop-load-manager/index.html  |   2 +-
 content/docs/fr/2.2.0/develop-schema.html          |   4 +-
 content/docs/fr/2.2.0/develop-schema/index.html    |   4 +-
 content/docs/fr/2.2.0/functions-overview.html      |   2 +-
 .../docs/fr/2.2.0/functions-overview/index.html    |   2 +-
 content/docs/fr/2.2.0/sql-overview.html            |   4 +-
 content/docs/fr/2.2.0/sql-overview/index.html      |   4 +-
 content/docs/fr/2.2.1/adaptors-kafka.html          |   2 +-
 content/docs/fr/2.2.1/adaptors-kafka/index.html    |   2 +-
 .../fr/2.2.1/admin-api-partitioned-topics.html     |   2 +-
 .../2.2.1/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/fr/2.2.1/admin-api-schemas.html       |   2 +-
 content/docs/fr/2.2.1/admin-api-schemas/index.html |   2 +-
 content/docs/fr/2.2.1/concepts-messaging.html      |   2 +-
 .../docs/fr/2.2.1/concepts-messaging/index.html    |   2 +-
 content/docs/fr/2.2.1/concepts-overview.html       |   2 +-
 content/docs/fr/2.2.1/concepts-overview/index.html |   2 +-
 .../docs/fr/2.2.1/concepts-schema-registry.html    |   2 +-
 .../fr/2.2.1/concepts-schema-registry/index.html   |   2 +-
 content/docs/fr/2.2.1/concepts-tiered-storage.html |   2 +-
 .../fr/2.2.1/concepts-tiered-storage/index.html    |   2 +-
 content/docs/fr/2.2.1/develop-binary-protocol.html |   2 +-
 .../fr/2.2.1/develop-binary-protocol/index.html    |   2 +-
 content/docs/fr/2.2.1/develop-load-manager.html    |   2 +-
 .../docs/fr/2.2.1/develop-load-manager/index.html  |   2 +-
 content/docs/fr/2.2.1/develop-schema.html          |   4 +-
 content/docs/fr/2.2.1/develop-schema/index.html    |   4 +-
 content/docs/fr/2.2.1/functions-overview.html      |   2 +-
 .../docs/fr/2.2.1/functions-overview/index.html    |   2 +-
 content/docs/fr/2.2.1/sql-overview.html            |   4 +-
 content/docs/fr/2.2.1/sql-overview/index.html      |   4 +-
 content/docs/fr/2.3.0/adaptors-kafka.html          |   2 +-
 content/docs/fr/2.3.0/adaptors-kafka/index.html    |   2 +-
 .../fr/2.3.0/admin-api-partitioned-topics.html     |   2 +-
 .../2.3.0/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/fr/2.3.0/admin-api-schemas.html       |   2 +-
 content/docs/fr/2.3.0/admin-api-schemas/index.html |   2 +-
 content/docs/fr/2.3.0/concepts-messaging.html      |   2 +-
 .../docs/fr/2.3.0/concepts-messaging/index.html    |   2 +-
 content/docs/fr/2.3.0/concepts-overview.html       |   2 +-
 content/docs/fr/2.3.0/concepts-overview/index.html |   2 +-
 .../docs/fr/2.3.0/concepts-schema-registry.html    |   2 +-
 .../fr/2.3.0/concepts-schema-registry/index.html   |   2 +-
 content/docs/fr/2.3.0/concepts-tiered-storage.html |   2 +-
 .../fr/2.3.0/concepts-tiered-storage/index.html    |   2 +-
 content/docs/fr/2.3.0/develop-binary-protocol.html |   2 +-
 .../fr/2.3.0/develop-binary-protocol/index.html    |   2 +-
 content/docs/fr/2.3.0/develop-load-manager.html    |   2 +-
 .../docs/fr/2.3.0/develop-load-manager/index.html  |   2 +-
 content/docs/fr/2.3.0/develop-schema.html          |   4 +-
 content/docs/fr/2.3.0/develop-schema/index.html    |   4 +-
 content/docs/fr/2.3.0/functions-overview.html      |   2 +-
 .../docs/fr/2.3.0/functions-overview/index.html    |   2 +-
 content/docs/fr/2.3.0/sql-overview.html            |   4 +-
 content/docs/fr/2.3.0/sql-overview/index.html      |   4 +-
 content/docs/fr/2.3.1/adaptors-kafka.html          |   2 +-
 content/docs/fr/2.3.1/adaptors-kafka/index.html    |   2 +-
 .../fr/2.3.1/admin-api-partitioned-topics.html     |   2 +-
 .../2.3.1/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/fr/2.3.1/admin-api-schemas.html       |   2 +-
 content/docs/fr/2.3.1/admin-api-schemas/index.html |   2 +-
 content/docs/fr/2.3.1/concepts-messaging.html      |   2 +-
 .../docs/fr/2.3.1/concepts-messaging/index.html    |   2 +-
 content/docs/fr/2.3.1/concepts-overview.html       |   2 +-
 content/docs/fr/2.3.1/concepts-overview/index.html |   2 +-
 .../docs/fr/2.3.1/concepts-schema-registry.html    |   2 +-
 .../fr/2.3.1/concepts-schema-registry/index.html   |   2 +-
 content/docs/fr/2.3.1/concepts-tiered-storage.html |   2 +-
 .../fr/2.3.1/concepts-tiered-storage/index.html    |   2 +-
 content/docs/fr/2.3.1/develop-binary-protocol.html |   2 +-
 .../fr/2.3.1/develop-binary-protocol/index.html    |   2 +-
 content/docs/fr/2.3.1/develop-load-manager.html    |   2 +-
 .../docs/fr/2.3.1/develop-load-manager/index.html  |   2 +-
 content/docs/fr/2.3.1/develop-schema.html          |   4 +-
 content/docs/fr/2.3.1/develop-schema/index.html    |   4 +-
 content/docs/fr/2.3.1/functions-overview.html      |   2 +-
 .../docs/fr/2.3.1/functions-overview/index.html    |   2 +-
 content/docs/fr/2.3.1/sql-overview.html            |   4 +-
 content/docs/fr/2.3.1/sql-overview/index.html      |   4 +-
 content/docs/fr/2.3.2/adaptors-kafka.html          |   2 +-
 content/docs/fr/2.3.2/adaptors-kafka/index.html    |   2 +-
 .../fr/2.3.2/admin-api-partitioned-topics.html     |   2 +-
 .../2.3.2/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/fr/2.3.2/admin-api-schemas.html       |   2 +-
 content/docs/fr/2.3.2/admin-api-schemas/index.html |   2 +-
 content/docs/fr/2.3.2/concepts-messaging.html      |   2 +-
 .../docs/fr/2.3.2/concepts-messaging/index.html    |   2 +-
 content/docs/fr/2.3.2/concepts-overview.html       |   2 +-
 content/docs/fr/2.3.2/concepts-overview/index.html |   2 +-
 .../docs/fr/2.3.2/concepts-schema-registry.html    |   2 +-
 .../fr/2.3.2/concepts-schema-registry/index.html   |   2 +-
 content/docs/fr/2.3.2/concepts-tiered-storage.html |   2 +-
 .../fr/2.3.2/concepts-tiered-storage/index.html    |   2 +-
 content/docs/fr/2.3.2/develop-binary-protocol.html |   2 +-
 .../fr/2.3.2/develop-binary-protocol/index.html    |   2 +-
 content/docs/fr/2.3.2/develop-load-manager.html    |   2 +-
 .../docs/fr/2.3.2/develop-load-manager/index.html  |   2 +-
 content/docs/fr/2.3.2/develop-schema.html          |   4 +-
 content/docs/fr/2.3.2/develop-schema/index.html    |   4 +-
 content/docs/fr/2.3.2/functions-overview.html      |   2 +-
 .../docs/fr/2.3.2/functions-overview/index.html    |   2 +-
 content/docs/fr/2.3.2/sql-overview.html            |   4 +-
 content/docs/fr/2.3.2/sql-overview/index.html      |   4 +-
 content/docs/fr/adaptors-kafka.html                |   2 +-
 content/docs/fr/adaptors-kafka/index.html          |   2 +-
 content/docs/fr/admin-api-partitioned-topics.html  |   2 +-
 .../fr/admin-api-partitioned-topics/index.html     |   2 +-
 content/docs/fr/admin-api-schemas.html             |   2 +-
 content/docs/fr/admin-api-schemas/index.html       |   2 +-
 content/docs/fr/concepts-messaging.html            |   2 +-
 content/docs/fr/concepts-messaging/index.html      |   2 +-
 content/docs/fr/concepts-overview.html             |   2 +-
 content/docs/fr/concepts-overview/index.html       |   2 +-
 content/docs/fr/concepts-schema-registry.html      |   2 +-
 .../docs/fr/concepts-schema-registry/index.html    |   2 +-
 content/docs/fr/concepts-tiered-storage.html       |   2 +-
 content/docs/fr/concepts-tiered-storage/index.html |   2 +-
 content/docs/fr/develop-binary-protocol.html       |   2 +-
 content/docs/fr/develop-binary-protocol/index.html |   2 +-
 content/docs/fr/develop-load-manager.html          |   2 +-
 content/docs/fr/develop-load-manager/index.html    |   2 +-
 content/docs/fr/develop-schema.html                |   4 +-
 content/docs/fr/develop-schema/index.html          |   4 +-
 content/docs/fr/functions-overview.html            |   2 +-
 content/docs/fr/functions-overview/index.html      |   2 +-
 content/docs/fr/next/adaptors-kafka.html           |   4 +-
 content/docs/fr/next/adaptors-kafka/index.html     |   4 +-
 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-persistent-topics.html   |   9 +-
 .../admin-api-non-persistent-topics/index.html     |   9 +-
 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 |  18 ++-
 .../next/admin-api-partitioned-topics/index.html   |  18 ++-
 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       |   4 +-
 content/docs/fr/next/concepts-messaging/index.html |   4 +-
 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        |   4 +-
 content/docs/fr/next/concepts-overview/index.html  |   4 +-
 content/docs/fr/next/concepts-replication.html     |   2 +-
 .../docs/fr/next/concepts-replication/index.html   |   2 +-
 content/docs/fr/next/concepts-tiered-storage.html  |   4 +-
 .../fr/next/concepts-tiered-storage/index.html     |   4 +-
 .../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   |   2 +-
 .../deploy-bare-metal-multi-cluster/index.html     |   2 +-
 content/docs/fr/next/deploy-bare-metal.html        |   2 +-
 content/docs/fr/next/deploy-bare-metal/index.html  |   2 +-
 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  |   4 +-
 .../fr/next/develop-binary-protocol/index.html     |   4 +-
 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     |   4 +-
 .../docs/fr/next/develop-load-manager/index.html   |   4 +-
 content/docs/fr/next/develop-tools.html            |   2 +-
 content/docs/fr/next/develop-tools/index.html      |   2 +-
 content/docs/fr/next/functions-api.html            |   2 +-
 content/docs/fr/next/functions-api/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-debugging.html      |   2 +-
 .../docs/fr/next/functions-debugging/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-deploying.html      |   2 +-
 .../docs/fr/next/functions-deploying/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-guarantees.html     |   2 +-
 .../docs/fr/next/functions-guarantees/index.html   |   2 +-
 content/docs/fr/next/functions-metrics.html        |   2 +-
 content/docs/fr/next/functions-metrics/index.html  |   2 +-
 content/docs/fr/next/functions-overview-new.html   |   2 +-
 .../docs/fr/next/functions-overview-new/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-quickstart.html     |   2 +-
 .../docs/fr/next/functions-quickstart/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-state.html          |   2 +-
 content/docs/fr/next/functions-state/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.html                   |   2 +-
 content/docs/fr/next/io-cdc/index.html             |   2 +-
 content/docs/fr/next/io-connectors.html            |   2 +-
 content/docs/fr/next/io-connectors/index.html      |   2 +-
 content/docs/fr/next/io-develop.html               |   2 +-
 content/docs/fr/next/io-develop/index.html         |   2 +-
 content/docs/fr/next/io-managing.html              |   2 +-
 content/docs/fr/next/io-managing/index.html        |   2 +-
 content/docs/fr/next/io-overview.html              |   2 +-
 content/docs/fr/next/io-overview/index.html        |   2 +-
 content/docs/fr/next/io-quickstart.html            |   2 +-
 content/docs/fr/next/io-quickstart/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             |  16 ++-
 content/docs/fr/next/pulsar-admin/index.html       |  16 ++-
 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  |   2 +-
 .../fr/next/reference-configuration/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    |   8 +-
 .../next/schema-evolution-compatibility/index.html |   8 +-
 content/docs/fr/next/schema-get-started.html       |   9 +-
 content/docs/fr/next/schema-get-started/index.html |   9 +-
 content/docs/fr/next/schema-manage.html            |   6 +-
 content/docs/fr/next/schema-manage/index.html      |   6 +-
 content/docs/fr/next/schema-understand.html        |  13 +-
 content/docs/fr/next/schema-understand/index.html  |  13 +-
 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             |   6 +-
 content/docs/fr/next/sql-overview/index.html       |   6 +-
 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                  |   4 +-
 content/docs/fr/sql-overview/index.html            |   4 +-
 .../docs/ja/2.1.0-incubating/adaptors-kafka.html   |   2 +-
 .../ja/2.1.0-incubating/adaptors-kafka/index.html  |   2 +-
 .../admin-api-partitioned-topics.html              |   2 +-
 .../admin-api-partitioned-topics/index.html        |   2 +-
 .../ja/2.1.0-incubating/admin-api-schemas.html     |   2 +-
 .../2.1.0-incubating/admin-api-schemas/index.html  |   2 +-
 .../ja/2.1.0-incubating/concepts-messaging.html    |   2 +-
 .../2.1.0-incubating/concepts-messaging/index.html |   2 +-
 .../ja/2.1.0-incubating/concepts-overview.html     |   2 +-
 .../2.1.0-incubating/concepts-overview/index.html  |   2 +-
 .../2.1.0-incubating/concepts-schema-registry.html |   2 +-
 .../concepts-schema-registry/index.html            |   2 +-
 .../2.1.0-incubating/concepts-tiered-storage.html  |   2 +-
 .../concepts-tiered-storage/index.html             |   2 +-
 .../2.1.0-incubating/develop-binary-protocol.html  |   2 +-
 .../develop-binary-protocol/index.html             |   2 +-
 .../ja/2.1.0-incubating/develop-load-manager.html  |   2 +-
 .../develop-load-manager/index.html                |   2 +-
 .../docs/ja/2.1.0-incubating/develop-schema.html   |   4 +-
 .../ja/2.1.0-incubating/develop-schema/index.html  |   4 +-
 .../ja/2.1.0-incubating/functions-overview.html    |   2 +-
 .../2.1.0-incubating/functions-overview/index.html |   2 +-
 .../docs/ja/2.1.1-incubating/adaptors-kafka.html   |   2 +-
 .../ja/2.1.1-incubating/adaptors-kafka/index.html  |   2 +-
 .../admin-api-partitioned-topics.html              |   2 +-
 .../admin-api-partitioned-topics/index.html        |   2 +-
 .../ja/2.1.1-incubating/admin-api-schemas.html     |   2 +-
 .../2.1.1-incubating/admin-api-schemas/index.html  |   2 +-
 .../ja/2.1.1-incubating/concepts-messaging.html    |   2 +-
 .../2.1.1-incubating/concepts-messaging/index.html |   2 +-
 .../ja/2.1.1-incubating/concepts-overview.html     |   2 +-
 .../2.1.1-incubating/concepts-overview/index.html  |   2 +-
 .../2.1.1-incubating/concepts-schema-registry.html |   2 +-
 .../concepts-schema-registry/index.html            |   2 +-
 .../2.1.1-incubating/concepts-tiered-storage.html  |   2 +-
 .../concepts-tiered-storage/index.html             |   2 +-
 .../2.1.1-incubating/develop-binary-protocol.html  |   2 +-
 .../develop-binary-protocol/index.html             |   2 +-
 .../ja/2.1.1-incubating/develop-load-manager.html  |   2 +-
 .../develop-load-manager/index.html                |   2 +-
 .../docs/ja/2.1.1-incubating/develop-schema.html   |   4 +-
 .../ja/2.1.1-incubating/develop-schema/index.html  |   4 +-
 .../ja/2.1.1-incubating/functions-overview.html    |   2 +-
 .../2.1.1-incubating/functions-overview/index.html |   2 +-
 content/docs/ja/2.2.0/adaptors-kafka.html          |   2 +-
 content/docs/ja/2.2.0/adaptors-kafka/index.html    |   2 +-
 .../ja/2.2.0/admin-api-partitioned-topics.html     |   2 +-
 .../2.2.0/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/ja/2.2.0/admin-api-schemas.html       |   2 +-
 content/docs/ja/2.2.0/admin-api-schemas/index.html |   2 +-
 content/docs/ja/2.2.0/concepts-messaging.html      |   2 +-
 .../docs/ja/2.2.0/concepts-messaging/index.html    |   2 +-
 content/docs/ja/2.2.0/concepts-overview.html       |   2 +-
 content/docs/ja/2.2.0/concepts-overview/index.html |   2 +-
 .../docs/ja/2.2.0/concepts-schema-registry.html    |   2 +-
 .../ja/2.2.0/concepts-schema-registry/index.html   |   2 +-
 content/docs/ja/2.2.0/concepts-tiered-storage.html |   2 +-
 .../ja/2.2.0/concepts-tiered-storage/index.html    |   2 +-
 content/docs/ja/2.2.0/develop-binary-protocol.html |   2 +-
 .../ja/2.2.0/develop-binary-protocol/index.html    |   2 +-
 content/docs/ja/2.2.0/develop-load-manager.html    |   2 +-
 .../docs/ja/2.2.0/develop-load-manager/index.html  |   2 +-
 content/docs/ja/2.2.0/develop-schema.html          |   4 +-
 content/docs/ja/2.2.0/develop-schema/index.html    |   4 +-
 content/docs/ja/2.2.0/functions-overview.html      |   2 +-
 .../docs/ja/2.2.0/functions-overview/index.html    |   2 +-
 content/docs/ja/2.2.0/sql-overview.html            |   4 +-
 content/docs/ja/2.2.0/sql-overview/index.html      |   4 +-
 content/docs/ja/2.2.1/adaptors-kafka.html          |   2 +-
 content/docs/ja/2.2.1/adaptors-kafka/index.html    |   2 +-
 .../ja/2.2.1/admin-api-partitioned-topics.html     |   2 +-
 .../2.2.1/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/ja/2.2.1/admin-api-schemas.html       |   2 +-
 content/docs/ja/2.2.1/admin-api-schemas/index.html |   2 +-
 content/docs/ja/2.2.1/concepts-messaging.html      |   2 +-
 .../docs/ja/2.2.1/concepts-messaging/index.html    |   2 +-
 content/docs/ja/2.2.1/concepts-overview.html       |   2 +-
 content/docs/ja/2.2.1/concepts-overview/index.html |   2 +-
 .../docs/ja/2.2.1/concepts-schema-registry.html    |   2 +-
 .../ja/2.2.1/concepts-schema-registry/index.html   |   2 +-
 content/docs/ja/2.2.1/concepts-tiered-storage.html |   2 +-
 .../ja/2.2.1/concepts-tiered-storage/index.html    |   2 +-
 content/docs/ja/2.2.1/develop-binary-protocol.html |   2 +-
 .../ja/2.2.1/develop-binary-protocol/index.html    |   2 +-
 content/docs/ja/2.2.1/develop-load-manager.html    |   2 +-
 .../docs/ja/2.2.1/develop-load-manager/index.html  |   2 +-
 content/docs/ja/2.2.1/develop-schema.html          |   4 +-
 content/docs/ja/2.2.1/develop-schema/index.html    |   4 +-
 content/docs/ja/2.2.1/functions-overview.html      |   2 +-
 .../docs/ja/2.2.1/functions-overview/index.html    |   2 +-
 content/docs/ja/2.2.1/sql-overview.html            |   4 +-
 content/docs/ja/2.2.1/sql-overview/index.html      |   4 +-
 content/docs/ja/2.3.0/adaptors-kafka.html          |   2 +-
 content/docs/ja/2.3.0/adaptors-kafka/index.html    |   2 +-
 .../ja/2.3.0/admin-api-partitioned-topics.html     |   2 +-
 .../2.3.0/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/ja/2.3.0/admin-api-schemas.html       |   2 +-
 content/docs/ja/2.3.0/admin-api-schemas/index.html |   2 +-
 content/docs/ja/2.3.0/concepts-messaging.html      |   2 +-
 .../docs/ja/2.3.0/concepts-messaging/index.html    |   2 +-
 content/docs/ja/2.3.0/concepts-overview.html       |   2 +-
 content/docs/ja/2.3.0/concepts-overview/index.html |   2 +-
 .../docs/ja/2.3.0/concepts-schema-registry.html    |   2 +-
 .../ja/2.3.0/concepts-schema-registry/index.html   |   2 +-
 content/docs/ja/2.3.0/concepts-tiered-storage.html |   2 +-
 .../ja/2.3.0/concepts-tiered-storage/index.html    |   2 +-
 content/docs/ja/2.3.0/develop-binary-protocol.html |   2 +-
 .../ja/2.3.0/develop-binary-protocol/index.html    |   2 +-
 content/docs/ja/2.3.0/develop-load-manager.html    |   2 +-
 .../docs/ja/2.3.0/develop-load-manager/index.html  |   2 +-
 content/docs/ja/2.3.0/develop-schema.html          |   4 +-
 content/docs/ja/2.3.0/develop-schema/index.html    |   4 +-
 content/docs/ja/2.3.0/functions-overview.html      |   2 +-
 .../docs/ja/2.3.0/functions-overview/index.html    |   2 +-
 content/docs/ja/2.3.0/sql-overview.html            |   4 +-
 content/docs/ja/2.3.0/sql-overview/index.html      |   4 +-
 content/docs/ja/2.3.1/adaptors-kafka.html          |   2 +-
 content/docs/ja/2.3.1/adaptors-kafka/index.html    |   2 +-
 .../ja/2.3.1/admin-api-partitioned-topics.html     |   2 +-
 .../2.3.1/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/ja/2.3.1/admin-api-schemas.html       |   2 +-
 content/docs/ja/2.3.1/admin-api-schemas/index.html |   2 +-
 content/docs/ja/2.3.1/concepts-messaging.html      |   2 +-
 .../docs/ja/2.3.1/concepts-messaging/index.html    |   2 +-
 content/docs/ja/2.3.1/concepts-overview.html       |   2 +-
 content/docs/ja/2.3.1/concepts-overview/index.html |   2 +-
 .../docs/ja/2.3.1/concepts-schema-registry.html    |   2 +-
 .../ja/2.3.1/concepts-schema-registry/index.html   |   2 +-
 content/docs/ja/2.3.1/concepts-tiered-storage.html |   2 +-
 .../ja/2.3.1/concepts-tiered-storage/index.html    |   2 +-
 content/docs/ja/2.3.1/develop-binary-protocol.html |   2 +-
 .../ja/2.3.1/develop-binary-protocol/index.html    |   2 +-
 content/docs/ja/2.3.1/develop-load-manager.html    |   2 +-
 .../docs/ja/2.3.1/develop-load-manager/index.html  |   2 +-
 content/docs/ja/2.3.1/develop-schema.html          |   4 +-
 content/docs/ja/2.3.1/develop-schema/index.html    |   4 +-
 content/docs/ja/2.3.1/functions-overview.html      |   2 +-
 .../docs/ja/2.3.1/functions-overview/index.html    |   2 +-
 content/docs/ja/2.3.1/sql-overview.html            |   4 +-
 content/docs/ja/2.3.1/sql-overview/index.html      |   4 +-
 content/docs/ja/2.3.2/adaptors-kafka.html          |   2 +-
 content/docs/ja/2.3.2/adaptors-kafka/index.html    |   2 +-
 .../ja/2.3.2/admin-api-partitioned-topics.html     |   2 +-
 .../2.3.2/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/ja/2.3.2/admin-api-schemas.html       |   2 +-
 content/docs/ja/2.3.2/admin-api-schemas/index.html |   2 +-
 content/docs/ja/2.3.2/concepts-messaging.html      |   2 +-
 .../docs/ja/2.3.2/concepts-messaging/index.html    |   2 +-
 content/docs/ja/2.3.2/concepts-overview.html       |   2 +-
 content/docs/ja/2.3.2/concepts-overview/index.html |   2 +-
 .../docs/ja/2.3.2/concepts-schema-registry.html    |   2 +-
 .../ja/2.3.2/concepts-schema-registry/index.html   |   2 +-
 content/docs/ja/2.3.2/concepts-tiered-storage.html |   2 +-
 .../ja/2.3.2/concepts-tiered-storage/index.html    |   2 +-
 content/docs/ja/2.3.2/develop-binary-protocol.html |   2 +-
 .../ja/2.3.2/develop-binary-protocol/index.html    |   2 +-
 content/docs/ja/2.3.2/develop-load-manager.html    |   2 +-
 .../docs/ja/2.3.2/develop-load-manager/index.html  |   2 +-
 content/docs/ja/2.3.2/develop-schema.html          |   4 +-
 content/docs/ja/2.3.2/develop-schema/index.html    |   4 +-
 content/docs/ja/2.3.2/functions-overview.html      |   2 +-
 .../docs/ja/2.3.2/functions-overview/index.html    |   2 +-
 content/docs/ja/2.3.2/sql-overview.html            |   4 +-
 content/docs/ja/2.3.2/sql-overview/index.html      |   4 +-
 content/docs/ja/adaptors-kafka.html                |   2 +-
 content/docs/ja/adaptors-kafka/index.html          |   2 +-
 content/docs/ja/admin-api-partitioned-topics.html  |   2 +-
 .../ja/admin-api-partitioned-topics/index.html     |   2 +-
 content/docs/ja/admin-api-schemas.html             |   2 +-
 content/docs/ja/admin-api-schemas/index.html       |   2 +-
 content/docs/ja/concepts-messaging.html            |   2 +-
 content/docs/ja/concepts-messaging/index.html      |   2 +-
 content/docs/ja/concepts-overview.html             |   2 +-
 content/docs/ja/concepts-overview/index.html       |   2 +-
 content/docs/ja/concepts-schema-registry.html      |   2 +-
 .../docs/ja/concepts-schema-registry/index.html    |   2 +-
 content/docs/ja/concepts-tiered-storage.html       |   2 +-
 content/docs/ja/concepts-tiered-storage/index.html |   2 +-
 content/docs/ja/develop-binary-protocol.html       |   2 +-
 content/docs/ja/develop-binary-protocol/index.html |   2 +-
 content/docs/ja/develop-load-manager.html          |   2 +-
 content/docs/ja/develop-load-manager/index.html    |   2 +-
 content/docs/ja/develop-schema.html                |   4 +-
 content/docs/ja/develop-schema/index.html          |   4 +-
 content/docs/ja/functions-overview.html            |   2 +-
 content/docs/ja/functions-overview/index.html      |   2 +-
 content/docs/ja/next/adaptors-kafka.html           |   4 +-
 content/docs/ja/next/adaptors-kafka/index.html     |   4 +-
 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-persistent-topics.html   |   9 +-
 .../admin-api-non-persistent-topics/index.html     |   9 +-
 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 |  18 ++-
 .../next/admin-api-partitioned-topics/index.html   |  18 ++-
 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       |   4 +-
 content/docs/ja/next/concepts-messaging/index.html |   4 +-
 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        |   4 +-
 content/docs/ja/next/concepts-overview/index.html  |   4 +-
 content/docs/ja/next/concepts-replication.html     |   2 +-
 .../docs/ja/next/concepts-replication/index.html   |   2 +-
 content/docs/ja/next/concepts-tiered-storage.html  |   4 +-
 .../ja/next/concepts-tiered-storage/index.html     |   4 +-
 .../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   |   2 +-
 .../deploy-bare-metal-multi-cluster/index.html     |   2 +-
 content/docs/ja/next/deploy-bare-metal.html        |   2 +-
 content/docs/ja/next/deploy-bare-metal/index.html  |   2 +-
 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  |   4 +-
 .../ja/next/develop-binary-protocol/index.html     |   4 +-
 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     |   4 +-
 .../docs/ja/next/develop-load-manager/index.html   |   4 +-
 content/docs/ja/next/develop-tools.html            |   2 +-
 content/docs/ja/next/develop-tools/index.html      |   2 +-
 content/docs/ja/next/functions-api.html            |   2 +-
 content/docs/ja/next/functions-api/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-debugging.html      |   2 +-
 .../docs/ja/next/functions-debugging/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-deploying.html      |   2 +-
 .../docs/ja/next/functions-deploying/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-guarantees.html     |   2 +-
 .../docs/ja/next/functions-guarantees/index.html   |   2 +-
 content/docs/ja/next/functions-metrics.html        |   2 +-
 content/docs/ja/next/functions-metrics/index.html  |   2 +-
 content/docs/ja/next/functions-overview-new.html   |   2 +-
 .../docs/ja/next/functions-overview-new/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-quickstart.html     |   2 +-
 .../docs/ja/next/functions-quickstart/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-state.html          |   2 +-
 content/docs/ja/next/functions-state/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.html                   |   2 +-
 content/docs/ja/next/io-cdc/index.html             |   2 +-
 content/docs/ja/next/io-connectors.html            |   2 +-
 content/docs/ja/next/io-connectors/index.html      |   2 +-
 content/docs/ja/next/io-develop.html               |   2 +-
 content/docs/ja/next/io-develop/index.html         |   2 +-
 content/docs/ja/next/io-managing.html              |   2 +-
 content/docs/ja/next/io-managing/index.html        |   2 +-
 content/docs/ja/next/io-overview.html              |   2 +-
 content/docs/ja/next/io-overview/index.html        |   2 +-
 content/docs/ja/next/io-quickstart.html            |   2 +-
 content/docs/ja/next/io-quickstart/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             |  16 ++-
 content/docs/ja/next/pulsar-admin/index.html       |  16 ++-
 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  |   2 +-
 .../ja/next/reference-configuration/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    |   8 +-
 .../next/schema-evolution-compatibility/index.html |   8 +-
 content/docs/ja/next/schema-get-started.html       |   9 +-
 content/docs/ja/next/schema-get-started/index.html |   9 +-
 content/docs/ja/next/schema-manage.html            |   6 +-
 content/docs/ja/next/schema-manage/index.html      |   6 +-
 content/docs/ja/next/schema-understand.html        |  13 +-
 content/docs/ja/next/schema-understand/index.html  |  13 +-
 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             |   6 +-
 content/docs/ja/next/sql-overview/index.html       |   6 +-
 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                  |   4 +-
 content/docs/ja/sql-overview/index.html            |   4 +-
 .../zh-CN/2.1.0-incubating/adaptors-kafka.html     |   2 +-
 .../2.1.0-incubating/adaptors-kafka/index.html     |   2 +-
 .../admin-api-partitioned-topics.html              |   2 +-
 .../admin-api-partitioned-topics/index.html        |   2 +-
 .../zh-CN/2.1.0-incubating/admin-api-schemas.html  |   2 +-
 .../2.1.0-incubating/admin-api-schemas/index.html  |   2 +-
 .../2.1.0-incubating/client-libraries-python.html  |   6 +-
 .../client-libraries-python/index.html             |   6 +-
 .../zh-CN/2.1.0-incubating/concepts-messaging.html |   2 +-
 .../2.1.0-incubating/concepts-messaging/index.html |   2 +-
 .../zh-CN/2.1.0-incubating/concepts-overview.html  |   2 +-
 .../2.1.0-incubating/concepts-overview/index.html  |   2 +-
 .../2.1.0-incubating/concepts-schema-registry.html |   2 +-
 .../concepts-schema-registry/index.html            |   2 +-
 .../2.1.0-incubating/concepts-tiered-storage.html  |   2 +-
 .../concepts-tiered-storage/index.html             |   2 +-
 .../2.1.0-incubating/develop-binary-protocol.html  |   2 +-
 .../develop-binary-protocol/index.html             |   2 +-
 .../2.1.0-incubating/develop-load-manager.html     |   2 +-
 .../develop-load-manager/index.html                |   2 +-
 .../zh-CN/2.1.0-incubating/develop-schema.html     |   4 +-
 .../2.1.0-incubating/develop-schema/index.html     |   4 +-
 .../zh-CN/2.1.0-incubating/functions-overview.html |   2 +-
 .../2.1.0-incubating/functions-overview/index.html |   2 +-
 .../zh-CN/2.1.1-incubating/adaptors-kafka.html     |   2 +-
 .../2.1.1-incubating/adaptors-kafka/index.html     |   2 +-
 .../admin-api-partitioned-topics.html              |   2 +-
 .../admin-api-partitioned-topics/index.html        |   2 +-
 .../zh-CN/2.1.1-incubating/admin-api-schemas.html  |   2 +-
 .../2.1.1-incubating/admin-api-schemas/index.html  |   2 +-
 .../2.1.1-incubating/client-libraries-python.html  |   6 +-
 .../client-libraries-python/index.html             |   6 +-
 .../zh-CN/2.1.1-incubating/concepts-messaging.html |   2 +-
 .../2.1.1-incubating/concepts-messaging/index.html |   2 +-
 .../zh-CN/2.1.1-incubating/concepts-overview.html  |   2 +-
 .../2.1.1-incubating/concepts-overview/index.html  |   2 +-
 .../2.1.1-incubating/concepts-schema-registry.html |   2 +-
 .../concepts-schema-registry/index.html            |   2 +-
 .../2.1.1-incubating/concepts-tiered-storage.html  |   2 +-
 .../concepts-tiered-storage/index.html             |   2 +-
 .../2.1.1-incubating/develop-binary-protocol.html  |   2 +-
 .../develop-binary-protocol/index.html             |   2 +-
 .../2.1.1-incubating/develop-load-manager.html     |   2 +-
 .../develop-load-manager/index.html                |   2 +-
 .../zh-CN/2.1.1-incubating/develop-schema.html     |   4 +-
 .../2.1.1-incubating/develop-schema/index.html     |   4 +-
 .../zh-CN/2.1.1-incubating/functions-overview.html |   2 +-
 .../2.1.1-incubating/functions-overview/index.html |   2 +-
 content/docs/zh-CN/2.2.0/adaptors-kafka.html       |   2 +-
 content/docs/zh-CN/2.2.0/adaptors-kafka/index.html |   2 +-
 .../zh-CN/2.2.0/admin-api-partitioned-topics.html  |   2 +-
 .../2.2.0/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/zh-CN/2.2.0/admin-api-schemas.html    |   2 +-
 .../docs/zh-CN/2.2.0/admin-api-schemas/index.html  |   2 +-
 .../docs/zh-CN/2.2.0/client-libraries-python.html  |   6 +-
 .../zh-CN/2.2.0/client-libraries-python/index.html |   6 +-
 content/docs/zh-CN/2.2.0/concepts-messaging.html   |   2 +-
 .../docs/zh-CN/2.2.0/concepts-messaging/index.html |   2 +-
 content/docs/zh-CN/2.2.0/concepts-overview.html    |   2 +-
 .../docs/zh-CN/2.2.0/concepts-overview/index.html  |   2 +-
 .../docs/zh-CN/2.2.0/concepts-schema-registry.html |   2 +-
 .../2.2.0/concepts-schema-registry/index.html      |   2 +-
 .../docs/zh-CN/2.2.0/concepts-tiered-storage.html  |   2 +-
 .../zh-CN/2.2.0/concepts-tiered-storage/index.html |   2 +-
 .../docs/zh-CN/2.2.0/develop-binary-protocol.html  |   2 +-
 .../zh-CN/2.2.0/develop-binary-protocol/index.html |   2 +-
 content/docs/zh-CN/2.2.0/develop-load-manager.html |   2 +-
 .../zh-CN/2.2.0/develop-load-manager/index.html    |   2 +-
 content/docs/zh-CN/2.2.0/develop-schema.html       |   4 +-
 content/docs/zh-CN/2.2.0/develop-schema/index.html |   4 +-
 content/docs/zh-CN/2.2.0/functions-overview.html   |   2 +-
 .../docs/zh-CN/2.2.0/functions-overview/index.html |   2 +-
 content/docs/zh-CN/2.2.0/sql-overview.html         |   4 +-
 content/docs/zh-CN/2.2.0/sql-overview/index.html   |   4 +-
 content/docs/zh-CN/2.2.1/adaptors-kafka.html       |   2 +-
 content/docs/zh-CN/2.2.1/adaptors-kafka/index.html |   2 +-
 .../zh-CN/2.2.1/admin-api-partitioned-topics.html  |   2 +-
 .../2.2.1/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/zh-CN/2.2.1/admin-api-schemas.html    |   2 +-
 .../docs/zh-CN/2.2.1/admin-api-schemas/index.html  |   2 +-
 .../docs/zh-CN/2.2.1/client-libraries-python.html  |   6 +-
 .../zh-CN/2.2.1/client-libraries-python/index.html |   6 +-
 content/docs/zh-CN/2.2.1/concepts-messaging.html   |   2 +-
 .../docs/zh-CN/2.2.1/concepts-messaging/index.html |   2 +-
 content/docs/zh-CN/2.2.1/concepts-overview.html    |   2 +-
 .../docs/zh-CN/2.2.1/concepts-overview/index.html  |   2 +-
 .../docs/zh-CN/2.2.1/concepts-schema-registry.html |   2 +-
 .../2.2.1/concepts-schema-registry/index.html      |   2 +-
 .../docs/zh-CN/2.2.1/concepts-tiered-storage.html  |   2 +-
 .../zh-CN/2.2.1/concepts-tiered-storage/index.html |   2 +-
 .../docs/zh-CN/2.2.1/develop-binary-protocol.html  |   2 +-
 .../zh-CN/2.2.1/develop-binary-protocol/index.html |   2 +-
 content/docs/zh-CN/2.2.1/develop-load-manager.html |   2 +-
 .../zh-CN/2.2.1/develop-load-manager/index.html    |   2 +-
 content/docs/zh-CN/2.2.1/develop-schema.html       |   4 +-
 content/docs/zh-CN/2.2.1/develop-schema/index.html |   4 +-
 content/docs/zh-CN/2.2.1/functions-overview.html   |   2 +-
 .../docs/zh-CN/2.2.1/functions-overview/index.html |   2 +-
 content/docs/zh-CN/2.2.1/sql-overview.html         |   4 +-
 content/docs/zh-CN/2.2.1/sql-overview/index.html   |   4 +-
 content/docs/zh-CN/2.3.0/adaptors-kafka.html       |   2 +-
 content/docs/zh-CN/2.3.0/adaptors-kafka/index.html |   2 +-
 .../zh-CN/2.3.0/admin-api-partitioned-topics.html  |   2 +-
 .../2.3.0/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/zh-CN/2.3.0/admin-api-schemas.html    |   2 +-
 .../docs/zh-CN/2.3.0/admin-api-schemas/index.html  |   2 +-
 .../docs/zh-CN/2.3.0/client-libraries-python.html  |  10 +-
 .../zh-CN/2.3.0/client-libraries-python/index.html |  10 +-
 content/docs/zh-CN/2.3.0/concepts-messaging.html   |   2 +-
 .../docs/zh-CN/2.3.0/concepts-messaging/index.html |   2 +-
 content/docs/zh-CN/2.3.0/concepts-overview.html    |   2 +-
 .../docs/zh-CN/2.3.0/concepts-overview/index.html  |   2 +-
 .../docs/zh-CN/2.3.0/concepts-schema-registry.html |   2 +-
 .../2.3.0/concepts-schema-registry/index.html      |   2 +-
 .../docs/zh-CN/2.3.0/concepts-tiered-storage.html  |   2 +-
 .../zh-CN/2.3.0/concepts-tiered-storage/index.html |   2 +-
 .../docs/zh-CN/2.3.0/develop-binary-protocol.html  |   2 +-
 .../zh-CN/2.3.0/develop-binary-protocol/index.html |   2 +-
 content/docs/zh-CN/2.3.0/develop-load-manager.html |   2 +-
 .../zh-CN/2.3.0/develop-load-manager/index.html    |   2 +-
 content/docs/zh-CN/2.3.0/develop-schema.html       |   4 +-
 content/docs/zh-CN/2.3.0/develop-schema/index.html |   4 +-
 content/docs/zh-CN/2.3.0/functions-overview.html   |   2 +-
 .../docs/zh-CN/2.3.0/functions-overview/index.html |   2 +-
 content/docs/zh-CN/2.3.0/sql-overview.html         |   4 +-
 content/docs/zh-CN/2.3.0/sql-overview/index.html   |   4 +-
 content/docs/zh-CN/2.3.1/adaptors-kafka.html       |   2 +-
 content/docs/zh-CN/2.3.1/adaptors-kafka/index.html |   2 +-
 .../zh-CN/2.3.1/admin-api-partitioned-topics.html  |   2 +-
 .../2.3.1/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/zh-CN/2.3.1/admin-api-schemas.html    |   2 +-
 .../docs/zh-CN/2.3.1/admin-api-schemas/index.html  |   2 +-
 .../docs/zh-CN/2.3.1/client-libraries-python.html  |  14 +-
 .../zh-CN/2.3.1/client-libraries-python/index.html |  14 +-
 content/docs/zh-CN/2.3.1/concepts-messaging.html   |   2 +-
 .../docs/zh-CN/2.3.1/concepts-messaging/index.html |   2 +-
 content/docs/zh-CN/2.3.1/concepts-overview.html    |   2 +-
 .../docs/zh-CN/2.3.1/concepts-overview/index.html  |   2 +-
 .../docs/zh-CN/2.3.1/concepts-schema-registry.html |   2 +-
 .../2.3.1/concepts-schema-registry/index.html      |   2 +-
 .../docs/zh-CN/2.3.1/concepts-tiered-storage.html  |   2 +-
 .../zh-CN/2.3.1/concepts-tiered-storage/index.html |   2 +-
 .../docs/zh-CN/2.3.1/develop-binary-protocol.html  |   2 +-
 .../zh-CN/2.3.1/develop-binary-protocol/index.html |   2 +-
 content/docs/zh-CN/2.3.1/develop-load-manager.html |   2 +-
 .../zh-CN/2.3.1/develop-load-manager/index.html    |   2 +-
 content/docs/zh-CN/2.3.1/develop-schema.html       |   4 +-
 content/docs/zh-CN/2.3.1/develop-schema/index.html |   4 +-
 content/docs/zh-CN/2.3.1/functions-overview.html   |   2 +-
 .../docs/zh-CN/2.3.1/functions-overview/index.html |   2 +-
 content/docs/zh-CN/2.3.1/sql-overview.html         |   4 +-
 content/docs/zh-CN/2.3.1/sql-overview/index.html   |   4 +-
 content/docs/zh-CN/2.3.2/adaptors-kafka.html       |   2 +-
 content/docs/zh-CN/2.3.2/adaptors-kafka/index.html |   2 +-
 .../zh-CN/2.3.2/admin-api-partitioned-topics.html  |   2 +-
 .../2.3.2/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/zh-CN/2.3.2/admin-api-schemas.html    |   2 +-
 .../docs/zh-CN/2.3.2/admin-api-schemas/index.html  |   2 +-
 .../docs/zh-CN/2.3.2/client-libraries-python.html  |  14 +-
 .../zh-CN/2.3.2/client-libraries-python/index.html |  14 +-
 content/docs/zh-CN/2.3.2/concepts-messaging.html   |   2 +-
 .../docs/zh-CN/2.3.2/concepts-messaging/index.html |   2 +-
 content/docs/zh-CN/2.3.2/concepts-overview.html    |   2 +-
 .../docs/zh-CN/2.3.2/concepts-overview/index.html  |   2 +-
 .../docs/zh-CN/2.3.2/concepts-schema-registry.html |   2 +-
 .../2.3.2/concepts-schema-registry/index.html      |   2 +-
 .../docs/zh-CN/2.3.2/concepts-tiered-storage.html  |   2 +-
 .../zh-CN/2.3.2/concepts-tiered-storage/index.html |   2 +-
 .../docs/zh-CN/2.3.2/develop-binary-protocol.html  |   2 +-
 .../zh-CN/2.3.2/develop-binary-protocol/index.html |   2 +-
 content/docs/zh-CN/2.3.2/develop-load-manager.html |   2 +-
 .../zh-CN/2.3.2/develop-load-manager/index.html    |   2 +-
 content/docs/zh-CN/2.3.2/develop-schema.html       |   4 +-
 content/docs/zh-CN/2.3.2/develop-schema/index.html |   4 +-
 content/docs/zh-CN/2.3.2/functions-overview.html   |   2 +-
 .../docs/zh-CN/2.3.2/functions-overview/index.html |   2 +-
 content/docs/zh-CN/2.3.2/sql-overview.html         |   4 +-
 content/docs/zh-CN/2.3.2/sql-overview/index.html   |   4 +-
 content/docs/zh-CN/adaptors-kafka.html             |   2 +-
 content/docs/zh-CN/adaptors-kafka/index.html       |   2 +-
 .../docs/zh-CN/admin-api-partitioned-topics.html   |   2 +-
 .../zh-CN/admin-api-partitioned-topics/index.html  |   2 +-
 content/docs/zh-CN/admin-api-schemas.html          |   2 +-
 content/docs/zh-CN/admin-api-schemas/index.html    |   2 +-
 content/docs/zh-CN/client-libraries-python.html    |  14 +-
 .../docs/zh-CN/client-libraries-python/index.html  |  14 +-
 content/docs/zh-CN/concepts-messaging.html         |   2 +-
 content/docs/zh-CN/concepts-messaging/index.html   |   2 +-
 content/docs/zh-CN/concepts-overview.html          |   2 +-
 content/docs/zh-CN/concepts-overview/index.html    |   2 +-
 content/docs/zh-CN/concepts-schema-registry.html   |   2 +-
 .../docs/zh-CN/concepts-schema-registry/index.html |   2 +-
 content/docs/zh-CN/concepts-tiered-storage.html    |   2 +-
 .../docs/zh-CN/concepts-tiered-storage/index.html  |   2 +-
 content/docs/zh-CN/develop-binary-protocol.html    |   2 +-
 .../docs/zh-CN/develop-binary-protocol/index.html  |   2 +-
 content/docs/zh-CN/develop-load-manager.html       |   2 +-
 content/docs/zh-CN/develop-load-manager/index.html |   2 +-
 content/docs/zh-CN/develop-schema.html             |   4 +-
 content/docs/zh-CN/develop-schema/index.html       |   4 +-
 content/docs/zh-CN/functions-overview.html         |   2 +-
 content/docs/zh-CN/functions-overview/index.html   |   2 +-
 content/docs/zh-CN/next/adaptors-kafka.html        |   4 +-
 content/docs/zh-CN/next/adaptors-kafka/index.html  |   4 +-
 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-persistent-topics.html      |   9 +-
 .../admin-api-non-persistent-topics/index.html     |   9 +-
 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   |  18 ++-
 .../next/admin-api-partitioned-topics/index.html   |  18 ++-
 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   |  16 +--
 .../zh-CN/next/client-libraries-python/index.html  |  16 +--
 .../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    |   4 +-
 .../docs/zh-CN/next/concepts-messaging/index.html  |   4 +-
 .../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     |   4 +-
 .../docs/zh-CN/next/concepts-overview/index.html   |   4 +-
 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   |   4 +-
 .../zh-CN/next/concepts-tiered-storage/index.html  |   4 +-
 .../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      |   2 +-
 .../deploy-bare-metal-multi-cluster/index.html     |   2 +-
 content/docs/zh-CN/next/deploy-bare-metal.html     |   2 +-
 .../docs/zh-CN/next/deploy-bare-metal/index.html   |   2 +-
 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   |   4 +-
 .../zh-CN/next/develop-binary-protocol/index.html  |   4 +-
 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  |   4 +-
 .../zh-CN/next/develop-load-manager/index.html     |   4 +-
 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-api.html         |   2 +-
 content/docs/zh-CN/next/functions-api/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-debugging.html   |   2 +-
 .../docs/zh-CN/next/functions-debugging/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-deploying.html   |   2 +-
 .../docs/zh-CN/next/functions-deploying/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-guarantees.html  |   2 +-
 .../zh-CN/next/functions-guarantees/index.html     |   2 +-
 content/docs/zh-CN/next/functions-metrics.html     |   2 +-
 .../docs/zh-CN/next/functions-metrics/index.html   |   2 +-
 .../docs/zh-CN/next/functions-overview-new.html    |   2 +-
 .../zh-CN/next/functions-overview-new/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-quickstart.html  |   2 +-
 .../zh-CN/next/functions-quickstart/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-state.html       |   2 +-
 content/docs/zh-CN/next/functions-state/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.html                |   2 +-
 content/docs/zh-CN/next/io-cdc/index.html          |   2 +-
 content/docs/zh-CN/next/io-connectors.html         |   2 +-
 content/docs/zh-CN/next/io-connectors/index.html   |   2 +-
 content/docs/zh-CN/next/io-develop.html            |   2 +-
 content/docs/zh-CN/next/io-develop/index.html      |   2 +-
 content/docs/zh-CN/next/io-managing.html           |   2 +-
 content/docs/zh-CN/next/io-managing/index.html     |   2 +-
 content/docs/zh-CN/next/io-overview.html           |   2 +-
 content/docs/zh-CN/next/io-overview/index.html     |   2 +-
 content/docs/zh-CN/next/io-quickstart.html         |   2 +-
 content/docs/zh-CN/next/io-quickstart/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          |  16 ++-
 content/docs/zh-CN/next/pulsar-admin/index.html    |  16 ++-
 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   |   2 +-
 .../zh-CN/next/reference-configuration/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 |   8 +-
 .../next/schema-evolution-compatibility/index.html |   8 +-
 content/docs/zh-CN/next/schema-get-started.html    |   9 +-
 .../docs/zh-CN/next/schema-get-started/index.html  |   9 +-
 content/docs/zh-CN/next/schema-manage.html         |   6 +-
 content/docs/zh-CN/next/schema-manage/index.html   |   6 +-
 content/docs/zh-CN/next/schema-understand.html     |  13 +-
 .../docs/zh-CN/next/schema-understand/index.html   |  13 +-
 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          |   6 +-
 content/docs/zh-CN/next/sql-overview/index.html    |   6 +-
 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               |   4 +-
 content/docs/zh-CN/sql-overview/index.html         |   4 +-
 content/sitemap.xml                                |   2 +-
 content/swagger/2.5.0-SNAPSHOT/swagger.json        |  38 ++---
 .../swagger/2.5.0-SNAPSHOT/swaggerfunctions.json   |  60 ++++----
 content/swagger/2.5.0-SNAPSHOT/swaggersink.json    | 154 ++++++++++-----------
 content/swagger/2.5.0-SNAPSHOT/swaggersource.json  | 128 ++++++++---------
 content/swagger/swagger.json                       |  38 ++---
 content/swagger/swaggerfunctions.json              |  60 ++++----
 content/swagger/swaggersink.json                   | 154 ++++++++++-----------
 content/swagger/swaggersource.json                 | 128 ++++++++---------
 1569 files changed, 2599 insertions(+), 2319 deletions(-)

diff --git a/content/docs/en/2.1.0-incubating/adaptors-kafka.html b/content/docs/en/2.1.0-incubating/adaptors-kafka.html
index aa60d8d..10065bf 100644
--- a/content/docs/en/2.1.0-incubating/adaptors-kafka.html
+++ b/content/docs/en/2.1.0-incubating/adaptors-kafka.html
@@ -315,7 +315,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibili [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibil [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.0-incubating/adaptors-kafka/index.html b/content/docs/en/2.1.0-incubating/adaptors-kafka/index.html
index aa60d8d..10065bf 100644
--- a/content/docs/en/2.1.0-incubating/adaptors-kafka/index.html
+++ b/content/docs/en/2.1.0-incubating/adaptors-kafka/index.html
@@ -315,7 +315,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibili [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibil [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.0-incubating/admin-api-partitioned-topics.html b/content/docs/en/2.1.0-incubating/admin-api-partitioned-topics.html
index 352e763..ce2ab35 100644
--- a/content/docs/en/2.1.0-incubating/admin-api-partitioned-topics.html
+++ b/content/docs/en/2.1.0-incubating/admin-api-partitioned-topics.html
@@ -331,7 +331,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resource [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.0-incubating/admin-api-partitioned-topics/index.html b/content/docs/en/2.1.0-incubating/admin-api-partitioned-topics/index.html
index 352e763..ce2ab35 100644
--- a/content/docs/en/2.1.0-incubating/admin-api-partitioned-topics/index.html
+++ b/content/docs/en/2.1.0-incubating/admin-api-partitioned-topics/index.html
@@ -331,7 +331,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resource [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.0-incubating/admin-api-schemas.html b/content/docs/en/2.1.0-incubating/admin-api-schemas.html
index 3338bcf..824aebb 100644
--- a/content/docs/en/2.1.0-incubating/admin-api-schemas.html
+++ b/content/docs/en/2.1.0-incubating/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/2.1.0-incubating/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/2.1.0-incubating/admin-api-schemas/index.html b/content/docs/en/2.1.0-incubating/admin-api-schemas/index.html
index 3338bcf..824aebb 100644
--- a/content/docs/en/2.1.0-incubating/admin-api-schemas/index.html
+++ b/content/docs/en/2.1.0-incubating/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/2.1.0-incubating/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/2.1.0-incubating/client-libraries-java.html b/content/docs/en/2.1.0-incubating/client-libraries-java.html
index 0c4dedf..cf38b95 100644
--- a/content/docs/en/2.1.0-incubating/client-libraries-java.html
+++ b/content/docs/en/2.1.0-incubating/client-libraries-java.html
@@ -319,7 +319,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/2.1.0-incubating/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an e [...]
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/2.1.0-incubating/client-libraries-java/index.html b/content/docs/en/2.1.0-incubating/client-libraries-java/index.html
index 0c4dedf..cf38b95 100644
--- a/content/docs/en/2.1.0-incubating/client-libraries-java/index.html
+++ b/content/docs/en/2.1.0-incubating/client-libraries-java/index.html
@@ -319,7 +319,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/2.1.0-incubating/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an e [...]
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/2.1.0-incubating/concepts-messaging.html b/content/docs/en/2.1.0-incubating/concepts-messaging.html
index f6d58ea..40d9ccd 100644
--- a/content/docs/en/2.1.0-incubating/concepts-messaging.html
+++ b/content/docs/en/2.1.0-incubating/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/2.1.0-incubating/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/2.1.0-incubating/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/2.1.0-incubating/concepts-messaging/index.html b/content/docs/en/2.1.0-incubating/concepts-messaging/index.html
index f6d58ea..40d9ccd 100644
--- a/content/docs/en/2.1.0-incubating/concepts-messaging/index.html
+++ b/content/docs/en/2.1.0-incubating/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/2.1.0-incubating/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/2.1.0-incubating/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/2.1.0-incubating/concepts-overview.html b/content/docs/en/2.1.0-incubating/concepts-overview.html
index df8aaa7..6e46a36 100644
--- a/content/docs/en/2.1.0-incubating/concepts-overview.html
+++ b/content/docs/en/2.1.0-incubating/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/2.1.0-incubating/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/2.1.0-incubating/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/2.1.0-incubating/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/2.1.0-incubating/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer cla [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/2.1.0-incubating/concepts-overview/index.html b/content/docs/en/2.1.0-incubating/concepts-overview/index.html
index df8aaa7..6e46a36 100644
--- a/content/docs/en/2.1.0-incubating/concepts-overview/index.html
+++ b/content/docs/en/2.1.0-incubating/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/2.1.0-incubating/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/2.1.0-incubating/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/2.1.0-incubating/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/2.1.0-incubating/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer cla [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/2.1.0-incubating/concepts-schema-registry.html b/content/docs/en/2.1.0-incubating/concepts-schema-registry.html
index e965842..8a4ea15 100644
--- a/content/docs/en/2.1.0-incubating/concepts-schema-registry.html
+++ b/content/docs/en/2.1.0-incubating/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/2.1.0-incubating/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-sc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.1.0-incubating/concepts-schema-registry/index.html b/content/docs/en/2.1.0-incubating/concepts-schema-registry/index.html
index e965842..8a4ea15 100644
--- a/content/docs/en/2.1.0-incubating/concepts-schema-registry/index.html
+++ b/content/docs/en/2.1.0-incubating/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/2.1.0-incubating/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-sc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.1.0-incubating/concepts-tiered-storage.html b/content/docs/en/2.1.0-incubating/concepts-tiered-storage.html
index 899da3e..f703cce 100644
--- a/content/docs/en/2.1.0-incubating/concepts-tiered-storage.html
+++ b/content/docs/en/2.1.0-incubating/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/2.1.0-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/concepts-schema-registry"><span>Schema Registry</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 © [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/concepts-schema-registry"><span>Next</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 A [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.0-incubating/concepts-tiered-storage/index.html b/content/docs/en/2.1.0-incubating/concepts-tiered-storage/index.html
index 899da3e..f703cce 100644
--- a/content/docs/en/2.1.0-incubating/concepts-tiered-storage/index.html
+++ b/content/docs/en/2.1.0-incubating/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/2.1.0-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/concepts-schema-registry"><span>Schema Registry</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 © [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/concepts-schema-registry"><span>Next</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 A [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.0-incubating/develop-binary-protocol.html b/content/docs/en/2.1.0-incubating/develop-binary-protocol.html
index cbbd5ed..c7ee946 100644
--- a/content/docs/en/2.1.0-incubating/develop-binary-protocol.html
+++ b/content/docs/en/2.1.0-incubating/develop-binary-protocol.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple- [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.0-incubating/develop-binary-protocol/index.html b/content/docs/en/2.1.0-incubating/develop-binary-protocol/index.html
index cbbd5ed..c7ee946 100644
--- a/content/docs/en/2.1.0-incubating/develop-binary-protocol/index.html
+++ b/content/docs/en/2.1.0-incubating/develop-binary-protocol/index.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple- [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.0-incubating/develop-load-manager.html b/content/docs/en/2.1.0-incubating/develop-load-manager.html
index be14de4..6fc5591 100644
--- a/content/docs/en/2.1.0-incubating/develop-load-manager.html
+++ b/content/docs/en/2.1.0-incubating/develop-load-manager.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verificat [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.0-incubating/develop-load-manager/index.html b/content/docs/en/2.1.0-incubating/develop-load-manager/index.html
index be14de4..6fc5591 100644
--- a/content/docs/en/2.1.0-incubating/develop-load-manager/index.html
+++ b/content/docs/en/2.1.0-incubating/develop-load-manager/index.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verificat [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.0-incubating/develop-schema.html b/content/docs/en/2.1.0-incubating/develop-schema.html
index aa118a4..f81c2ed 100644
--- a/content/docs/en/2.1.0-incubating/develop-schema.html
+++ b/content/docs/en/2.1.0-incubating/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/2.1.0-incubating/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You c [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/2.1.0-incubating/concepts-schema-registry"> [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/2.1.0-incubating/develop-schema/index.html b/content/docs/en/2.1.0-incubating/develop-schema/index.html
index aa118a4..f81c2ed 100644
--- a/content/docs/en/2.1.0-incubating/develop-schema/index.html
+++ b/content/docs/en/2.1.0-incubating/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/2.1.0-incubating/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You c [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/2.1.0-incubating/concepts-schema-registry"> [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/2.1.0-incubating/functions-overview.html b/content/docs/en/2.1.0-incubating/functions-overview.html
index fbeb558..d013998 100644
--- a/content/docs/en/2.1.0-incubating/functions-overview.html
+++ b/content/docs/en/2.1.0-incubating/functions-overview.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/2.1.0-incubating/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspiration [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.0-incubating/functions-overview/index.html b/content/docs/en/2.1.0-incubating/functions-overview/index.html
index fbeb558..d013998 100644
--- a/content/docs/en/2.1.0-incubating/functions-overview/index.html
+++ b/content/docs/en/2.1.0-incubating/functions-overview/index.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/2.1.0-incubating/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspiration [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.0-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.0-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/adaptors-kafka.html b/content/docs/en/2.1.1-incubating/adaptors-kafka.html
index 7afff5c..078ed3b 100644
--- a/content/docs/en/2.1.1-incubating/adaptors-kafka.html
+++ b/content/docs/en/2.1.1-incubating/adaptors-kafka.html
@@ -315,7 +315,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibili [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibil [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/adaptors-kafka/index.html b/content/docs/en/2.1.1-incubating/adaptors-kafka/index.html
index 7afff5c..078ed3b 100644
--- a/content/docs/en/2.1.1-incubating/adaptors-kafka/index.html
+++ b/content/docs/en/2.1.1-incubating/adaptors-kafka/index.html
@@ -315,7 +315,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibili [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibil [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/admin-api-partitioned-topics.html b/content/docs/en/2.1.1-incubating/admin-api-partitioned-topics.html
index ce1dd9d..e64a760 100644
--- a/content/docs/en/2.1.1-incubating/admin-api-partitioned-topics.html
+++ b/content/docs/en/2.1.1-incubating/admin-api-partitioned-topics.html
@@ -331,7 +331,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resource [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/admin-api-partitioned-topics/index.html b/content/docs/en/2.1.1-incubating/admin-api-partitioned-topics/index.html
index ce1dd9d..e64a760 100644
--- a/content/docs/en/2.1.1-incubating/admin-api-partitioned-topics/index.html
+++ b/content/docs/en/2.1.1-incubating/admin-api-partitioned-topics/index.html
@@ -331,7 +331,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resource [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/admin-api-schemas.html b/content/docs/en/2.1.1-incubating/admin-api-schemas.html
index f496443..d36773a 100644
--- a/content/docs/en/2.1.1-incubating/admin-api-schemas.html
+++ b/content/docs/en/2.1.1-incubating/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/2.1.1-incubating/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/2.1.1-incubating/admin-api-schemas/index.html b/content/docs/en/2.1.1-incubating/admin-api-schemas/index.html
index f496443..d36773a 100644
--- a/content/docs/en/2.1.1-incubating/admin-api-schemas/index.html
+++ b/content/docs/en/2.1.1-incubating/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/2.1.1-incubating/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/2.1.1-incubating/client-libraries-java.html b/content/docs/en/2.1.1-incubating/client-libraries-java.html
index a063274..7aab4cb 100644
--- a/content/docs/en/2.1.1-incubating/client-libraries-java.html
+++ b/content/docs/en/2.1.1-incubating/client-libraries-java.html
@@ -319,7 +319,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/2.1.1-incubating/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an e [...]
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/2.1.1-incubating/client-libraries-java/index.html b/content/docs/en/2.1.1-incubating/client-libraries-java/index.html
index a063274..7aab4cb 100644
--- a/content/docs/en/2.1.1-incubating/client-libraries-java/index.html
+++ b/content/docs/en/2.1.1-incubating/client-libraries-java/index.html
@@ -319,7 +319,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/2.1.1-incubating/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an e [...]
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/2.1.1-incubating/concepts-messaging.html b/content/docs/en/2.1.1-incubating/concepts-messaging.html
index 738247a..84cf9b0 100644
--- a/content/docs/en/2.1.1-incubating/concepts-messaging.html
+++ b/content/docs/en/2.1.1-incubating/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/2.1.1-incubating/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/2.1.1-incubating/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/2.1.1-incubating/concepts-messaging/index.html b/content/docs/en/2.1.1-incubating/concepts-messaging/index.html
index 738247a..84cf9b0 100644
--- a/content/docs/en/2.1.1-incubating/concepts-messaging/index.html
+++ b/content/docs/en/2.1.1-incubating/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/2.1.1-incubating/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/2.1.1-incubating/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/2.1.1-incubating/concepts-overview.html b/content/docs/en/2.1.1-incubating/concepts-overview.html
index 61bdcec..3d307d8 100644
--- a/content/docs/en/2.1.1-incubating/concepts-overview.html
+++ b/content/docs/en/2.1.1-incubating/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/2.1.1-incubating/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/2.1.1-incubating/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/2.1.1-incubating/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/2.1.1-incubating/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer cla [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/2.1.1-incubating/concepts-overview/index.html b/content/docs/en/2.1.1-incubating/concepts-overview/index.html
index 61bdcec..3d307d8 100644
--- a/content/docs/en/2.1.1-incubating/concepts-overview/index.html
+++ b/content/docs/en/2.1.1-incubating/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/2.1.1-incubating/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/2.1.1-incubating/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/2.1.1-incubating/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/2.1.1-incubating/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer cla [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/2.1.1-incubating/concepts-schema-registry.html b/content/docs/en/2.1.1-incubating/concepts-schema-registry.html
index cf4f717..3362b18 100644
--- a/content/docs/en/2.1.1-incubating/concepts-schema-registry.html
+++ b/content/docs/en/2.1.1-incubating/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/2.1.1-incubating/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-sc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.1.1-incubating/concepts-schema-registry/index.html b/content/docs/en/2.1.1-incubating/concepts-schema-registry/index.html
index cf4f717..3362b18 100644
--- a/content/docs/en/2.1.1-incubating/concepts-schema-registry/index.html
+++ b/content/docs/en/2.1.1-incubating/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/2.1.1-incubating/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-sc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.1.1-incubating/concepts-tiered-storage.html b/content/docs/en/2.1.1-incubating/concepts-tiered-storage.html
index 682c7b6..cc83532 100644
--- a/content/docs/en/2.1.1-incubating/concepts-tiered-storage.html
+++ b/content/docs/en/2.1.1-incubating/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/2.1.1-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/concepts-schema-registry"><span>Schema Registry</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 © [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/concepts-schema-registry"><span>Next</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 A [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/concepts-tiered-storage/index.html b/content/docs/en/2.1.1-incubating/concepts-tiered-storage/index.html
index 682c7b6..cc83532 100644
--- a/content/docs/en/2.1.1-incubating/concepts-tiered-storage/index.html
+++ b/content/docs/en/2.1.1-incubating/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/2.1.1-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/concepts-schema-registry"><span>Schema Registry</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 © [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/concepts-schema-registry"><span>Next</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 A [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/develop-binary-protocol.html b/content/docs/en/2.1.1-incubating/develop-binary-protocol.html
index 2cc88a5..8c0ceee 100644
--- a/content/docs/en/2.1.1-incubating/develop-binary-protocol.html
+++ b/content/docs/en/2.1.1-incubating/develop-binary-protocol.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple- [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/develop-binary-protocol/index.html b/content/docs/en/2.1.1-incubating/develop-binary-protocol/index.html
index 2cc88a5..8c0ceee 100644
--- a/content/docs/en/2.1.1-incubating/develop-binary-protocol/index.html
+++ b/content/docs/en/2.1.1-incubating/develop-binary-protocol/index.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple- [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/develop-load-manager.html b/content/docs/en/2.1.1-incubating/develop-load-manager.html
index 3ea962c..f9ad2c5 100644
--- a/content/docs/en/2.1.1-incubating/develop-load-manager.html
+++ b/content/docs/en/2.1.1-incubating/develop-load-manager.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verificat [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/develop-load-manager/index.html b/content/docs/en/2.1.1-incubating/develop-load-manager/index.html
index 3ea962c..f9ad2c5 100644
--- a/content/docs/en/2.1.1-incubating/develop-load-manager/index.html
+++ b/content/docs/en/2.1.1-incubating/develop-load-manager/index.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verificat [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/develop-schema.html b/content/docs/en/2.1.1-incubating/develop-schema.html
index cc409e5..cd062f2 100644
--- a/content/docs/en/2.1.1-incubating/develop-schema.html
+++ b/content/docs/en/2.1.1-incubating/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/2.1.1-incubating/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You c [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/2.1.1-incubating/concepts-schema-registry"> [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/2.1.1-incubating/develop-schema/index.html b/content/docs/en/2.1.1-incubating/develop-schema/index.html
index cc409e5..cd062f2 100644
--- a/content/docs/en/2.1.1-incubating/develop-schema/index.html
+++ b/content/docs/en/2.1.1-incubating/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/2.1.1-incubating/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You c [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/2.1.1-incubating/concepts-schema-registry"> [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/2.1.1-incubating/functions-overview.html b/content/docs/en/2.1.1-incubating/functions-overview.html
index 63354cb..0b4a6e2 100644
--- a/content/docs/en/2.1.1-incubating/functions-overview.html
+++ b/content/docs/en/2.1.1-incubating/functions-overview.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/2.1.1-incubating/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspiration [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.1.1-incubating/functions-overview/index.html b/content/docs/en/2.1.1-incubating/functions-overview/index.html
index 63354cb..0b4a6e2 100644
--- a/content/docs/en/2.1.1-incubating/functions-overview/index.html
+++ b/content/docs/en/2.1.1-incubating/functions-overview/index.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/2.1.1-incubating/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspiration [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.1.1-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.1.1-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.0/adaptors-kafka.html b/content/docs/en/2.2.0/adaptors-kafka.html
index 65e5641..13a8b6c 100644
--- a/content/docs/en/2.2.0/adaptors-kafka.html
+++ b/content/docs/en/2.2.0/adaptors-kafka.html
@@ -317,7 +317,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/2.2.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.0/adaptors-kafka/index.html b/content/docs/en/2.2.0/adaptors-kafka/index.html
index 65e5641..13a8b6c 100644
--- a/content/docs/en/2.2.0/adaptors-kafka/index.html
+++ b/content/docs/en/2.2.0/adaptors-kafka/index.html
@@ -317,7 +317,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/2.2.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.0/admin-api-partitioned-topics.html b/content/docs/en/2.2.0/admin-api-partitioned-topics.html
index ddfb1b0..f16dd73 100644
--- a/content/docs/en/2.2.0/admin-api-partitioned-topics.html
+++ b/content/docs/en/2.2.0/admin-api-partitioned-topics.html
@@ -331,7 +331,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.2.0/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.2.0/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-he [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.0/admin-api-partitioned-topics/index.html b/content/docs/en/2.2.0/admin-api-partitioned-topics/index.html
index ddfb1b0..f16dd73 100644
--- a/content/docs/en/2.2.0/admin-api-partitioned-topics/index.html
+++ b/content/docs/en/2.2.0/admin-api-partitioned-topics/index.html
@@ -331,7 +331,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.2.0/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.2.0/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-he [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.0/admin-api-schemas.html b/content/docs/en/2.2.0/admin-api-schemas.html
index 2e06596..3bb3dc0 100644
--- a/content/docs/en/2.2.0/admin-api-schemas.html
+++ b/content/docs/en/2.2.0/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/2.2.0/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/2.2.0/admin-api-schemas/index.html b/content/docs/en/2.2.0/admin-api-schemas/index.html
index 2e06596..3bb3dc0 100644
--- a/content/docs/en/2.2.0/admin-api-schemas/index.html
+++ b/content/docs/en/2.2.0/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/2.2.0/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/2.2.0/client-libraries-java.html b/content/docs/en/2.2.0/client-libraries-java.html
index a7d2c82..f6ca7f1 100644
--- a/content/docs/en/2.2.0/client-libraries-java.html
+++ b/content/docs/en/2.2.0/client-libraries-java.html
@@ -319,7 +319,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/2.2.0/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/2.2.0/client-libraries-java/index.html b/content/docs/en/2.2.0/client-libraries-java/index.html
index a7d2c82..f6ca7f1 100644
--- a/content/docs/en/2.2.0/client-libraries-java/index.html
+++ b/content/docs/en/2.2.0/client-libraries-java/index.html
@@ -319,7 +319,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/2.2.0/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/2.2.0/concepts-messaging.html b/content/docs/en/2.2.0/concepts-messaging.html
index e900609..ab06549 100644
--- a/content/docs/en/2.2.0/concepts-messaging.html
+++ b/content/docs/en/2.2.0/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/2.2.0/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/2.2.0/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/2.2.0/concepts-messaging/index.html b/content/docs/en/2.2.0/concepts-messaging/index.html
index e900609..ab06549 100644
--- a/content/docs/en/2.2.0/concepts-messaging/index.html
+++ b/content/docs/en/2.2.0/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/2.2.0/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/2.2.0/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/2.2.0/concepts-overview.html b/content/docs/en/2.2.0/concepts-overview.html
index 3f7b2f6..a543cc0 100644
--- a/content/docs/en/2.2.0/concepts-overview.html
+++ b/content/docs/en/2.2.0/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/2.2.0/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/2.2.0/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/2.2.0/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/2.2.0/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/2.2.0/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/2.2.0/concepts-overview/index.html b/content/docs/en/2.2.0/concepts-overview/index.html
index 3f7b2f6..a543cc0 100644
--- a/content/docs/en/2.2.0/concepts-overview/index.html
+++ b/content/docs/en/2.2.0/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/2.2.0/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/2.2.0/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/2.2.0/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/2.2.0/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/2.2.0/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/2.2.0/concepts-schema-registry.html b/content/docs/en/2.2.0/concepts-schema-registry.html
index 7505024..d810095 100644
--- a/content/docs/en/2.2.0/concepts-schema-registry.html
+++ b/content/docs/en/2.2.0/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/2.2.0/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/2.2.0/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.2.0/concepts-schema-registry/index.html b/content/docs/en/2.2.0/concepts-schema-registry/index.html
index 7505024..d810095 100644
--- a/content/docs/en/2.2.0/concepts-schema-registry/index.html
+++ b/content/docs/en/2.2.0/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/2.2.0/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/2.2.0/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.2.0/concepts-tiered-storage.html b/content/docs/en/2.2.0/concepts-tiered-storage.html
index cc62614..7fae31a 100644
--- a/content/docs/en/2.2.0/concepts-tiered-storage.html
+++ b/content/docs/en/2.2.0/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/2.2.0/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.2.0/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.2.0/concepts-schema-registry"><span>Next</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 Foundat [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.0/concepts-tiered-storage/index.html b/content/docs/en/2.2.0/concepts-tiered-storage/index.html
index cc62614..7fae31a 100644
--- a/content/docs/en/2.2.0/concepts-tiered-storage/index.html
+++ b/content/docs/en/2.2.0/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/2.2.0/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.2.0/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.2.0/concepts-schema-registry"><span>Next</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 Foundat [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.0/develop-binary-protocol.html b/content/docs/en/2.2.0/develop-binary-protocol.html
index 43fc3b9..a6933bd 100644
--- a/content/docs/en/2.2.0/develop-binary-protocol.html
+++ b/content/docs/en/2.2.0/develop-binary-protocol.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.2.0/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.2.0/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.0/develop-binary-protocol/index.html b/content/docs/en/2.2.0/develop-binary-protocol/index.html
index 43fc3b9..a6933bd 100644
--- a/content/docs/en/2.2.0/develop-binary-protocol/index.html
+++ b/content/docs/en/2.2.0/develop-binary-protocol/index.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.2.0/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.2.0/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.0/develop-load-manager.html b/content/docs/en/2.2.0/develop-load-manager.html
index 2625021..5315ea8 100644
--- a/content/docs/en/2.2.0/develop-load-manager.html
+++ b/content/docs/en/2.2.0/develop-load-manager.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/2.2.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implement [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.0/develop-load-manager/index.html b/content/docs/en/2.2.0/develop-load-manager/index.html
index 2625021..5315ea8 100644
--- a/content/docs/en/2.2.0/develop-load-manager/index.html
+++ b/content/docs/en/2.2.0/develop-load-manager/index.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/2.2.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implement [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.0/develop-schema.html b/content/docs/en/2.2.0/develop-schema.html
index bc79cad..9da4576 100644
--- a/content/docs/en/2.2.0/develop-schema.html
+++ b/content/docs/en/2.2.0/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/2.2.0/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/2.2.0/concepts-schema-registry">schemas</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/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/2.2.0/develop-schema/index.html b/content/docs/en/2.2.0/develop-schema/index.html
index bc79cad..9da4576 100644
--- a/content/docs/en/2.2.0/develop-schema/index.html
+++ b/content/docs/en/2.2.0/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/2.2.0/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/2.2.0/concepts-schema-registry">schemas</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/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/2.2.0/functions-overview.html b/content/docs/en/2.2.0/functions-overview.html
index 571992f..a726d53 100644
--- a/content/docs/en/2.2.0/functions-overview.html
+++ b/content/docs/en/2.2.0/functions-overview.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/2.2.0/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/2.2.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#progr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.0/functions-overview/index.html b/content/docs/en/2.2.0/functions-overview/index.html
index 571992f..a726d53 100644
--- a/content/docs/en/2.2.0/functions-overview/index.html
+++ b/content/docs/en/2.2.0/functions-overview/index.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/2.2.0/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/2.2.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#progr [...]
       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 e3b5a99..cd5073f 100644
--- a/content/docs/en/2.2.0/sql-overview.html
+++ b/content/docs/en/2.2.0/sql-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 SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
+        </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/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
 <p>By leveraging <a href="https://prestodb.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
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 e3b5a99..cd5073f 100644
--- a/content/docs/en/2.2.0/sql-overview/index.html
+++ b/content/docs/en/2.2.0/sql-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 SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
+        </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/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
 <p>By leveraging <a href="https://prestodb.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
diff --git a/content/docs/en/2.2.1/adaptors-kafka.html b/content/docs/en/2.2.1/adaptors-kafka.html
index 6302bb3..abb1174 100644
--- a/content/docs/en/2.2.1/adaptors-kafka.html
+++ b/content/docs/en/2.2.1/adaptors-kafka.html
@@ -317,7 +317,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/2.2.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.1/adaptors-kafka/index.html b/content/docs/en/2.2.1/adaptors-kafka/index.html
index 6302bb3..abb1174 100644
--- a/content/docs/en/2.2.1/adaptors-kafka/index.html
+++ b/content/docs/en/2.2.1/adaptors-kafka/index.html
@@ -317,7 +317,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/2.2.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.1/admin-api-partitioned-topics.html b/content/docs/en/2.2.1/admin-api-partitioned-topics.html
index 45dd948..fd69a12 100644
--- a/content/docs/en/2.2.1/admin-api-partitioned-topics.html
+++ b/content/docs/en/2.2.1/admin-api-partitioned-topics.html
@@ -331,7 +331,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.2.1/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.2.1/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-he [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.1/admin-api-partitioned-topics/index.html b/content/docs/en/2.2.1/admin-api-partitioned-topics/index.html
index 45dd948..fd69a12 100644
--- a/content/docs/en/2.2.1/admin-api-partitioned-topics/index.html
+++ b/content/docs/en/2.2.1/admin-api-partitioned-topics/index.html
@@ -331,7 +331,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.2.1/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.2.1/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-he [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.1/admin-api-schemas.html b/content/docs/en/2.2.1/admin-api-schemas.html
index c3a411f..a1e886d 100644
--- a/content/docs/en/2.2.1/admin-api-schemas.html
+++ b/content/docs/en/2.2.1/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/2.2.1/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/2.2.1/admin-api-schemas/index.html b/content/docs/en/2.2.1/admin-api-schemas/index.html
index c3a411f..a1e886d 100644
--- a/content/docs/en/2.2.1/admin-api-schemas/index.html
+++ b/content/docs/en/2.2.1/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/2.2.1/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/2.2.1/client-libraries-java.html b/content/docs/en/2.2.1/client-libraries-java.html
index 3f35c84..2f1669a 100644
--- a/content/docs/en/2.2.1/client-libraries-java.html
+++ b/content/docs/en/2.2.1/client-libraries-java.html
@@ -318,7 +318,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/2.2.1/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/2.2.1/client-libraries-java/index.html b/content/docs/en/2.2.1/client-libraries-java/index.html
index 3f35c84..2f1669a 100644
--- a/content/docs/en/2.2.1/client-libraries-java/index.html
+++ b/content/docs/en/2.2.1/client-libraries-java/index.html
@@ -318,7 +318,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/2.2.1/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/2.2.1/concepts-messaging.html b/content/docs/en/2.2.1/concepts-messaging.html
index 770973c..643ee22 100644
--- a/content/docs/en/2.2.1/concepts-messaging.html
+++ b/content/docs/en/2.2.1/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/2.2.1/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/2.2.1/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/2.2.1/concepts-messaging/index.html b/content/docs/en/2.2.1/concepts-messaging/index.html
index 770973c..643ee22 100644
--- a/content/docs/en/2.2.1/concepts-messaging/index.html
+++ b/content/docs/en/2.2.1/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/2.2.1/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/2.2.1/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/2.2.1/concepts-overview.html b/content/docs/en/2.2.1/concepts-overview.html
index 2fd59cf..1af110c 100644
--- a/content/docs/en/2.2.1/concepts-overview.html
+++ b/content/docs/en/2.2.1/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/2.2.1/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/2.2.1/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/2.2.1/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/2.2.1/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/2.2.1/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/2.2.1/concepts-overview/index.html b/content/docs/en/2.2.1/concepts-overview/index.html
index 2fd59cf..1af110c 100644
--- a/content/docs/en/2.2.1/concepts-overview/index.html
+++ b/content/docs/en/2.2.1/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/2.2.1/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/2.2.1/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/2.2.1/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/2.2.1/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/2.2.1/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/2.2.1/concepts-schema-registry.html b/content/docs/en/2.2.1/concepts-schema-registry.html
index 5a51876..04bd881 100644
--- a/content/docs/en/2.2.1/concepts-schema-registry.html
+++ b/content/docs/en/2.2.1/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/2.2.1/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/2.2.1/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.2.1/concepts-schema-registry/index.html b/content/docs/en/2.2.1/concepts-schema-registry/index.html
index 5a51876..04bd881 100644
--- a/content/docs/en/2.2.1/concepts-schema-registry/index.html
+++ b/content/docs/en/2.2.1/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/2.2.1/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/2.2.1/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.2.1/concepts-tiered-storage.html b/content/docs/en/2.2.1/concepts-tiered-storage.html
index f9951b0..b72b947 100644
--- a/content/docs/en/2.2.1/concepts-tiered-storage.html
+++ b/content/docs/en/2.2.1/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/2.2.1/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.2.1/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.2.1/concepts-schema-registry"><span>Next</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 Foundat [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.1/concepts-tiered-storage/index.html b/content/docs/en/2.2.1/concepts-tiered-storage/index.html
index f9951b0..b72b947 100644
--- a/content/docs/en/2.2.1/concepts-tiered-storage/index.html
+++ b/content/docs/en/2.2.1/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/2.2.1/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.2.1/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.2.1/concepts-schema-registry"><span>Next</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 Foundat [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.1/develop-binary-protocol.html b/content/docs/en/2.2.1/develop-binary-protocol.html
index 4efd617..d11c57a 100644
--- a/content/docs/en/2.2.1/develop-binary-protocol.html
+++ b/content/docs/en/2.2.1/develop-binary-protocol.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.2.1/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.2.1/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.1/develop-binary-protocol/index.html b/content/docs/en/2.2.1/develop-binary-protocol/index.html
index 4efd617..d11c57a 100644
--- a/content/docs/en/2.2.1/develop-binary-protocol/index.html
+++ b/content/docs/en/2.2.1/develop-binary-protocol/index.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.2.1/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.2.1/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.1/develop-load-manager.html b/content/docs/en/2.2.1/develop-load-manager.html
index b80c94f..8886fc1 100644
--- a/content/docs/en/2.2.1/develop-load-manager.html
+++ b/content/docs/en/2.2.1/develop-load-manager.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/2.2.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implement [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.1/develop-load-manager/index.html b/content/docs/en/2.2.1/develop-load-manager/index.html
index b80c94f..8886fc1 100644
--- a/content/docs/en/2.2.1/develop-load-manager/index.html
+++ b/content/docs/en/2.2.1/develop-load-manager/index.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/2.2.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implement [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.1/develop-schema.html b/content/docs/en/2.2.1/develop-schema.html
index 1da9ab0..979c643 100644
--- a/content/docs/en/2.2.1/develop-schema.html
+++ b/content/docs/en/2.2.1/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/2.2.1/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/2.2.1/concepts-schema-registry">schemas</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/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/2.2.1/develop-schema/index.html b/content/docs/en/2.2.1/develop-schema/index.html
index 1da9ab0..979c643 100644
--- a/content/docs/en/2.2.1/develop-schema/index.html
+++ b/content/docs/en/2.2.1/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/2.2.1/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/2.2.1/concepts-schema-registry">schemas</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/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/2.2.1/functions-overview.html b/content/docs/en/2.2.1/functions-overview.html
index cb815b3..2ca8f41 100644
--- a/content/docs/en/2.2.1/functions-overview.html
+++ b/content/docs/en/2.2.1/functions-overview.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/2.2.1/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/2.2.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#progr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.2.1/functions-overview/index.html b/content/docs/en/2.2.1/functions-overview/index.html
index cb815b3..2ca8f41 100644
--- a/content/docs/en/2.2.1/functions-overview/index.html
+++ b/content/docs/en/2.2.1/functions-overview/index.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/2.2.1/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/2.2.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.2.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.2.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#progr [...]
       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 bb12960..8be3bd6 100644
--- a/content/docs/en/2.2.1/sql-overview.html
+++ b/content/docs/en/2.2.1/sql-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 SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
+        </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/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
 <p>By leveraging <a href="https://prestodb.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
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 bb12960..8be3bd6 100644
--- a/content/docs/en/2.2.1/sql-overview/index.html
+++ b/content/docs/en/2.2.1/sql-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 SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
+        </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/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
 <p>By leveraging <a href="https://prestodb.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
diff --git a/content/docs/en/2.3.0/adaptors-kafka.html b/content/docs/en/2.3.0/adaptors-kafka.html
index e049339..9290a6b 100644
--- a/content/docs/en/2.3.0/adaptors-kafka.html
+++ b/content/docs/en/2.3.0/adaptors-kafka.html
@@ -320,7 +320,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Set the subscription topic mode for consumers</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/2.3.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/adaptors-kafka/index.html b/content/docs/en/2.3.0/adaptors-kafka/index.html
index e049339..9290a6b 100644
--- a/content/docs/en/2.3.0/adaptors-kafka/index.html
+++ b/content/docs/en/2.3.0/adaptors-kafka/index.html
@@ -320,7 +320,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Set the subscription topic mode for consumers</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/2.3.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/admin-api-partitioned-topics.html b/content/docs/en/2.3.0/admin-api-partitioned-topics.html
index 9bf3c4b..63b3669 100644
--- a/content/docs/en/2.3.0/admin-api-partitioned-topics.html
+++ b/content/docs/en/2.3.0/admin-api-partitioned-topics.html
@@ -344,7 +344,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.3.0/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.3.0/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-he [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/admin-api-partitioned-topics/index.html b/content/docs/en/2.3.0/admin-api-partitioned-topics/index.html
index 9bf3c4b..63b3669 100644
--- a/content/docs/en/2.3.0/admin-api-partitioned-topics/index.html
+++ b/content/docs/en/2.3.0/admin-api-partitioned-topics/index.html
@@ -344,7 +344,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.3.0/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.3.0/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-he [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/admin-api-schemas.html b/content/docs/en/2.3.0/admin-api-schemas.html
index 1cc2aa9..110d8ee 100644
--- a/content/docs/en/2.3.0/admin-api-schemas.html
+++ b/content/docs/en/2.3.0/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/2.3.0/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/2.3.0/admin-api-schemas/index.html b/content/docs/en/2.3.0/admin-api-schemas/index.html
index 1cc2aa9..110d8ee 100644
--- a/content/docs/en/2.3.0/admin-api-schemas/index.html
+++ b/content/docs/en/2.3.0/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/2.3.0/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/2.3.0/client-libraries-java.html b/content/docs/en/2.3.0/client-libraries-java.html
index a2e47b9..4efd671 100644
--- a/content/docs/en/2.3.0/client-libraries-java.html
+++ b/content/docs/en/2.3.0/client-libraries-java.html
@@ -318,7 +318,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/2.3.0/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/2.3.0/client-libraries-java/index.html b/content/docs/en/2.3.0/client-libraries-java/index.html
index a2e47b9..4efd671 100644
--- a/content/docs/en/2.3.0/client-libraries-java/index.html
+++ b/content/docs/en/2.3.0/client-libraries-java/index.html
@@ -318,7 +318,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/2.3.0/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/2.3.0/concepts-messaging.html b/content/docs/en/2.3.0/concepts-messaging.html
index 7a5d172..64b8dab 100644
--- a/content/docs/en/2.3.0/concepts-messaging.html
+++ b/content/docs/en/2.3.0/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/2.3.0/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/2.3.0/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/2.3.0/concepts-messaging/index.html b/content/docs/en/2.3.0/concepts-messaging/index.html
index 7a5d172..64b8dab 100644
--- a/content/docs/en/2.3.0/concepts-messaging/index.html
+++ b/content/docs/en/2.3.0/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/2.3.0/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/2.3.0/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/2.3.0/concepts-overview.html b/content/docs/en/2.3.0/concepts-overview.html
index dd7cdc0..3afb107 100644
--- a/content/docs/en/2.3.0/concepts-overview.html
+++ b/content/docs/en/2.3.0/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/2.3.0/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/2.3.0/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/2.3.0/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/2.3.0/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/2.3.0/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/2.3.0/concepts-overview/index.html b/content/docs/en/2.3.0/concepts-overview/index.html
index dd7cdc0..3afb107 100644
--- a/content/docs/en/2.3.0/concepts-overview/index.html
+++ b/content/docs/en/2.3.0/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/2.3.0/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/2.3.0/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/2.3.0/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/2.3.0/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/2.3.0/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/2.3.0/concepts-schema-registry.html b/content/docs/en/2.3.0/concepts-schema-registry.html
index 7d0bae0..430bd99 100644
--- a/content/docs/en/2.3.0/concepts-schema-registry.html
+++ b/content/docs/en/2.3.0/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/2.3.0/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/2.3.0/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.3.0/concepts-schema-registry/index.html b/content/docs/en/2.3.0/concepts-schema-registry/index.html
index 7d0bae0..430bd99 100644
--- a/content/docs/en/2.3.0/concepts-schema-registry/index.html
+++ b/content/docs/en/2.3.0/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/2.3.0/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/2.3.0/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.3.0/concepts-tiered-storage.html b/content/docs/en/2.3.0/concepts-tiered-storage.html
index fe28a3e..8240e12 100644
--- a/content/docs/en/2.3.0/concepts-tiered-storage.html
+++ b/content/docs/en/2.3.0/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/2.3.0/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.3.0/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.3.0/concepts-schema-registry"><span>Next</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 Foundat [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/concepts-tiered-storage/index.html b/content/docs/en/2.3.0/concepts-tiered-storage/index.html
index fe28a3e..8240e12 100644
--- a/content/docs/en/2.3.0/concepts-tiered-storage/index.html
+++ b/content/docs/en/2.3.0/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/2.3.0/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.3.0/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.3.0/concepts-schema-registry"><span>Next</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 Foundat [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/develop-binary-protocol.html b/content/docs/en/2.3.0/develop-binary-protocol.html
index 92db716..686cdc2 100644
--- a/content/docs/en/2.3.0/develop-binary-protocol.html
+++ b/content/docs/en/2.3.0/develop-binary-protocol.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.3.0/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.3.0/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/develop-binary-protocol/index.html b/content/docs/en/2.3.0/develop-binary-protocol/index.html
index 92db716..686cdc2 100644
--- a/content/docs/en/2.3.0/develop-binary-protocol/index.html
+++ b/content/docs/en/2.3.0/develop-binary-protocol/index.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.3.0/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.3.0/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/develop-load-manager.html b/content/docs/en/2.3.0/develop-load-manager.html
index b9a360f..2a1be63 100644
--- a/content/docs/en/2.3.0/develop-load-manager.html
+++ b/content/docs/en/2.3.0/develop-load-manager.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/2.3.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implement [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/develop-load-manager/index.html b/content/docs/en/2.3.0/develop-load-manager/index.html
index b9a360f..2a1be63 100644
--- a/content/docs/en/2.3.0/develop-load-manager/index.html
+++ b/content/docs/en/2.3.0/develop-load-manager/index.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/2.3.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implement [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/develop-schema.html b/content/docs/en/2.3.0/develop-schema.html
index 9b51c6a..644b186 100644
--- a/content/docs/en/2.3.0/develop-schema.html
+++ b/content/docs/en/2.3.0/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/2.3.0/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/2.3.0/concepts-schema-registry">schemas</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/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/2.3.0/develop-schema/index.html b/content/docs/en/2.3.0/develop-schema/index.html
index 9b51c6a..644b186 100644
--- a/content/docs/en/2.3.0/develop-schema/index.html
+++ b/content/docs/en/2.3.0/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/2.3.0/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/2.3.0/concepts-schema-registry">schemas</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/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/2.3.0/functions-overview.html b/content/docs/en/2.3.0/functions-overview.html
index 37c1135..c8a3ad5 100644
--- a/content/docs/en/2.3.0/functions-overview.html
+++ b/content/docs/en/2.3.0/functions-overview.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/2.3.0/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/2.3.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#progr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.0/functions-overview/index.html b/content/docs/en/2.3.0/functions-overview/index.html
index 37c1135..c8a3ad5 100644
--- a/content/docs/en/2.3.0/functions-overview/index.html
+++ b/content/docs/en/2.3.0/functions-overview/index.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/2.3.0/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/2.3.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#progr [...]
       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 5e07fc8..c21c709 100644
--- a/content/docs/en/2.3.0/sql-overview.html
+++ b/content/docs/en/2.3.0/sql-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 SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
+        </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/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
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 5e07fc8..c21c709 100644
--- a/content/docs/en/2.3.0/sql-overview/index.html
+++ b/content/docs/en/2.3.0/sql-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 SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
+        </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/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
diff --git a/content/docs/en/2.3.1/adaptors-kafka.html b/content/docs/en/2.3.1/adaptors-kafka.html
index 81e261f..51abf5b 100644
--- a/content/docs/en/2.3.1/adaptors-kafka.html
+++ b/content/docs/en/2.3.1/adaptors-kafka.html
@@ -320,7 +320,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Set the subscription topic mode for consumers.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/2.3.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/adaptors-kafka/index.html b/content/docs/en/2.3.1/adaptors-kafka/index.html
index 81e261f..51abf5b 100644
--- a/content/docs/en/2.3.1/adaptors-kafka/index.html
+++ b/content/docs/en/2.3.1/adaptors-kafka/index.html
@@ -320,7 +320,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Set the subscription topic mode for consumers.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/2.3.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/admin-api-partitioned-topics.html b/content/docs/en/2.3.1/admin-api-partitioned-topics.html
index bc2df69..88619ab 100644
--- a/content/docs/en/2.3.1/admin-api-partitioned-topics.html
+++ b/content/docs/en/2.3.1/admin-api-partitioned-topics.html
@@ -344,7 +344,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.3.1/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.3.1/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-he [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/admin-api-partitioned-topics/index.html b/content/docs/en/2.3.1/admin-api-partitioned-topics/index.html
index bc2df69..88619ab 100644
--- a/content/docs/en/2.3.1/admin-api-partitioned-topics/index.html
+++ b/content/docs/en/2.3.1/admin-api-partitioned-topics/index.html
@@ -344,7 +344,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.3.1/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.3.1/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-he [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/admin-api-schemas.html b/content/docs/en/2.3.1/admin-api-schemas.html
index d463d0e..6de4eaf 100644
--- a/content/docs/en/2.3.1/admin-api-schemas.html
+++ b/content/docs/en/2.3.1/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/2.3.1/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/2.3.1/admin-api-schemas/index.html b/content/docs/en/2.3.1/admin-api-schemas/index.html
index d463d0e..6de4eaf 100644
--- a/content/docs/en/2.3.1/admin-api-schemas/index.html
+++ b/content/docs/en/2.3.1/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/2.3.1/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/2.3.1/client-libraries-java.html b/content/docs/en/2.3.1/client-libraries-java.html
index 7869634..c295850 100644
--- a/content/docs/en/2.3.1/client-libraries-java.html
+++ b/content/docs/en/2.3.1/client-libraries-java.html
@@ -329,7 +329,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/2.3.1/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/2.3.1/client-libraries-java/index.html b/content/docs/en/2.3.1/client-libraries-java/index.html
index 7869634..c295850 100644
--- a/content/docs/en/2.3.1/client-libraries-java/index.html
+++ b/content/docs/en/2.3.1/client-libraries-java/index.html
@@ -329,7 +329,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/2.3.1/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/2.3.1/concepts-messaging.html b/content/docs/en/2.3.1/concepts-messaging.html
index 65f52e7..e3df0aa 100644
--- a/content/docs/en/2.3.1/concepts-messaging.html
+++ b/content/docs/en/2.3.1/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/2.3.1/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/2.3.1/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/2.3.1/concepts-messaging/index.html b/content/docs/en/2.3.1/concepts-messaging/index.html
index 65f52e7..e3df0aa 100644
--- a/content/docs/en/2.3.1/concepts-messaging/index.html
+++ b/content/docs/en/2.3.1/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/2.3.1/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/2.3.1/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/2.3.1/concepts-overview.html b/content/docs/en/2.3.1/concepts-overview.html
index 1a8ac72..011693e 100644
--- a/content/docs/en/2.3.1/concepts-overview.html
+++ b/content/docs/en/2.3.1/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/2.3.1/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/2.3.1/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/2.3.1/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/2.3.1/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/2.3.1/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/2.3.1/concepts-overview/index.html b/content/docs/en/2.3.1/concepts-overview/index.html
index 1a8ac72..011693e 100644
--- a/content/docs/en/2.3.1/concepts-overview/index.html
+++ b/content/docs/en/2.3.1/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/2.3.1/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/2.3.1/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/2.3.1/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/2.3.1/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/2.3.1/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/2.3.1/concepts-schema-registry.html b/content/docs/en/2.3.1/concepts-schema-registry.html
index 23e449c..60af267 100644
--- a/content/docs/en/2.3.1/concepts-schema-registry.html
+++ b/content/docs/en/2.3.1/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/2.3.1/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/2.3.1/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.3.1/concepts-schema-registry/index.html b/content/docs/en/2.3.1/concepts-schema-registry/index.html
index 23e449c..60af267 100644
--- a/content/docs/en/2.3.1/concepts-schema-registry/index.html
+++ b/content/docs/en/2.3.1/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/2.3.1/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/2.3.1/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.3.1/concepts-tiered-storage.html b/content/docs/en/2.3.1/concepts-tiered-storage.html
index 0f946cc..dedd1b4 100644
--- a/content/docs/en/2.3.1/concepts-tiered-storage.html
+++ b/content/docs/en/2.3.1/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/2.3.1/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.3.1/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.3.1/concepts-schema-registry"><span>Next</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 Foundat [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/concepts-tiered-storage/index.html b/content/docs/en/2.3.1/concepts-tiered-storage/index.html
index 0f946cc..dedd1b4 100644
--- a/content/docs/en/2.3.1/concepts-tiered-storage/index.html
+++ b/content/docs/en/2.3.1/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/2.3.1/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.3.1/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.3.1/concepts-schema-registry"><span>Next</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 Foundat [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/develop-binary-protocol.html b/content/docs/en/2.3.1/develop-binary-protocol.html
index 89969ca..6da8543 100644
--- a/content/docs/en/2.3.1/develop-binary-protocol.html
+++ b/content/docs/en/2.3.1/develop-binary-protocol.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.3.1/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.3.1/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/develop-binary-protocol/index.html b/content/docs/en/2.3.1/develop-binary-protocol/index.html
index 89969ca..6da8543 100644
--- a/content/docs/en/2.3.1/develop-binary-protocol/index.html
+++ b/content/docs/en/2.3.1/develop-binary-protocol/index.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.3.1/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.3.1/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/develop-load-manager.html b/content/docs/en/2.3.1/develop-load-manager.html
index 5669401..cda1130 100644
--- a/content/docs/en/2.3.1/develop-load-manager.html
+++ b/content/docs/en/2.3.1/develop-load-manager.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/2.3.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implement [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/develop-load-manager/index.html b/content/docs/en/2.3.1/develop-load-manager/index.html
index 5669401..cda1130 100644
--- a/content/docs/en/2.3.1/develop-load-manager/index.html
+++ b/content/docs/en/2.3.1/develop-load-manager/index.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/2.3.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implement [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/develop-schema.html b/content/docs/en/2.3.1/develop-schema.html
index 47adc49..97d94f7 100644
--- a/content/docs/en/2.3.1/develop-schema.html
+++ b/content/docs/en/2.3.1/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/2.3.1/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/2.3.1/concepts-schema-registry">schemas</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/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/2.3.1/develop-schema/index.html b/content/docs/en/2.3.1/develop-schema/index.html
index 47adc49..97d94f7 100644
--- a/content/docs/en/2.3.1/develop-schema/index.html
+++ b/content/docs/en/2.3.1/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/2.3.1/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/2.3.1/concepts-schema-registry">schemas</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/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/2.3.1/functions-overview.html b/content/docs/en/2.3.1/functions-overview.html
index 94c6a53..a3df394 100644
--- a/content/docs/en/2.3.1/functions-overview.html
+++ b/content/docs/en/2.3.1/functions-overview.html
@@ -426,7 +426,7 @@ Then <a href="#cluster-run-mode">deploy it</a> in your Pulsar cluster using the
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/2.3.1/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/2.3.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#progr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.1/functions-overview/index.html b/content/docs/en/2.3.1/functions-overview/index.html
index 94c6a53..a3df394 100644
--- a/content/docs/en/2.3.1/functions-overview/index.html
+++ b/content/docs/en/2.3.1/functions-overview/index.html
@@ -426,7 +426,7 @@ Then <a href="#cluster-run-mode">deploy it</a> in your Pulsar cluster using the
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/2.3.1/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/2.3.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#progr [...]
       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 a2586e9..5a5376d 100644
--- a/content/docs/en/2.3.1/sql-overview.html
+++ b/content/docs/en/2.3.1/sql-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 SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
+        </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/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
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 a2586e9..5a5376d 100644
--- a/content/docs/en/2.3.1/sql-overview/index.html
+++ b/content/docs/en/2.3.1/sql-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 SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
+        </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/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
diff --git a/content/docs/en/2.3.2/adaptors-kafka.html b/content/docs/en/2.3.2/adaptors-kafka.html
index b911f18..46f2e02 100644
--- a/content/docs/en/2.3.2/adaptors-kafka.html
+++ b/content/docs/en/2.3.2/adaptors-kafka.html
@@ -320,7 +320,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Set the subscription topic mode for consumers.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/2.3.2/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.2/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/adaptors-kafka/index.html b/content/docs/en/2.3.2/adaptors-kafka/index.html
index b911f18..46f2e02 100644
--- a/content/docs/en/2.3.2/adaptors-kafka/index.html
+++ b/content/docs/en/2.3.2/adaptors-kafka/index.html
@@ -320,7 +320,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Set the subscription topic mode for consumers.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/2.3.2/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.2/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/admin-api-partitioned-topics.html b/content/docs/en/2.3.2/admin-api-partitioned-topics.html
index b1d5236..a18defa 100644
--- a/content/docs/en/2.3.2/admin-api-partitioned-topics.html
+++ b/content/docs/en/2.3.2/admin-api-partitioned-topics.html
@@ -344,7 +344,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.3.2/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.3.2/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-he [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/admin-api-partitioned-topics/index.html b/content/docs/en/2.3.2/admin-api-partitioned-topics/index.html
index b1d5236..a18defa 100644
--- a/content/docs/en/2.3.2/admin-api-partitioned-topics/index.html
+++ b/content/docs/en/2.3.2/admin-api-partitioned-topics/index.html
@@ -344,7 +344,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.3.2/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/2.3.2/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-he [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/admin-api-schemas.html b/content/docs/en/2.3.2/admin-api-schemas.html
index 7b10074..7f45b6d 100644
--- a/content/docs/en/2.3.2/admin-api-schemas.html
+++ b/content/docs/en/2.3.2/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/2.3.2/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/2.3.2/admin-api-schemas/index.html b/content/docs/en/2.3.2/admin-api-schemas/index.html
index 7b10074..7f45b6d 100644
--- a/content/docs/en/2.3.2/admin-api-schemas/index.html
+++ b/content/docs/en/2.3.2/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/2.3.2/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/2.3.2/client-libraries-java.html b/content/docs/en/2.3.2/client-libraries-java.html
index d098acc..668e7cc 100644
--- a/content/docs/en/2.3.2/client-libraries-java.html
+++ b/content/docs/en/2.3.2/client-libraries-java.html
@@ -329,7 +329,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/2.3.2/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/2.3.2/client-libraries-java/index.html b/content/docs/en/2.3.2/client-libraries-java/index.html
index d098acc..668e7cc 100644
--- a/content/docs/en/2.3.2/client-libraries-java/index.html
+++ b/content/docs/en/2.3.2/client-libraries-java/index.html
@@ -329,7 +329,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/2.3.2/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/2.3.2/concepts-messaging.html b/content/docs/en/2.3.2/concepts-messaging.html
index 0618065..eab31d1 100644
--- a/content/docs/en/2.3.2/concepts-messaging.html
+++ b/content/docs/en/2.3.2/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/2.3.2/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/2.3.2/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/2.3.2/concepts-messaging/index.html b/content/docs/en/2.3.2/concepts-messaging/index.html
index 0618065..eab31d1 100644
--- a/content/docs/en/2.3.2/concepts-messaging/index.html
+++ b/content/docs/en/2.3.2/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/2.3.2/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/2.3.2/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/2.3.2/concepts-overview.html b/content/docs/en/2.3.2/concepts-overview.html
index e9cd17c..26051d8 100644
--- a/content/docs/en/2.3.2/concepts-overview.html
+++ b/content/docs/en/2.3.2/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/2.3.2/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/2.3.2/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/2.3.2/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/2.3.2/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/2.3.2/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/2.3.2/concepts-overview/index.html b/content/docs/en/2.3.2/concepts-overview/index.html
index e9cd17c..26051d8 100644
--- a/content/docs/en/2.3.2/concepts-overview/index.html
+++ b/content/docs/en/2.3.2/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/2.3.2/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/2.3.2/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/2.3.2/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/2.3.2/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/2.3.2/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/2.3.2/concepts-schema-registry.html b/content/docs/en/2.3.2/concepts-schema-registry.html
index e2667be..a9c5103 100644
--- a/content/docs/en/2.3.2/concepts-schema-registry.html
+++ b/content/docs/en/2.3.2/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/2.3.2/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/2.3.2/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.3.2/concepts-schema-registry/index.html b/content/docs/en/2.3.2/concepts-schema-registry/index.html
index e2667be..a9c5103 100644
--- a/content/docs/en/2.3.2/concepts-schema-registry/index.html
+++ b/content/docs/en/2.3.2/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/2.3.2/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/2.3.2/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/2.3.2/concepts-tiered-storage.html b/content/docs/en/2.3.2/concepts-tiered-storage.html
index ec8adb8..85e7ee6 100644
--- a/content/docs/en/2.3.2/concepts-tiered-storage.html
+++ b/content/docs/en/2.3.2/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/2.3.2/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.3.2/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.3.2/concepts-schema-registry"><span>Next</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 Foundat [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/concepts-tiered-storage/index.html b/content/docs/en/2.3.2/concepts-tiered-storage/index.html
index ec8adb8..85e7ee6 100644
--- a/content/docs/en/2.3.2/concepts-tiered-storage/index.html
+++ b/content/docs/en/2.3.2/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/2.3.2/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.3.2/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/2.3.2/concepts-schema-registry"><span>Next</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 Foundat [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/develop-binary-protocol.html b/content/docs/en/2.3.2/develop-binary-protocol.html
index 039464a..afb8dbd 100644
--- a/content/docs/en/2.3.2/develop-binary-protocol.html
+++ b/content/docs/en/2.3.2/develop-binary-protocol.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.3.2/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.3.2/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/develop-binary-protocol/index.html b/content/docs/en/2.3.2/develop-binary-protocol/index.html
index 039464a..afb8dbd 100644
--- a/content/docs/en/2.3.2/develop-binary-protocol/index.html
+++ b/content/docs/en/2.3.2/develop-binary-protocol/index.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.3.2/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/2.3.2/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/develop-load-manager.html b/content/docs/en/2.3.2/develop-load-manager.html
index f991d8c..3fecdf1 100644
--- a/content/docs/en/2.3.2/develop-load-manager.html
+++ b/content/docs/en/2.3.2/develop-load-manager.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/2.3.2/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.2/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implement [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/develop-load-manager/index.html b/content/docs/en/2.3.2/develop-load-manager/index.html
index f991d8c..3fecdf1 100644
--- a/content/docs/en/2.3.2/develop-load-manager/index.html
+++ b/content/docs/en/2.3.2/develop-load-manager/index.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/2.3.2/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.2/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implement [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/develop-schema.html b/content/docs/en/2.3.2/develop-schema.html
index 8ea1c2c..4f53a1d 100644
--- a/content/docs/en/2.3.2/develop-schema.html
+++ b/content/docs/en/2.3.2/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/2.3.2/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/2.3.2/concepts-schema-registry">schemas</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/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/2.3.2/develop-schema/index.html b/content/docs/en/2.3.2/develop-schema/index.html
index 8ea1c2c..4f53a1d 100644
--- a/content/docs/en/2.3.2/develop-schema/index.html
+++ b/content/docs/en/2.3.2/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/2.3.2/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/2.3.2/concepts-schema-registry">schemas</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/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/2.3.2/functions-overview.html b/content/docs/en/2.3.2/functions-overview.html
index b42afce..9b3e2f6 100644
--- a/content/docs/en/2.3.2/functions-overview.html
+++ b/content/docs/en/2.3.2/functions-overview.html
@@ -426,7 +426,7 @@ Then <a href="#cluster-run-mode">deploy it</a> in your Pulsar cluster using the
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/2.3.2/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/2.3.2/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.2/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#progr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/2.3.2/functions-overview/index.html b/content/docs/en/2.3.2/functions-overview/index.html
index b42afce..9b3e2f6 100644
--- a/content/docs/en/2.3.2/functions-overview/index.html
+++ b/content/docs/en/2.3.2/functions-overview/index.html
@@ -426,7 +426,7 @@ Then <a href="#cluster-run-mode">deploy it</a> in your Pulsar cluster using the
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/2.3.2/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/2.3.2/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.3.2/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/2.3.2/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#progr [...]
       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 73b52d5..dab5b0b 100644
--- a/content/docs/en/2.3.2/sql-overview.html
+++ b/content/docs/en/2.3.2/sql-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 SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
+        </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/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
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 73b52d5..dab5b0b 100644
--- a/content/docs/en/2.3.2/sql-overview/index.html
+++ b/content/docs/en/2.3.2/sql-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 SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
+        </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/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
diff --git a/content/docs/en/adaptors-kafka.html b/content/docs/en/adaptors-kafka.html
index 64bb53b..e1eea65 100644
--- a/content/docs/en/adaptors-kafka.html
+++ b/content/docs/en/adaptors-kafka.html
@@ -319,7 +319,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Set the subscription topic mode for consumers.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li><a href="#u [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li><a href="# [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/adaptors-kafka/index.html b/content/docs/en/adaptors-kafka/index.html
index 64bb53b..e1eea65 100644
--- a/content/docs/en/adaptors-kafka/index.html
+++ b/content/docs/en/adaptors-kafka/index.html
@@ -319,7 +319,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Set the subscription topic mode for consumers.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li><a href="#u [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li><a href="# [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-partitioned-topics.html b/content/docs/en/admin-api-partitioned-topics.html
index d4b8c96..ac8c715 100644
--- a/content/docs/en/admin-api-partitioned-topics.html
+++ b/content/docs/en/admin-api-partitioned-topics.html
@@ -344,7 +344,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-headings">< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-headings"><li> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-partitioned-topics/index.html b/content/docs/en/admin-api-partitioned-topics/index.html
index d4b8c96..ac8c715 100644
--- a/content/docs/en/admin-api-partitioned-topics/index.html
+++ b/content/docs/en/admin-api-partitioned-topics/index.html
@@ -344,7 +344,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-headings">< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-headings"><li> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/admin-api-schemas.html b/content/docs/en/admin-api-schemas.html
index 9ee8132..d3b11ba 100644
--- a/content/docs/en/admin-api-schemas.html
+++ b/content/docs/en/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/admin-api-schemas/index.html b/content/docs/en/admin-api-schemas/index.html
index 9ee8132..d3b11ba 100644
--- a/content/docs/en/admin-api-schemas/index.html
+++ b/content/docs/en/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/en/concepts-schema-registry#supported-schema-formats">here</a>. If it
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it
 is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties
diff --git a/content/docs/en/client-libraries-java.html b/content/docs/en/client-libraries-java.html
index 57ba8e4..7c20125 100644
--- a/content/docs/en/client-libraries-java.html
+++ b/content/docs/en/client-libraries-java.html
@@ -470,7 +470,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/client-libraries-java/index.html b/content/docs/en/client-libraries-java/index.html
index 57ba8e4..7c20125 100644
--- a/content/docs/en/client-libraries-java/index.html
+++ b/content/docs/en/client-libraries-java/index.html
@@ -470,7 +470,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/concepts-messaging.html b/content/docs/en/concepts-messaging.html
index 07ab0f2..88c4e68 100644
--- a/content/docs/en/concepts-messaging.html
+++ b/content/docs/en/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/concepts-messaging/index.html b/content/docs/en/concepts-messaging/index.html
index 07ab0f2..88c4e68 100644
--- a/content/docs/en/concepts-messaging/index.html
+++ b/content/docs/en/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/concepts-overview.html b/content/docs/en/concepts-overview.html
index 3bb4e44..b69b756 100644
--- a/content/docs/en/concepts-overview.html
+++ b/content/docs/en/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="footer"><secti [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/concepts-overview/index.html b/content/docs/en/concepts-overview/index.html
index 3bb4e44..b69b756 100644
--- a/content/docs/en/concepts-overview/index.html
+++ b/content/docs/en/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="footer"><secti [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/concepts-schema-registry.html b/content/docs/en/concepts-schema-registry.html
index 0c46588..5704031 100644
--- a/content/docs/en/concepts-schema-registry.html
+++ b/content/docs/en/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schemas work</a></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/concepts-schema-registry/index.html b/content/docs/en/concepts-schema-registry/index.html
index 0c46588..5704031 100644
--- a/content/docs/en/concepts-schema-registry/index.html
+++ b/content/docs/en/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/en/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/en/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schemas work</a></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/en/concepts-tiered-storage.html b/content/docs/en/concepts-tiered-storage.html
index 5e7dac8..179b481 100644
--- a/content/docs/en/concepts-tiered-storage.html
+++ b/content/docs/en/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/concepts-schema-registry"><span>Schema Registry</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 Foundati [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/concepts-schema-registry"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rig [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/concepts-tiered-storage/index.html b/content/docs/en/concepts-tiered-storage/index.html
index 5e7dac8..179b481 100644
--- a/content/docs/en/concepts-tiered-storage/index.html
+++ b/content/docs/en/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/concepts-schema-registry"><span>Schema Registry</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 Foundati [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/concepts-schema-registry"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rig [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/develop-binary-protocol.html b/content/docs/en/develop-binary-protocol.html
index 69c0d1d..7b10f5a 100644
--- a/content/docs/en/develop-binary-protocol.html
+++ b/content/docs/en/develop-binary-protocol.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li><a href="#pay [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/develop-binary-protocol/index.html b/content/docs/en/develop-binary-protocol/index.html
index 69c0d1d..7b10f5a 100644
--- a/content/docs/en/develop-binary-protocol/index.html
+++ b/content/docs/en/develop-binary-protocol/index.html
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li><a href="#pay [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/develop-load-manager.html b/content/docs/en/develop-load-manager.html
index 4a4b03e..3e75517 100644
--- a/content/docs/en/develop-load-manager.html
+++ b/content/docs/en/develop-load-manager.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implemen [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implementation">Imple [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/develop-load-manager/index.html b/content/docs/en/develop-load-manager/index.html
index 4a4b03e..3e75517 100644
--- a/content/docs/en/develop-load-manager/index.html
+++ b/content/docs/en/develop-load-manager/index.html
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implemen [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implementation">Imple [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/develop-schema.html b/content/docs/en/develop-schema.html
index 8d57d02..81a09fb 100644
--- a/content/docs/en/develop-schema.html
+++ b/content/docs/en/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use  [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/concepts-schema-registry">schemas</a> in <a [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/develop-schema/index.html b/content/docs/en/develop-schema/index.html
index 8d57d02..81a09fb 100644
--- a/content/docs/en/develop-schema/index.html
+++ b/content/docs/en/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/en/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use  [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/en/concepts-schema-registry">schemas</a> in <a [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/developing-schema.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href= [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/en/functions-overview.html b/content/docs/en/functions-overview.html
index 7aefcf9..54974ee 100644
--- a/content/docs/en/functions-overview.html
+++ b/content/docs/en/functions-overview.html
@@ -487,7 +487,7 @@ Instead of passing a string via the CLI, you can trigger Pulsar Functions with t
 <p>Pulsar Functions that use <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. Pulsar installation, including the local standalone installation, includes deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#programmin [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#programming-model [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/functions-overview/index.html b/content/docs/en/functions-overview/index.html
index 7aefcf9..54974ee 100644
--- a/content/docs/en/functions-overview/index.html
+++ b/content/docs/en/functions-overview/index.html
@@ -487,7 +487,7 @@ Instead of passing a string via the CLI, you can trigger Pulsar Functions with t
 <p>Pulsar Functions that use <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/en/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. Pulsar installation, including the local standalone installation, includes deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#programmin [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#programming-model [...]
       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 7891b8f..35bd8b5 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++) {
@@ -319,7 +319,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Set the subscription topic mode for consumers.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/next/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/next/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/adaptors-kafka/index.html b/content/docs/en/next/adaptors-kafka/index.html
index 7891b8f..35bd8b5 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++) {
@@ -319,7 +319,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Set the subscription topic mode for consumers.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/admin-api-schemas"><span class="arrow-prev">← </span><span>Schemas</span></a><a class="docs-next button" href="/docs/en/next/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/admin-api-schemas"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/next/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/adaptors-spark.html b/content/docs/en/next/adaptors-spark.html
index 108c765..16afe66 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 108c765..16afe66 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 6183716..c1d1ea5 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 6183716..c1d1ea5 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 de0d3d2..7f8e55c 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 de0d3d2..7f8e55c 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 fd96300..c1688d4 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 fd96300..c1688d4 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 f1ef4e9..5a66ca8 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 f1ef4e9..5a66ca8 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-persistent-topics.html b/content/docs/en/next/admin-api-non-persistent-topics.html
index 41ae93e..b04e190 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++) {
@@ -197,6 +197,13 @@ admin.nonPersistentTopics().getInternalStats(topic);
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="create-partitioned-topic"></a><a href="#create-partitioned-topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.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>Partitioned topics in Pulsar must be explicitly created. When creating a new partitioned topic you need to provide a name for the topic as well as the desired number of partitions.</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>By default, after 60 seconds of creation, topics are considered inactive and deleted automatically to prevent from generating trash data.</p>
+<p>To disable this feature, set <code>brokerDeleteInactiveTopicsEnabled</code> to <code>false</code>.</p>
+<p>To change the frequency of checking inactive topics, set <code>brokerDeleteInactiveTopicsFrequencySeconds</code> to your desired value.</p>
+<p>For more information about these two parameters, see <a href="/docs/en/next/reference-configuration#broker">here</a>.</p>
+</blockquote>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin non-persistent create-partitioned-topic \</span>
   non-persistent://my-tenant/my-namespace/my-topic \
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 41ae93e..b04e190 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++) {
@@ -197,6 +197,13 @@ admin.nonPersistentTopics().getInternalStats(topic);
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="create-partitioned-topic"></a><a href="#create-partitioned-topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.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>Partitioned topics in Pulsar must be explicitly created. When creating a new partitioned topic you need to provide a name for the topic as well as the desired number of partitions.</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>By default, after 60 seconds of creation, topics are considered inactive and deleted automatically to prevent from generating trash data.</p>
+<p>To disable this feature, set <code>brokerDeleteInactiveTopicsEnabled</code> to <code>false</code>.</p>
+<p>To change the frequency of checking inactive topics, set <code>brokerDeleteInactiveTopicsFrequencySeconds</code> to your desired value.</p>
+<p>For more information about these two parameters, see <a href="/docs/en/next/reference-configuration#broker">here</a>.</p>
+</blockquote>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin non-persistent create-partitioned-topic \</span>
   non-persistent://my-tenant/my-namespace/my-topic \
diff --git a/content/docs/en/next/admin-api-overview.html b/content/docs/en/next/admin-api-overview.html
index 8e6e8fa..df48201 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 8e6e8fa..df48201 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 1085309..f43e95f 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++) {
@@ -82,6 +82,13 @@
 <h3><a class="anchor" aria-hidden="true" id="create"></a><a href="#create" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>Partitioned topics in Pulsar must be explicitly created. When creating a new partitioned topic you
 need to provide a name for the topic as well as the desired number of partitions.</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>By default, after 60 seconds of creation, topics are considered inactive and deleted automatically to prevent from generating trash data.</p>
+<p>To disable this feature, set <code>brokerDeleteInactiveTopicsEnabled</code>  to <code>false</code>.</p>
+<p>To change the frequency of checking inactive topics, set <code>brokerDeleteInactiveTopicsFrequencySeconds</code> to your desired value.</p>
+<p>For more information about these two parameters, see <a href="/docs/en/next/reference-configuration#broker">here</a>.</p>
+</blockquote>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>You can create partitioned topics using the <a href="/docs/en/next/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>
 command and specifying the topic name as an argument and the number of partitions using the <code>-p</code> or <code>--partitions</code> flag.
@@ -102,6 +109,13 @@ admin.persistentTopics().createPartitionedTopic(topicName, numPartitions);
 <h3><a class="anchor" aria-hidden="true" id="create-1"></a><a href="#create-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  [...]
 <p>Nonpartitioned topics in Pulsar must be explicitly created if allowAutoTopicCreation or createIfMissing is disabled.
 When creating a non-partitioned topic, you need to provide a topic name.</p>
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="note-1"></a><a href="#note-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. [...]
+<p>By default, after 60 seconds of creation, topics are considered inactive and deleted automatically to prevent from generating trash data.</p>
+<p>To disable this feature, set <code>brokerDeleteInactiveTopicsEnabled</code> to <code>false</code>.</p>
+<p>To change the frequency of checking inactive topics, set <code>brokerDeleteInactiveTopicsFrequencySeconds</code> to your desired value.</p>
+<p>For more information about these two parameters, see <a href="/docs/en/next/reference-configuration#broker">here</a>.</p>
+</blockquote>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-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- [...]
 <p>You can create non-partitioned topics using the <a href="/docs/en/next/pulsar-admin#create"><code>create</code></a>
 command and specifying the topic name as an argument. This is an example command:</p>
@@ -344,7 +358,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/next/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-h [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/next/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-head [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
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 1085309..f43e95f 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++) {
@@ -82,6 +82,13 @@
 <h3><a class="anchor" aria-hidden="true" id="create"></a><a href="#create" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>Partitioned topics in Pulsar must be explicitly created. When creating a new partitioned topic you
 need to provide a name for the topic as well as the desired number of partitions.</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>By default, after 60 seconds of creation, topics are considered inactive and deleted automatically to prevent from generating trash data.</p>
+<p>To disable this feature, set <code>brokerDeleteInactiveTopicsEnabled</code>  to <code>false</code>.</p>
+<p>To change the frequency of checking inactive topics, set <code>brokerDeleteInactiveTopicsFrequencySeconds</code> to your desired value.</p>
+<p>For more information about these two parameters, see <a href="/docs/en/next/reference-configuration#broker">here</a>.</p>
+</blockquote>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>You can create partitioned topics using the <a href="/docs/en/next/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>
 command and specifying the topic name as an argument and the number of partitions using the <code>-p</code> or <code>--partitions</code> flag.
@@ -102,6 +109,13 @@ admin.persistentTopics().createPartitionedTopic(topicName, numPartitions);
 <h3><a class="anchor" aria-hidden="true" id="create-1"></a><a href="#create-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  [...]
 <p>Nonpartitioned topics in Pulsar must be explicitly created if allowAutoTopicCreation or createIfMissing is disabled.
 When creating a non-partitioned topic, you need to provide a topic name.</p>
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="note-1"></a><a href="#note-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. [...]
+<p>By default, after 60 seconds of creation, topics are considered inactive and deleted automatically to prevent from generating trash data.</p>
+<p>To disable this feature, set <code>brokerDeleteInactiveTopicsEnabled</code> to <code>false</code>.</p>
+<p>To change the frequency of checking inactive topics, set <code>brokerDeleteInactiveTopicsFrequencySeconds</code> to your desired value.</p>
+<p>For more information about these two parameters, see <a href="/docs/en/next/reference-configuration#broker">here</a>.</p>
+</blockquote>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-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- [...]
 <p>You can create non-partitioned topics using the <a href="/docs/en/next/pulsar-admin#create"><code>create</code></a>
 command and specifying the topic name as an argument. This is an example command:</p>
@@ -344,7 +358,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/next/admin-api-schemas"><span>Schemas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-h [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/en/next/admin-api-schemas"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-head [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/admin-api-permissions.html b/content/docs/en/next/admin-api-permissions.html
index 51bf91e..289e697 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 51bf91e..289e697 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 75fb740..dac789a 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 75fb740..dac789a 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 63aa7ed..dff7b3e 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 63aa7ed..dff7b3e 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 f00d1d4..d1bd4ae 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 f00d1d4..d1bd4ae 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 4ab8b77..563fb4d 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 4ab8b77..563fb4d 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 878cf26..3684f94 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 878cf26..3684f94 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 b79fbf7..64b5cc5 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 b79fbf7..64b5cc5 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 a7199fd..728e20c 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 a7199fd..728e20c 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 ee3fd06..9aac690 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 ee3fd06..9aac690 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 2ff60a4..8977b73 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 2ff60a4..8977b73 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 43babdd..33cd1fb 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 43babdd..33cd1fb 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 7c00540..8b2cc30 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 7c00540..8b2cc30 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 3898ae6..e44597c 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++) {
@@ -470,7 +470,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/next/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/next/client-libraries-java/index.html b/content/docs/en/next/client-libraries-java/index.html
index 3898ae6..e44597c 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++) {
@@ -470,7 +470,7 @@ Reader reader = pulsarClient.newReader()
 <p>In the example above, a <code>Reader</code> object is instantiated for a specific topic and message (by ID); the reader then iterates over each message in the topic after the message identified by <code>msgIdBytes</code> (how that value is obtained depends on the application).</p>
 <p>The code sample above shows pointing the <code>Reader</code> object to a specific message (by ID), but you can also use <code>MessageId.earliest</code> to point to the earliest available message on the topic of <code>MessageId.latest</code> to point to the most recent available message.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemas"></a><a href="#schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="/docs/en/next/concepts-schema-registry">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
+<p>In Pulsar, all message data consists of byte arrays &quot;under the hood.&quot; <a href="concepts-schema-registry.md">Message schemas</a> enable you to use other types of data when constructing and handling messages (from simple types like strings to more complex, application-specific types). If you construct, say, a <a href="#producers">producer</a> without specifying a schema, then the producer can only produce messages of type <code>byte[]</code>. Here's an example:</p>
 <pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
         .topic(topic)
         .create();
diff --git a/content/docs/en/next/client-libraries-python.html b/content/docs/en/next/client-libraries-python.html
index c20867b..59df29f 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 c20867b..59df29f 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 ab8a3ae..e7449e5 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 ab8a3ae..e7449e5 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 c467203..b7536d4 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 c467203..b7536d4 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 1ee5298..52ef13a 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 1ee5298..52ef13a 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 a07f2e5..bfda92e 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 a07f2e5..bfda92e 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 77d1388..54c78e9 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 77d1388..54c78e9 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 f438776..a613a79 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++) {
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/next/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/next/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/next/concepts-messaging/index.html b/content/docs/en/next/concepts-messaging/index.html
index f438776..a613a79 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++) {
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/en/next/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/en/next/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/en/next/concepts-multi-tenancy.html b/content/docs/en/next/concepts-multi-tenancy.html
index c8d68c8..6692b53 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 c8d68c8..6692b53 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 40d4a8c..1b63d02 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++) {
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/next/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/next/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/next/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/next/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/next/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="foot [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/next/concepts-overview/index.html b/content/docs/en/next/concepts-overview/index.html
index 40d4a8c..1b63d02 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++) {
@@ -97,7 +97,7 @@
 <li><a href="/docs/en/next/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/en/next/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/en/next/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/en/next/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/en/next/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="foot [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/next/concepts-replication.html b/content/docs/en/next/concepts-replication.html
index 79f9d57..b6b43ab 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 79f9d57..b6b43ab 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 6e3de41..6a0e8fa 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++) {
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/next/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/next/concepts-schema-registry"><span>Schema Registry</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 Softwar [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/next/concepts-schema-registry"><span>Next</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 Foundatio [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/concepts-tiered-storage/index.html b/content/docs/en/next/concepts-tiered-storage/index.html
index 6e3de41..6a0e8fa 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++) {
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/en/next/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/next/concepts-schema-registry"><span>Schema Registry</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 Softwar [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/en/next/concepts-schema-registry"><span>Next</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 Foundatio [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/concepts-topic-compaction.html b/content/docs/en/next/concepts-topic-compaction.html
index 660bb21..999789f 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 660bb21..999789f 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 974677b..da99cbd 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 974677b..da99cbd 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 d6240d7..f851636 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 d6240d7..f851636 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 8a42d78..5f4937e 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 8a42d78..5f4937e 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 64f5a14..baba808 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 64f5a14..baba808 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 bf039ac..4f9c7d3 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 bf039ac..4f9c7d3 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 24744d7..e6ab664 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 24744d7..e6ab664 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 c6973ad..bf22167 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 c6973ad..bf22167 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 f480183..0a8c785 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 f480183..0a8c785 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 b0509a7..e277022 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 b0509a7..e277022 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 52d840c..d18fd4a 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 52d840c..d18fd4a 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 ccc2a50..006f032 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++) {
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 ccc2a50..006f032 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++) {
diff --git a/content/docs/en/next/deploy-bare-metal.html b/content/docs/en/next/deploy-bare-metal.html
index eafac85..2a84446 100644
--- a/content/docs/en/next/deploy-bare-metal.html
+++ b/content/docs/en/next/deploy-bare-metal.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><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/index.html b/content/docs/en/next/deploy-bare-metal/index.html
index eafac85..2a84446 100644
--- a/content/docs/en/next/deploy-bare-metal/index.html
+++ b/content/docs/en/next/deploy-bare-metal/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-dcos.html b/content/docs/en/next/deploy-dcos.html
index 78099f2..2687dc6 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 78099f2..2687dc6 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 eb00a75..29b76eb 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 eb00a75..29b76eb 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 007875d..3826b8a 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 007875d..3826b8a 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 ee94d47..61f1cc1 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++) {
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/next/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple command [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/next/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li><a  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/develop-binary-protocol/index.html b/content/docs/en/next/develop-binary-protocol/index.html
index ee94d47..61f1cc1 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++) {
@@ -522,7 +522,7 @@ response will contain actual metadata.</p>
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/next/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple command [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/en/next/develop-schema"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li><a  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/develop-cpp.html b/content/docs/en/next/develop-cpp.html
index 4cf5a77..8402811 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 4cf5a77..8402811 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 aeb9919..ef3d2be 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++) {
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/next/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/next/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implementat [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/develop-load-manager/index.html b/content/docs/en/next/develop-load-manager/index.html
index aeb9919..ef3d2be 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++) {
@@ -243,7 +243,7 @@ by the same message rates will receive less load. In particular, it tries to ens
 then all machines are approximately overloaded. In the case in which a broker's max usage exceeds the overload
 threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
 assigned.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/en/next/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/develop-schema"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/next/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implementat [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/develop-tools.html b/content/docs/en/next/develop-tools.html
index 02a1f75..5353202 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 02a1f75..5353202 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-api.html b/content/docs/en/next/functions-api.html
index 2558d87..9df5d21 100644
--- a/content/docs/en/next/functions-api.html
+++ b/content/docs/en/next/functions-api.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><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-api/index.html b/content/docs/en/next/functions-api/index.html
index 2558d87..9df5d21 100644
--- a/content/docs/en/next/functions-api/index.html
+++ b/content/docs/en/next/functions-api/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 3e8b4e8..2d50ff9 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 3e8b4e8..2d50ff9 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-debugging.html b/content/docs/en/next/functions-debugging.html
index 6341dab..eca1ba8 100644
--- a/content/docs/en/next/functions-debugging.html
+++ b/content/docs/en/next/functions-debugging.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><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-debugging/index.html b/content/docs/en/next/functions-debugging/index.html
index 6341dab..eca1ba8 100644
--- a/content/docs/en/next/functions-debugging/index.html
+++ b/content/docs/en/next/functions-debugging/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 9294dfc..eb9b083 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 9294dfc..eb9b083 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-deploying.html b/content/docs/en/next/functions-deploying.html
index 8ba32d4..b519bfc 100644
--- a/content/docs/en/next/functions-deploying.html
+++ b/content/docs/en/next/functions-deploying.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><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-deploying/index.html b/content/docs/en/next/functions-deploying/index.html
index 8ba32d4..b519bfc 100644
--- a/content/docs/en/next/functions-deploying/index.html
+++ b/content/docs/en/next/functions-deploying/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 2ebfcd2..c4cfc84 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 2ebfcd2..c4cfc84 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-guarantees.html b/content/docs/en/next/functions-guarantees.html
index 4b9d54b..7c81466 100644
--- a/content/docs/en/next/functions-guarantees.html
+++ b/content/docs/en/next/functions-guarantees.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><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-guarantees/index.html b/content/docs/en/next/functions-guarantees/index.html
index 4b9d54b..7c81466 100644
--- a/content/docs/en/next/functions-guarantees/index.html
+++ b/content/docs/en/next/functions-guarantees/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-metrics.html b/content/docs/en/next/functions-metrics.html
index 66a5e39..23cc314 100644
--- a/content/docs/en/next/functions-metrics.html
+++ b/content/docs/en/next/functions-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/functions-metrics/index.html b/content/docs/en/next/functions-metrics/index.html
index 66a5e39..23cc314 100644
--- a/content/docs/en/next/functions-metrics/index.html
+++ b/content/docs/en/next/functions-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/functions-overview-new.html b/content/docs/en/next/functions-overview-new.html
index a34f2dc..523b584 100644
--- a/content/docs/en/next/functions-overview-new.html
+++ b/content/docs/en/next/functions-overview-new.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><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-new/index.html b/content/docs/en/next/functions-overview-new/index.html
index a34f2dc..523b584 100644
--- a/content/docs/en/next/functions-overview-new/index.html
+++ b/content/docs/en/next/functions-overview-new/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 ef184b0..47cda06 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 ef184b0..47cda06 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-quickstart.html b/content/docs/en/next/functions-quickstart.html
index c07ba36..fa19be9 100644
--- a/content/docs/en/next/functions-quickstart.html
+++ b/content/docs/en/next/functions-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/functions-quickstart/index.html b/content/docs/en/next/functions-quickstart/index.html
index c07ba36..fa19be9 100644
--- a/content/docs/en/next/functions-quickstart/index.html
+++ b/content/docs/en/next/functions-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/functions-runtime.html b/content/docs/en/next/functions-runtime.html
index b7ff4de..23a6699 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 b7ff4de..23a6699 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-state.html b/content/docs/en/next/functions-state.html
index 55afa8c..4d2bdd4 100644
--- a/content/docs/en/next/functions-state.html
+++ b/content/docs/en/next/functions-state.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><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-state/index.html b/content/docs/en/next/functions-state/index.html
index 55afa8c..4d2bdd4 100644
--- a/content/docs/en/next/functions-state/index.html
+++ b/content/docs/en/next/functions-state/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 4c2efaf..58db03f 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 4c2efaf..58db03f 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.html b/content/docs/en/next/io-cdc.html
index 86d30bb..231bfcc 100644
--- a/content/docs/en/next/io-cdc.html
+++ b/content/docs/en/next/io-cdc.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><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/index.html b/content/docs/en/next/io-cdc/index.html
index 86d30bb..231bfcc 100644
--- a/content/docs/en/next/io-cdc/index.html
+++ b/content/docs/en/next/io-cdc/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-connectors.html b/content/docs/en/next/io-connectors.html
index 638828b..2381988 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++) {
diff --git a/content/docs/en/next/io-connectors/index.html b/content/docs/en/next/io-connectors/index.html
index 638828b..2381988 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++) {
diff --git a/content/docs/en/next/io-develop.html b/content/docs/en/next/io-develop.html
index ddf5cd0..2ed1519 100644
--- a/content/docs/en/next/io-develop.html
+++ b/content/docs/en/next/io-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/io-develop/index.html b/content/docs/en/next/io-develop/index.html
index ddf5cd0..2ed1519 100644
--- a/content/docs/en/next/io-develop/index.html
+++ b/content/docs/en/next/io-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/io-managing.html b/content/docs/en/next/io-managing.html
index 2b9f1ef..6d761b7 100644
--- a/content/docs/en/next/io-managing.html
+++ b/content/docs/en/next/io-managing.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><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-managing/index.html b/content/docs/en/next/io-managing/index.html
index 2b9f1ef..6d761b7 100644
--- a/content/docs/en/next/io-managing/index.html
+++ b/content/docs/en/next/io-managing/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-overview.html b/content/docs/en/next/io-overview.html
index a613fed..4ab7775 100644
--- a/content/docs/en/next/io-overview.html
+++ b/content/docs/en/next/io-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/io-overview/index.html b/content/docs/en/next/io-overview/index.html
index a613fed..4ab7775 100644
--- a/content/docs/en/next/io-overview/index.html
+++ b/content/docs/en/next/io-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/io-quickstart.html b/content/docs/en/next/io-quickstart.html
index 2789d39..83a5c0a 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 2789d39..83a5c0a 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/pulsar-2.0.html b/content/docs/en/next/pulsar-2.0.html
index 0d57f14..dfdb9d0 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 0d57f14..dfdb9d0 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 4cdcc4d..f307531 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++) {
@@ -1974,6 +1974,13 @@
 </table>
 <h3><a class="anchor" aria-hidden="true" id="create-partitioned-topic"></a><a href="#create-partitioned-topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.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>Create a partitioned topic. A partitioned topic must be created before producers can publish to it.</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>By default, after 60 seconds of creation, topics are considered inactive and deleted automatically to prevent from generating trash data.</p>
+<p>To disable this feature, set <code>brokerDeleteInactiveTopicsEnabled</code> to <code>false</code>.</p>
+<p>To change the frequency of checking inactive topics, set <code>brokerDeleteInactiveTopicsFrequencySeconds</code> to your desired value.</p>
+<p>For more information about these two parameters, see <a href="/docs/en/next/reference-configuration#broker">here</a>.</p>
+</blockquote>
 <p>Usage</p>
 <pre><code class="hljs css language-bash">$ pulsar-admin topics create-partitioned-topic {persistent|non-persistent}://tenant/namespace/topic options
 </code></pre>
@@ -1993,6 +2000,13 @@
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="create-5"></a><a href="#create-5" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Creates a non-partitioned topic. A non-partitioned topic must explicitly be created by the user if allowAutoTopicCreation or createIfMissing is disabled.</p>
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="note-1"></a><a href="#note-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. [...]
+<p>By default, after 60 seconds of creation, topics are considered inactive and deleted automatically to prevent from generating trash data.</p>
+<p>To disable this feature, set <code>brokerDeleteInactiveTopicsEnabled</code>  to <code>false</code>.</p>
+<p>To change the frequency of checking inactive topics, set <code>brokerDeleteInactiveTopicsFrequencySeconds</code> to your desired value.</p>
+<p>For more information about these two parameters, see <a href="/docs/en/next/reference-configuration#broker">here</a>.</p>
+</blockquote>
 <p>Usage</p>
 <pre><code class="hljs css language-bash">$ pulsar-admin topics create {persistent|non-persistent}://tenant/namespace/topic
 </code></pre>
diff --git a/content/docs/en/next/pulsar-admin/index.html b/content/docs/en/next/pulsar-admin/index.html
index 4cdcc4d..f307531 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++) {
@@ -1974,6 +1974,13 @@
 </table>
 <h3><a class="anchor" aria-hidden="true" id="create-partitioned-topic"></a><a href="#create-partitioned-topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.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>Create a partitioned topic. A partitioned topic must be created before producers can publish to it.</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>By default, after 60 seconds of creation, topics are considered inactive and deleted automatically to prevent from generating trash data.</p>
+<p>To disable this feature, set <code>brokerDeleteInactiveTopicsEnabled</code> to <code>false</code>.</p>
+<p>To change the frequency of checking inactive topics, set <code>brokerDeleteInactiveTopicsFrequencySeconds</code> to your desired value.</p>
+<p>For more information about these two parameters, see <a href="/docs/en/next/reference-configuration#broker">here</a>.</p>
+</blockquote>
 <p>Usage</p>
 <pre><code class="hljs css language-bash">$ pulsar-admin topics create-partitioned-topic {persistent|non-persistent}://tenant/namespace/topic options
 </code></pre>
@@ -1993,6 +2000,13 @@
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="create-5"></a><a href="#create-5" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Creates a non-partitioned topic. A non-partitioned topic must explicitly be created by the user if allowAutoTopicCreation or createIfMissing is disabled.</p>
+<blockquote>
+<h4><a class="anchor" aria-hidden="true" id="note-1"></a><a href="#note-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. [...]
+<p>By default, after 60 seconds of creation, topics are considered inactive and deleted automatically to prevent from generating trash data.</p>
+<p>To disable this feature, set <code>brokerDeleteInactiveTopicsEnabled</code>  to <code>false</code>.</p>
+<p>To change the frequency of checking inactive topics, set <code>brokerDeleteInactiveTopicsFrequencySeconds</code> to your desired value.</p>
+<p>For more information about these two parameters, see <a href="/docs/en/next/reference-configuration#broker">here</a>.</p>
+</blockquote>
 <p>Usage</p>
 <pre><code class="hljs css language-bash">$ pulsar-admin topics create {persistent|non-persistent}://tenant/namespace/topic
 </code></pre>
diff --git a/content/docs/en/next/reference-cli-tools.html b/content/docs/en/next/reference-cli-tools.html
index f1f49c3..57ba766 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 f1f49c3..57ba766 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 bf771c4..68c37c5 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++) {
diff --git a/content/docs/en/next/reference-configuration/index.html b/content/docs/en/next/reference-configuration/index.html
index bf771c4..68c37c5 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++) {
diff --git a/content/docs/en/next/reference-terminology.html b/content/docs/en/next/reference-terminology.html
index 79f3754..228acb9 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 79f3754..228acb9 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 cae861d..7048855 100644
--- a/content/docs/en/next/schema-evolution-compatibility.html
+++ b/content/docs/en/next/schema-evolution-compatibility.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>Schema evolution and compatibility · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Schema evolution"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Schema evolution and compatibili [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Schema evolution and compatibility · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Normally, schemas do not stay the same over a long period of time. Instead, they undergo evolutions to satisfy new needs. "/><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,7 +74,9 @@
                 };
               }
             });
-        </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/schema-evolution-compatibility.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Schema evolution and compatibility</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="schema-evolution"></a><a href [...]
+        </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/schema-evolution-compatibility.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Schema evolution and compatibility</h1></header><article><div><span><p>Normally, schemas do not stay the same over a long period of time. Inst [...]
+<p>This chapter examines how Pulsar schema evolves and what Pulsar schema compatibility check strategies are.</p>
+<h2><a class="anchor" aria-hidden="true" id="schema-evolution"></a><a href="#schema-evolution" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.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>Pulsar schema is defined in a data structure called <code>SchemaInfo</code>.</p>
 <p>Each <code>SchemaInfo</code> stored with a topic has a version. The version is used to manage the schema changes happening within a topic.</p>
 <p>The message produced with <code>SchemaInfo</code> is tagged with a schema version. When a message is consumed by a Pulsar client, the Pulsar client can use the schema version to retrieve the corresponding <code>SchemaInfo</code> and use the correct schema information to deserialize data.</p>
diff --git a/content/docs/en/next/schema-evolution-compatibility/index.html b/content/docs/en/next/schema-evolution-compatibility/index.html
index cae861d..7048855 100644
--- a/content/docs/en/next/schema-evolution-compatibility/index.html
+++ b/content/docs/en/next/schema-evolution-compatibility/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>Schema evolution and compatibility · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Schema evolution"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Schema evolution and compatibili [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Schema evolution and compatibility · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Normally, schemas do not stay the same over a long period of time. Instead, they undergo evolutions to satisfy new needs. "/><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,7 +74,9 @@
                 };
               }
             });
-        </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/schema-evolution-compatibility.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Schema evolution and compatibility</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="schema-evolution"></a><a href [...]
+        </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/schema-evolution-compatibility.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Schema evolution and compatibility</h1></header><article><div><span><p>Normally, schemas do not stay the same over a long period of time. Inst [...]
+<p>This chapter examines how Pulsar schema evolves and what Pulsar schema compatibility check strategies are.</p>
+<h2><a class="anchor" aria-hidden="true" id="schema-evolution"></a><a href="#schema-evolution" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.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>Pulsar schema is defined in a data structure called <code>SchemaInfo</code>.</p>
 <p>Each <code>SchemaInfo</code> stored with a topic has a version. The version is used to manage the schema changes happening within a topic.</p>
 <p>The message produced with <code>SchemaInfo</code> is tagged with a schema version. When a message is consumed by a Pulsar client, the Pulsar client can use the schema version to retrieve the corresponding <code>SchemaInfo</code> and use the correct schema information to deserialize data.</p>
diff --git a/content/docs/en/next/schema-get-started.html b/content/docs/en/next/schema-get-started.html
index f6cf065..2aeedbe 100644
--- a/content/docs/en/next/schema-get-started.html
+++ b/content/docs/en/next/schema-get-started.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>Get started · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Schema Registry"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Get started · Apache Pulsar"/><meta property="og:type" c [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Get started · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="This chapter introduces Pulsar schemas and explains why they are important. "/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content [...]
               (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,7 +74,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/schema-get-started.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Get started</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="schema-registry"></a><a href="#schema-registry" aria-hidden="tru [...]
+        </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/schema-get-started.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Get started</h1></header><article><div><span><p>This chapter introduces Pulsar schemas and explains why they are important.</p>
+<h2><a class="anchor" aria-hidden="true" id="schema-registry"></a><a href="#schema-registry" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 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>Type safety is extremely important in any application built around a message bus like Pulsar.</p>
 <p>Producers and consumers need some kind of mechanism for coordinating types at the topic level to aviod various potential problems arise. For example, serialization and deserialization issues.</p>
 <p>Applications typically adopt one of the following approaches to guarantee type safety in messaging. Both approaches are available in Pulsar, and you're free to adopt one or the other or to mix and match on a per-topic basis.</p>
@@ -124,7 +125,7 @@ producer.send(<span class="hljs-keyword">User</span>);
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="summary"></a><a href="#summary" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>When constructing a producer with a schema, you do not need to serialize messages into bytes, instead Pulsar schema does this job in the background.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/next/schema-understand"><span>Understand schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#schema-registry">Schema Registry</a><ul class="toc-headings"><li><a href="#client [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/next/schema-understand"><span>Understand schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#schema-registry">Schema Registry</a><ul class="toc-headings"><li><a href="#client-side-a [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/schema-get-started/index.html b/content/docs/en/next/schema-get-started/index.html
index f6cf065..2aeedbe 100644
--- a/content/docs/en/next/schema-get-started/index.html
+++ b/content/docs/en/next/schema-get-started/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>Get started · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Schema Registry"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Get started · Apache Pulsar"/><meta property="og:type" c [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Get started · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="This chapter introduces Pulsar schemas and explains why they are important. "/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content [...]
               (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,7 +74,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/schema-get-started.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Get started</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="schema-registry"></a><a href="#schema-registry" aria-hidden="tru [...]
+        </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/schema-get-started.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Get started</h1></header><article><div><span><p>This chapter introduces Pulsar schemas and explains why they are important.</p>
+<h2><a class="anchor" aria-hidden="true" id="schema-registry"></a><a href="#schema-registry" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 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>Type safety is extremely important in any application built around a message bus like Pulsar.</p>
 <p>Producers and consumers need some kind of mechanism for coordinating types at the topic level to aviod various potential problems arise. For example, serialization and deserialization issues.</p>
 <p>Applications typically adopt one of the following approaches to guarantee type safety in messaging. Both approaches are available in Pulsar, and you're free to adopt one or the other or to mix and match on a per-topic basis.</p>
@@ -124,7 +125,7 @@ producer.send(<span class="hljs-keyword">User</span>);
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="summary"></a><a href="#summary" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>When constructing a producer with a schema, you do not need to serialize messages into bytes, instead Pulsar schema does this job in the background.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/en/next/schema-understand"><span>Understand schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#schema-registry">Schema Registry</a><ul class="toc-headings"><li><a href="#client [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/concepts-schema-registry"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/next/schema-understand"><span>Understand schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#schema-registry">Schema Registry</a><ul class="toc-headings"><li><a href="#client-side-a [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/schema-manage.html b/content/docs/en/next/schema-manage.html
index a96f776..cf4ff08 100644
--- a/content/docs/en/next/schema-manage.html
+++ b/content/docs/en/next/schema-manage.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>Manage schema · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Schemas can be managed in the following methods:"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Manage schema · Apache P [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Manage schema · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="This guide demonstrates the ways to manage schemas:"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Manage schema · Apach [...]
               (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,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/schema-manage.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Manage schema</h1></header><article><div><span><p>Schemas can be managed in the following methods:</p>
+        </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/schema-manage.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Manage schema</h1></header><article><div><span><p>This guide demonstrates the ways to manage schemas:</p>
 <ul>
 <li><p>Automatically</p>
 <ul>
diff --git a/content/docs/en/next/schema-manage/index.html b/content/docs/en/next/schema-manage/index.html
index a96f776..cf4ff08 100644
--- a/content/docs/en/next/schema-manage/index.html
+++ b/content/docs/en/next/schema-manage/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>Manage schema · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Schemas can be managed in the following methods:"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Manage schema · Apache P [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Manage schema · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="This guide demonstrates the ways to manage schemas:"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Manage schema · Apach [...]
               (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,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/schema-manage.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Manage schema</h1></header><article><div><span><p>Schemas can be managed in the following methods:</p>
+        </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/schema-manage.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Manage schema</h1></header><article><div><span><p>This guide demonstrates the ways to manage schemas:</p>
 <ul>
 <li><p>Automatically</p>
 <ul>
diff --git a/content/docs/en/next/schema-understand.html b/content/docs/en/next/schema-understand.html
index 7acbeec..5626852 100644
--- a/content/docs/en/next/schema-understand.html
+++ b/content/docs/en/next/schema-understand.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>Understand schema · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## SchemaInfo"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Understand schema · Apache Pulsar"/><meta property="og: [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Understand schema · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="This chapter explains the basic concepts of Pulsar schema, focuses on the topics of particular importance, and provides additional background."/><meta name="docsearch:version" content="next"/><meta n [...]
               (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,7 +74,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/schema-understand.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Understand schema</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="schemainfo"></a><a href="#schemainfo" aria-hidden="true" cl [...]
+        </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/schema-understand.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Understand schema</h1></header><article><div><span><p>This chapter explains the basic concepts of Pulsar schema, focuses on the topics of particular import [...]
+<h2><a class="anchor" aria-hidden="true" id="schemainfo"></a><a href="#schemainfo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
 <p>Pulsar schema is defined in a data structure called <code>SchemaInfo</code>.</p>
 <p>The <code>SchemaInfo</code> is stored and enforced on a per-topic basis and cannot be stored at the namespace or tenant level.</p>
 <p>A <code>SchemaInfo</code> consists of the following fields:</p>
@@ -102,7 +103,7 @@
 <td> 
 <p>Schema type, which determines how to interpret the schema data.</p>
 <ul>
-<li><p>Predefined schema: see <a href="schema-undstand.md#schema-type">here</a>.</p></li>
+<li><p>Predefined schema: see <a href="/docs/en/next/schema-understand#schema-type">here</a>.</p></li>
 <li><p>Customized schema: it is left as an empty string.</p></li>
 </ul>
 </td>
@@ -177,9 +178,9 @@
 <tr><td>DOUBLE</td><td>double</td><td>float</td><td>float64</td></tr>
 <tr><td>BYTES</td><td>byte[], ByteBuffer, ByteBuf</td><td>bytes</td><td>[]byte</td></tr>
 <tr><td>STRING</td><td>string</td><td>str</td><td>string</td></tr>
-<tr><td>TIMESTAMP</td><td>java.sql.Timestamp</td><td></td></tr>
-<tr><td>TIME</td><td>java.sql.Time</td><td></td></tr>
-<tr><td>DATE</td><td>java.util.Date</td><td></td></tr>
+<tr><td>TIMESTAMP</td><td>java.sql.Timestamp</td><td></td><td></td></tr>
+<tr><td>TIME</td><td>java.sql.Time</td><td></td><td></td></tr>
+<tr><td>DATE</td><td>java.util.Date</td><td></td><td></td></tr>
 </tbody>
 </table>
 <p><strong>Example</strong></p>
@@ -350,7 +351,7 @@ byte[] kafkaMessageBytes = … ;
 
 pulsarProducer.produce(kafkaMessageBytes);
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="auto_consume"></a><a href="#auto_consume" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<h4><a class="anchor" aria-hidden="true" id="auto_consume"></a><a href="#auto_consume" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p><code>AUTO_CONSUME</code> schema helps a Pulsar topic validate whether the bytes sent by a Pulsar topic is compatible with a consumer, that is, the Pulsar topic deserializes messages into language-specific objects using the <code>SchemaInfo</code> retrieved from broker-side.</p>
 <p>Currently, <code>AUTO_CONSUME</code> only supports <strong>AVRO</strong> and <strong>JSON</strong> schemas. It deserializes messages into <code>GenericRecord</code>.</p>
 <p><strong>Example</strong></p>
@@ -462,7 +463,7 @@ Producer<SensorReading> producer = client.newProducer(JSONSchema.of(SensorReadin
 <li><p>The consumer receives the messages from the broker.</p>
 <p>If the schema used by the consumer supports schema versioning (for example, AVRO schema), the consumer fetches the  <code>SchemaInfo</code> of the version tagged in messages, and use the passed-in schema and the schema tagged in messages to decode the messages.</p></li>
 </ol>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/schema-get-started"><span class="arrow-prev">← </span><span>Get started</span></a><a class="docs-next button" href="/docs/en/next/schema-evolution-compatibility"><span>Schema evolution and compatibility</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#schemainfo">SchemaInfo</a></li><li><a href="#schema-type">Sch [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/schema-get-started"><span class="arrow-prev">← </span><span>Get started</span></a><a class="docs-next button" href="/docs/en/next/schema-evolution-compatibility"><span>Schema evolution and compatibility</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#schemainfo">SchemaInfo</a></li><li><a href="#schema-type">Sch [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/schema-understand/index.html b/content/docs/en/next/schema-understand/index.html
index 7acbeec..5626852 100644
--- a/content/docs/en/next/schema-understand/index.html
+++ b/content/docs/en/next/schema-understand/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>Understand schema · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## SchemaInfo"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Understand schema · Apache Pulsar"/><meta property="og: [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Understand schema · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="This chapter explains the basic concepts of Pulsar schema, focuses on the topics of particular importance, and provides additional background."/><meta name="docsearch:version" content="next"/><meta n [...]
               (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,7 +74,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/schema-understand.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Understand schema</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="schemainfo"></a><a href="#schemainfo" aria-hidden="true" cl [...]
+        </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/schema-understand.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Understand schema</h1></header><article><div><span><p>This chapter explains the basic concepts of Pulsar schema, focuses on the topics of particular import [...]
+<h2><a class="anchor" aria-hidden="true" id="schemainfo"></a><a href="#schemainfo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
 <p>Pulsar schema is defined in a data structure called <code>SchemaInfo</code>.</p>
 <p>The <code>SchemaInfo</code> is stored and enforced on a per-topic basis and cannot be stored at the namespace or tenant level.</p>
 <p>A <code>SchemaInfo</code> consists of the following fields:</p>
@@ -102,7 +103,7 @@
 <td> 
 <p>Schema type, which determines how to interpret the schema data.</p>
 <ul>
-<li><p>Predefined schema: see <a href="schema-undstand.md#schema-type">here</a>.</p></li>
+<li><p>Predefined schema: see <a href="/docs/en/next/schema-understand#schema-type">here</a>.</p></li>
 <li><p>Customized schema: it is left as an empty string.</p></li>
 </ul>
 </td>
@@ -177,9 +178,9 @@
 <tr><td>DOUBLE</td><td>double</td><td>float</td><td>float64</td></tr>
 <tr><td>BYTES</td><td>byte[], ByteBuffer, ByteBuf</td><td>bytes</td><td>[]byte</td></tr>
 <tr><td>STRING</td><td>string</td><td>str</td><td>string</td></tr>
-<tr><td>TIMESTAMP</td><td>java.sql.Timestamp</td><td></td></tr>
-<tr><td>TIME</td><td>java.sql.Time</td><td></td></tr>
-<tr><td>DATE</td><td>java.util.Date</td><td></td></tr>
+<tr><td>TIMESTAMP</td><td>java.sql.Timestamp</td><td></td><td></td></tr>
+<tr><td>TIME</td><td>java.sql.Time</td><td></td><td></td></tr>
+<tr><td>DATE</td><td>java.util.Date</td><td></td><td></td></tr>
 </tbody>
 </table>
 <p><strong>Example</strong></p>
@@ -350,7 +351,7 @@ byte[] kafkaMessageBytes = … ;
 
 pulsarProducer.produce(kafkaMessageBytes);
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="auto_consume"></a><a href="#auto_consume" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<h4><a class="anchor" aria-hidden="true" id="auto_consume"></a><a href="#auto_consume" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p><code>AUTO_CONSUME</code> schema helps a Pulsar topic validate whether the bytes sent by a Pulsar topic is compatible with a consumer, that is, the Pulsar topic deserializes messages into language-specific objects using the <code>SchemaInfo</code> retrieved from broker-side.</p>
 <p>Currently, <code>AUTO_CONSUME</code> only supports <strong>AVRO</strong> and <strong>JSON</strong> schemas. It deserializes messages into <code>GenericRecord</code>.</p>
 <p><strong>Example</strong></p>
@@ -462,7 +463,7 @@ Producer<SensorReading> producer = client.newProducer(JSONSchema.of(SensorReadin
 <li><p>The consumer receives the messages from the broker.</p>
 <p>If the schema used by the consumer supports schema versioning (for example, AVRO schema), the consumer fetches the  <code>SchemaInfo</code> of the version tagged in messages, and use the passed-in schema and the schema tagged in messages to decode the messages.</p></li>
 </ol>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/schema-get-started"><span class="arrow-prev">← </span><span>Get started</span></a><a class="docs-next button" href="/docs/en/next/schema-evolution-compatibility"><span>Schema evolution and compatibility</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#schemainfo">SchemaInfo</a></li><li><a href="#schema-type">Sch [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/schema-get-started"><span class="arrow-prev">← </span><span>Get started</span></a><a class="docs-next button" href="/docs/en/next/schema-evolution-compatibility"><span>Schema evolution and compatibility</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#schemainfo">SchemaInfo</a></li><li><a href="#schema-type">Sch [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/en/next/security-athenz.html b/content/docs/en/next/security-athenz.html
index e816b40..407cc24 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 e816b40..407cc24 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 4dd05da..437af7e 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 4dd05da..437af7e 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 ebf1f30..5ba038d 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 ebf1f30..5ba038d 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 b889fd1..f33ce52 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 b889fd1..f33ce52 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 08e98ff..4279798 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 08e98ff..4279798 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 a4aac10..8111a89 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 a4aac10..8111a89 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 bcc5c34..1a3a674 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 bcc5c34..1a3a674 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 952541b..0f78529 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 952541b..0f78529 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 e353e00..5ee215f 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 e353e00..5ee215f 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 927f619..502727e 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 927f619..502727e 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 46753f0..7f5c7b4 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 46753f0..7f5c7b4 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 25b9ed3..e6a7448 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 25b9ed3..e6a7448 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 7c72fca..7b647c4 100644
--- a/content/docs/en/next/sql-overview.html
+++ b/content/docs/en/next/sql-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 SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
               (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,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
+        </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/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
diff --git a/content/docs/en/next/sql-overview/index.html b/content/docs/en/next/sql-overview/index.html
index 7c72fca..7b647c4 100644
--- a/content/docs/en/next/sql-overview/index.html
+++ b/content/docs/en/next/sql-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 SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
               (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,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
+        </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/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
diff --git a/content/docs/en/next/standalone-docker.html b/content/docs/en/next/standalone-docker.html
index 74370d4..7f55ab0 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 74370d4..7f55ab0 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 bdebeb2..e4fbbb4 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 bdebeb2..e4fbbb4 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 61030ad..a3d6da9 100644
--- a/content/docs/en/sql-overview.html
+++ b/content/docs/en/sql-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 SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
+        </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/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
diff --git a/content/docs/en/sql-overview/index.html b/content/docs/en/sql-overview/index.html
index 61030ad..a3d6da9 100644
--- a/content/docs/en/sql-overview/index.html
+++ b/content/docs/en/sql-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 SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields.  There is tremendous value for users to be able to query the exis [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
+        </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/sql-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structur [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
diff --git a/content/docs/fr/2.1.0-incubating/adaptors-kafka.html b/content/docs/fr/2.1.0-incubating/adaptors-kafka.html
index 6f7037c..23e8c47 100644
--- a/content/docs/fr/2.1.0-incubating/adaptors-kafka.html
+++ b/content/docs/fr/2.1.0-incubating/adaptors-kafka.html
@@ -308,7 +308,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de co [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.0-incubating/adaptors-kafka/index.html b/content/docs/fr/2.1.0-incubating/adaptors-kafka/index.html
index 6f7037c..23e8c47 100644
--- a/content/docs/fr/2.1.0-incubating/adaptors-kafka/index.html
+++ b/content/docs/fr/2.1.0-incubating/adaptors-kafka/index.html
@@ -308,7 +308,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de co [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.0-incubating/admin-api-partitioned-topics.html b/content/docs/fr/2.1.0-incubating/admin-api-partitioned-topics.html
index 5ffcdf9..491c8ac 100644
--- a/content/docs/fr/2.1.0-incubating/admin-api-partitioned-topics.html
+++ b/content/docs/fr/2.1.0-incubating/admin-api-partitioned-topics.html
@@ -316,7 +316,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resou [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.0-incubating/admin-api-partitioned-topics/index.html b/content/docs/fr/2.1.0-incubating/admin-api-partitioned-topics/index.html
index 5ffcdf9..491c8ac 100644
--- a/content/docs/fr/2.1.0-incubating/admin-api-partitioned-topics/index.html
+++ b/content/docs/fr/2.1.0-incubating/admin-api-partitioned-topics/index.html
@@ -316,7 +316,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resou [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.0-incubating/admin-api-schemas.html b/content/docs/fr/2.1.0-incubating/admin-api-schemas.html
index 36ee0b2..a9882f2 100644
--- a/content/docs/fr/2.1.0-incubating/admin-api-schemas.html
+++ b/content/docs/fr/2.1.0-incubating/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/2.1.0-incubating/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/2.1.0-incubating/admin-api-schemas/index.html b/content/docs/fr/2.1.0-incubating/admin-api-schemas/index.html
index 36ee0b2..a9882f2 100644
--- a/content/docs/fr/2.1.0-incubating/admin-api-schemas/index.html
+++ b/content/docs/fr/2.1.0-incubating/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/2.1.0-incubating/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/2.1.0-incubating/concepts-messaging.html b/content/docs/fr/2.1.0-incubating/concepts-messaging.html
index 8a45318..49fbdb1 100644
--- a/content/docs/fr/2.1.0-incubating/concepts-messaging.html
+++ b/content/docs/fr/2.1.0-incubating/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/2.1.0-incubating/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/2.1.0-incubating/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/2.1.0-incubating/concepts-messaging/index.html b/content/docs/fr/2.1.0-incubating/concepts-messaging/index.html
index 8a45318..49fbdb1 100644
--- a/content/docs/fr/2.1.0-incubating/concepts-messaging/index.html
+++ b/content/docs/fr/2.1.0-incubating/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/2.1.0-incubating/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/2.1.0-incubating/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/2.1.0-incubating/concepts-overview.html b/content/docs/fr/2.1.0-incubating/concepts-overview.html
index b8efeae..4247398 100644
--- a/content/docs/fr/2.1.0-incubating/concepts-overview.html
+++ b/content/docs/fr/2.1.0-incubating/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/2.1.0-incubating/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/2.1.0-incubating/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/2.1.0-incubating/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/2.1.0-incubating/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer cla [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/2.1.0-incubating/concepts-overview/index.html b/content/docs/fr/2.1.0-incubating/concepts-overview/index.html
index b8efeae..4247398 100644
--- a/content/docs/fr/2.1.0-incubating/concepts-overview/index.html
+++ b/content/docs/fr/2.1.0-incubating/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/2.1.0-incubating/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/2.1.0-incubating/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/2.1.0-incubating/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/2.1.0-incubating/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer cla [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/2.1.0-incubating/concepts-schema-registry.html b/content/docs/fr/2.1.0-incubating/concepts-schema-registry.html
index 3fd7c1a..cd3992b 100644
--- a/content/docs/fr/2.1.0-incubating/concepts-schema-registry.html
+++ b/content/docs/fr/2.1.0-incubating/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/2.1.0-incubating/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-sc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.1.0-incubating/concepts-schema-registry/index.html b/content/docs/fr/2.1.0-incubating/concepts-schema-registry/index.html
index 3fd7c1a..cd3992b 100644
--- a/content/docs/fr/2.1.0-incubating/concepts-schema-registry/index.html
+++ b/content/docs/fr/2.1.0-incubating/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/2.1.0-incubating/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-sc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.1.0-incubating/concepts-tiered-storage.html b/content/docs/fr/2.1.0-incubating/concepts-tiered-storage.html
index 96de5ce..eb0232e 100644
--- a/content/docs/fr/2.1.0-incubating/concepts-tiered-storage.html
+++ b/content/docs/fr/2.1.0-incubating/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/2.1.0-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/concepts-schema-registry"><span>Schema Registry</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 © [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/concepts-schema-registry"><span>Suivant</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 Th [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.0-incubating/concepts-tiered-storage/index.html b/content/docs/fr/2.1.0-incubating/concepts-tiered-storage/index.html
index 96de5ce..eb0232e 100644
--- a/content/docs/fr/2.1.0-incubating/concepts-tiered-storage/index.html
+++ b/content/docs/fr/2.1.0-incubating/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/2.1.0-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/concepts-schema-registry"><span>Schema Registry</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 © [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/concepts-schema-registry"><span>Suivant</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 Th [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.0-incubating/develop-binary-protocol.html b/content/docs/fr/2.1.0-incubating/develop-binary-protocol.html
index e8b139f..e696a5c 100644
--- a/content/docs/fr/2.1.0-incubating/develop-binary-protocol.html
+++ b/content/docs/fr/2.1.0-incubating/develop-binary-protocol.html
@@ -357,7 +357,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple- [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simp [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.0-incubating/develop-binary-protocol/index.html b/content/docs/fr/2.1.0-incubating/develop-binary-protocol/index.html
index e8b139f..e696a5c 100644
--- a/content/docs/fr/2.1.0-incubating/develop-binary-protocol/index.html
+++ b/content/docs/fr/2.1.0-incubating/develop-binary-protocol/index.html
@@ -357,7 +357,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple- [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simp [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.0-incubating/develop-load-manager.html b/content/docs/fr/2.1.0-incubating/develop-load-manager.html
index f9b7268..33db8b9 100644
--- a/content/docs/fr/2.1.0-incubating/develop-load-manager.html
+++ b/content/docs/fr/2.1.0-incubating/develop-load-manager.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/incubator-pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strateg [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verificat [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.0-incubating/develop-load-manager/index.html b/content/docs/fr/2.1.0-incubating/develop-load-manager/index.html
index f9b7268..33db8b9 100644
--- a/content/docs/fr/2.1.0-incubating/develop-load-manager/index.html
+++ b/content/docs/fr/2.1.0-incubating/develop-load-manager/index.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/incubator-pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strateg [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verificat [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.0-incubating/develop-schema.html b/content/docs/fr/2.1.0-incubating/develop-schema.html
index e24da01..10e5e7b 100644
--- a/content/docs/fr/2.1.0-incubating/develop-schema.html
+++ b/content/docs/fr/2.1.0-incubating/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/2.1.0-incubating/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You c [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/fr/2.1.0-incubating/concepts-schema-registry">schemas</a> in <a href="https://bookk [...]
+        </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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href="https://bookkeeper.apache.org">Apach [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/fr/2.1.0-incubating/develop-schema/index.html b/content/docs/fr/2.1.0-incubating/develop-schema/index.html
index e24da01..10e5e7b 100644
--- a/content/docs/fr/2.1.0-incubating/develop-schema/index.html
+++ b/content/docs/fr/2.1.0-incubating/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/2.1.0-incubating/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You c [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/fr/2.1.0-incubating/concepts-schema-registry">schemas</a> in <a href="https://bookk [...]
+        </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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href="https://bookkeeper.apache.org">Apach [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/fr/2.1.0-incubating/functions-overview.html b/content/docs/fr/2.1.0-incubating/functions-overview.html
index e44adb6..b732023 100644
--- a/content/docs/fr/2.1.0-incubating/functions-overview.html
+++ b/content/docs/fr/2.1.0-incubating/functions-overview.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/fr/2.1.0-incubating/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspiration [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.0-incubating/functions-overview/index.html b/content/docs/fr/2.1.0-incubating/functions-overview/index.html
index e44adb6..b732023 100644
--- a/content/docs/fr/2.1.0-incubating/functions-overview/index.html
+++ b/content/docs/fr/2.1.0-incubating/functions-overview/index.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/fr/2.1.0-incubating/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspiration [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.0-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.0-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/adaptors-kafka.html b/content/docs/fr/2.1.1-incubating/adaptors-kafka.html
index 03168d3..8c5dd96 100644
--- a/content/docs/fr/2.1.1-incubating/adaptors-kafka.html
+++ b/content/docs/fr/2.1.1-incubating/adaptors-kafka.html
@@ -308,7 +308,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de co [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/adaptors-kafka/index.html b/content/docs/fr/2.1.1-incubating/adaptors-kafka/index.html
index 03168d3..8c5dd96 100644
--- a/content/docs/fr/2.1.1-incubating/adaptors-kafka/index.html
+++ b/content/docs/fr/2.1.1-incubating/adaptors-kafka/index.html
@@ -308,7 +308,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de co [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/admin-api-partitioned-topics.html b/content/docs/fr/2.1.1-incubating/admin-api-partitioned-topics.html
index 2531671..177e5d6 100644
--- a/content/docs/fr/2.1.1-incubating/admin-api-partitioned-topics.html
+++ b/content/docs/fr/2.1.1-incubating/admin-api-partitioned-topics.html
@@ -316,7 +316,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resou [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/admin-api-partitioned-topics/index.html b/content/docs/fr/2.1.1-incubating/admin-api-partitioned-topics/index.html
index 2531671..177e5d6 100644
--- a/content/docs/fr/2.1.1-incubating/admin-api-partitioned-topics/index.html
+++ b/content/docs/fr/2.1.1-incubating/admin-api-partitioned-topics/index.html
@@ -316,7 +316,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resou [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/admin-api-schemas.html b/content/docs/fr/2.1.1-incubating/admin-api-schemas.html
index 833a723..f5a0073 100644
--- a/content/docs/fr/2.1.1-incubating/admin-api-schemas.html
+++ b/content/docs/fr/2.1.1-incubating/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/2.1.1-incubating/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/2.1.1-incubating/admin-api-schemas/index.html b/content/docs/fr/2.1.1-incubating/admin-api-schemas/index.html
index 833a723..f5a0073 100644
--- a/content/docs/fr/2.1.1-incubating/admin-api-schemas/index.html
+++ b/content/docs/fr/2.1.1-incubating/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/2.1.1-incubating/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/2.1.1-incubating/concepts-messaging.html b/content/docs/fr/2.1.1-incubating/concepts-messaging.html
index 5fb46bd..ef0b49d 100644
--- a/content/docs/fr/2.1.1-incubating/concepts-messaging.html
+++ b/content/docs/fr/2.1.1-incubating/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/2.1.1-incubating/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/2.1.1-incubating/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/2.1.1-incubating/concepts-messaging/index.html b/content/docs/fr/2.1.1-incubating/concepts-messaging/index.html
index 5fb46bd..ef0b49d 100644
--- a/content/docs/fr/2.1.1-incubating/concepts-messaging/index.html
+++ b/content/docs/fr/2.1.1-incubating/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/2.1.1-incubating/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/2.1.1-incubating/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/2.1.1-incubating/concepts-overview.html b/content/docs/fr/2.1.1-incubating/concepts-overview.html
index 5a65d5b..374e9d6 100644
--- a/content/docs/fr/2.1.1-incubating/concepts-overview.html
+++ b/content/docs/fr/2.1.1-incubating/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/2.1.1-incubating/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/2.1.1-incubating/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/2.1.1-incubating/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/2.1.1-incubating/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer cla [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/2.1.1-incubating/concepts-overview/index.html b/content/docs/fr/2.1.1-incubating/concepts-overview/index.html
index 5a65d5b..374e9d6 100644
--- a/content/docs/fr/2.1.1-incubating/concepts-overview/index.html
+++ b/content/docs/fr/2.1.1-incubating/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/2.1.1-incubating/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/2.1.1-incubating/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/2.1.1-incubating/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/2.1.1-incubating/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer cla [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/2.1.1-incubating/concepts-schema-registry.html b/content/docs/fr/2.1.1-incubating/concepts-schema-registry.html
index 6598f3a..c165170 100644
--- a/content/docs/fr/2.1.1-incubating/concepts-schema-registry.html
+++ b/content/docs/fr/2.1.1-incubating/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/2.1.1-incubating/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-sc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.1.1-incubating/concepts-schema-registry/index.html b/content/docs/fr/2.1.1-incubating/concepts-schema-registry/index.html
index 6598f3a..c165170 100644
--- a/content/docs/fr/2.1.1-incubating/concepts-schema-registry/index.html
+++ b/content/docs/fr/2.1.1-incubating/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/2.1.1-incubating/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-sc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.1.1-incubating/concepts-tiered-storage.html b/content/docs/fr/2.1.1-incubating/concepts-tiered-storage.html
index d287c3c..819c5b8 100644
--- a/content/docs/fr/2.1.1-incubating/concepts-tiered-storage.html
+++ b/content/docs/fr/2.1.1-incubating/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/2.1.1-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/concepts-schema-registry"><span>Schema Registry</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 © [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/concepts-schema-registry"><span>Suivant</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 Th [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/concepts-tiered-storage/index.html b/content/docs/fr/2.1.1-incubating/concepts-tiered-storage/index.html
index d287c3c..819c5b8 100644
--- a/content/docs/fr/2.1.1-incubating/concepts-tiered-storage/index.html
+++ b/content/docs/fr/2.1.1-incubating/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/2.1.1-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/concepts-schema-registry"><span>Schema Registry</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 © [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/concepts-schema-registry"><span>Suivant</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 Th [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/develop-binary-protocol.html b/content/docs/fr/2.1.1-incubating/develop-binary-protocol.html
index c33c7be..595c2c3 100644
--- a/content/docs/fr/2.1.1-incubating/develop-binary-protocol.html
+++ b/content/docs/fr/2.1.1-incubating/develop-binary-protocol.html
@@ -357,7 +357,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple- [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simp [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/develop-binary-protocol/index.html b/content/docs/fr/2.1.1-incubating/develop-binary-protocol/index.html
index c33c7be..595c2c3 100644
--- a/content/docs/fr/2.1.1-incubating/develop-binary-protocol/index.html
+++ b/content/docs/fr/2.1.1-incubating/develop-binary-protocol/index.html
@@ -357,7 +357,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple- [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simp [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/develop-load-manager.html b/content/docs/fr/2.1.1-incubating/develop-load-manager.html
index 02436d0..b54d978 100644
--- a/content/docs/fr/2.1.1-incubating/develop-load-manager.html
+++ b/content/docs/fr/2.1.1-incubating/develop-load-manager.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/incubator-pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strateg [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verificat [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/develop-load-manager/index.html b/content/docs/fr/2.1.1-incubating/develop-load-manager/index.html
index 02436d0..b54d978 100644
--- a/content/docs/fr/2.1.1-incubating/develop-load-manager/index.html
+++ b/content/docs/fr/2.1.1-incubating/develop-load-manager/index.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/incubator-pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strateg [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verificat [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/develop-schema.html b/content/docs/fr/2.1.1-incubating/develop-schema.html
index 8b285ca..e25a2d5 100644
--- a/content/docs/fr/2.1.1-incubating/develop-schema.html
+++ b/content/docs/fr/2.1.1-incubating/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/2.1.1-incubating/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You c [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/fr/2.1.1-incubating/concepts-schema-registry">schemas</a> in <a href="https://bookk [...]
+        </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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href="https://bookkeeper.apache.org">Apach [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/fr/2.1.1-incubating/develop-schema/index.html b/content/docs/fr/2.1.1-incubating/develop-schema/index.html
index 8b285ca..e25a2d5 100644
--- a/content/docs/fr/2.1.1-incubating/develop-schema/index.html
+++ b/content/docs/fr/2.1.1-incubating/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/2.1.1-incubating/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You c [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/fr/2.1.1-incubating/concepts-schema-registry">schemas</a> in <a href="https://bookk [...]
+        </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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href="https://bookkeeper.apache.org">Apach [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/fr/2.1.1-incubating/functions-overview.html b/content/docs/fr/2.1.1-incubating/functions-overview.html
index 2fb8790..dc761f0 100644
--- a/content/docs/fr/2.1.1-incubating/functions-overview.html
+++ b/content/docs/fr/2.1.1-incubating/functions-overview.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/fr/2.1.1-incubating/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspiration [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.1.1-incubating/functions-overview/index.html b/content/docs/fr/2.1.1-incubating/functions-overview/index.html
index 2fb8790..dc761f0 100644
--- a/content/docs/fr/2.1.1-incubating/functions-overview/index.html
+++ b/content/docs/fr/2.1.1-incubating/functions-overview/index.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/fr/2.1.1-incubating/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspiration [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.1.1-incubating/concepts-schema-registry"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.1.1-incubating/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/adaptors-kafka.html b/content/docs/fr/2.2.0/adaptors-kafka.html
index 5b5ae00..ec9eddf 100644
--- a/content/docs/fr/2.2.0/adaptors-kafka.html
+++ b/content/docs/fr/2.2.0/adaptors-kafka.html
@@ -310,7 +310,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/2.2.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar pou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar p [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/adaptors-kafka/index.html b/content/docs/fr/2.2.0/adaptors-kafka/index.html
index 5b5ae00..ec9eddf 100644
--- a/content/docs/fr/2.2.0/adaptors-kafka/index.html
+++ b/content/docs/fr/2.2.0/adaptors-kafka/index.html
@@ -310,7 +310,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/2.2.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar pou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar p [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/admin-api-partitioned-topics.html b/content/docs/fr/2.2.0/admin-api-partitioned-topics.html
index 293ddfe..5414cb2 100644
--- a/content/docs/fr/2.2.0/admin-api-partitioned-topics.html
+++ b/content/docs/fr/2.2.0/admin-api-partitioned-topics.html
@@ -316,7 +316,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.2.0/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.2.0/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/admin-api-partitioned-topics/index.html b/content/docs/fr/2.2.0/admin-api-partitioned-topics/index.html
index 293ddfe..5414cb2 100644
--- a/content/docs/fr/2.2.0/admin-api-partitioned-topics/index.html
+++ b/content/docs/fr/2.2.0/admin-api-partitioned-topics/index.html
@@ -316,7 +316,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.2.0/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.2.0/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/admin-api-schemas.html b/content/docs/fr/2.2.0/admin-api-schemas.html
index d975d6b..65cf19b 100644
--- a/content/docs/fr/2.2.0/admin-api-schemas.html
+++ b/content/docs/fr/2.2.0/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/2.2.0/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/2.2.0/admin-api-schemas/index.html b/content/docs/fr/2.2.0/admin-api-schemas/index.html
index d975d6b..65cf19b 100644
--- a/content/docs/fr/2.2.0/admin-api-schemas/index.html
+++ b/content/docs/fr/2.2.0/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/2.2.0/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/2.2.0/concepts-messaging.html b/content/docs/fr/2.2.0/concepts-messaging.html
index eba73c0..1565c18 100644
--- a/content/docs/fr/2.2.0/concepts-messaging.html
+++ b/content/docs/fr/2.2.0/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/2.2.0/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/2.2.0/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/2.2.0/concepts-messaging/index.html b/content/docs/fr/2.2.0/concepts-messaging/index.html
index eba73c0..1565c18 100644
--- a/content/docs/fr/2.2.0/concepts-messaging/index.html
+++ b/content/docs/fr/2.2.0/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/2.2.0/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/2.2.0/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/2.2.0/concepts-overview.html b/content/docs/fr/2.2.0/concepts-overview.html
index 2b2dcd4..c867c9f 100644
--- a/content/docs/fr/2.2.0/concepts-overview.html
+++ b/content/docs/fr/2.2.0/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/2.2.0/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/2.2.0/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/2.2.0/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/2.2.0/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/2.2.0/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/2.2.0/concepts-overview/index.html b/content/docs/fr/2.2.0/concepts-overview/index.html
index 2b2dcd4..c867c9f 100644
--- a/content/docs/fr/2.2.0/concepts-overview/index.html
+++ b/content/docs/fr/2.2.0/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/2.2.0/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/2.2.0/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/2.2.0/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/2.2.0/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/2.2.0/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/2.2.0/concepts-schema-registry.html b/content/docs/fr/2.2.0/concepts-schema-registry.html
index 2475043..112d959 100644
--- a/content/docs/fr/2.2.0/concepts-schema-registry.html
+++ b/content/docs/fr/2.2.0/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/2.2.0/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/2.2.0/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.2.0/concepts-schema-registry/index.html b/content/docs/fr/2.2.0/concepts-schema-registry/index.html
index 2475043..112d959 100644
--- a/content/docs/fr/2.2.0/concepts-schema-registry/index.html
+++ b/content/docs/fr/2.2.0/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/2.2.0/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/2.2.0/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.2.0/concepts-tiered-storage.html b/content/docs/fr/2.2.0/concepts-tiered-storage.html
index 16a3ddb..35cd1a6 100644
--- a/content/docs/fr/2.2.0/concepts-tiered-storage.html
+++ b/content/docs/fr/2.2.0/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/2.2.0/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.2.0/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.2.0/concepts-schema-registry"><span>Suivant</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/concepts-tiered-storage/index.html b/content/docs/fr/2.2.0/concepts-tiered-storage/index.html
index 16a3ddb..35cd1a6 100644
--- a/content/docs/fr/2.2.0/concepts-tiered-storage/index.html
+++ b/content/docs/fr/2.2.0/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/2.2.0/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.2.0/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.2.0/concepts-schema-registry"><span>Suivant</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/develop-binary-protocol.html b/content/docs/fr/2.2.0/develop-binary-protocol.html
index 70b64e0..5ab38bf 100644
--- a/content/docs/fr/2.2.0/develop-binary-protocol.html
+++ b/content/docs/fr/2.2.0/develop-binary-protocol.html
@@ -357,7 +357,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.2.0/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.2.0/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/develop-binary-protocol/index.html b/content/docs/fr/2.2.0/develop-binary-protocol/index.html
index 70b64e0..5ab38bf 100644
--- a/content/docs/fr/2.2.0/develop-binary-protocol/index.html
+++ b/content/docs/fr/2.2.0/develop-binary-protocol/index.html
@@ -357,7 +357,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.2.0/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.2.0/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/develop-load-manager.html b/content/docs/fr/2.2.0/develop-load-manager.html
index 096081d..ad35477 100644
--- a/content/docs/fr/2.2.0/develop-load-manager.html
+++ b/content/docs/fr/2.2.0/develop-load-manager.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strategy is <a hr [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/2.2.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implemen [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/develop-load-manager/index.html b/content/docs/fr/2.2.0/develop-load-manager/index.html
index 096081d..ad35477 100644
--- a/content/docs/fr/2.2.0/develop-load-manager/index.html
+++ b/content/docs/fr/2.2.0/develop-load-manager/index.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strategy is <a hr [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/2.2.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implemen [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/develop-schema.html b/content/docs/fr/2.2.0/develop-schema.html
index 320cbc8..1c9a810 100644
--- a/content/docs/fr/2.2.0/develop-schema.html
+++ b/content/docs/fr/2.2.0/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/2.2.0/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/fr/2.2.0/concepts-schema-registry">schemas</a> in <a href="https://bookkeeper.apach [...]
+        </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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href="https://bookkeeper.apache.org">Apach [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/fr/2.2.0/develop-schema/index.html b/content/docs/fr/2.2.0/develop-schema/index.html
index 320cbc8..1c9a810 100644
--- a/content/docs/fr/2.2.0/develop-schema/index.html
+++ b/content/docs/fr/2.2.0/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/2.2.0/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/fr/2.2.0/concepts-schema-registry">schemas</a> in <a href="https://bookkeeper.apach [...]
+        </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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href="https://bookkeeper.apache.org">Apach [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/fr/2.2.0/functions-overview.html b/content/docs/fr/2.2.0/functions-overview.html
index aeb61e5..d981dba 100644
--- a/content/docs/fr/2.2.0/functions-overview.html
+++ b/content/docs/fr/2.2.0/functions-overview.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/fr/2.2.0/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/fr/2.2.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#prog [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.0/functions-overview/index.html b/content/docs/fr/2.2.0/functions-overview/index.html
index aeb61e5..d981dba 100644
--- a/content/docs/fr/2.2.0/functions-overview/index.html
+++ b/content/docs/fr/2.2.0/functions-overview/index.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/fr/2.2.0/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/fr/2.2.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#prog [...]
       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 ef52730..d202ed9 100644
--- a/content/docs/fr/2.2.0/sql-overview.html
+++ b/content/docs/fr/2.2.0/sql-overview.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
+        </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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
 <p>By leveraging <a href="https://prestodb.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
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 ef52730..d202ed9 100644
--- a/content/docs/fr/2.2.0/sql-overview/index.html
+++ b/content/docs/fr/2.2.0/sql-overview/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
+        </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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
 <p>By leveraging <a href="https://prestodb.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
diff --git a/content/docs/fr/2.2.1/adaptors-kafka.html b/content/docs/fr/2.2.1/adaptors-kafka.html
index 92c3374..a357c94 100644
--- a/content/docs/fr/2.2.1/adaptors-kafka.html
+++ b/content/docs/fr/2.2.1/adaptors-kafka.html
@@ -310,7 +310,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/2.2.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar pou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar p [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.1/adaptors-kafka/index.html b/content/docs/fr/2.2.1/adaptors-kafka/index.html
index 92c3374..a357c94 100644
--- a/content/docs/fr/2.2.1/adaptors-kafka/index.html
+++ b/content/docs/fr/2.2.1/adaptors-kafka/index.html
@@ -310,7 +310,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/2.2.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar pou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar p [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.1/admin-api-partitioned-topics.html b/content/docs/fr/2.2.1/admin-api-partitioned-topics.html
index 33886b3..72e5c0f 100644
--- a/content/docs/fr/2.2.1/admin-api-partitioned-topics.html
+++ b/content/docs/fr/2.2.1/admin-api-partitioned-topics.html
@@ -316,7 +316,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.2.1/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.2.1/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.1/admin-api-partitioned-topics/index.html b/content/docs/fr/2.2.1/admin-api-partitioned-topics/index.html
index 33886b3..72e5c0f 100644
--- a/content/docs/fr/2.2.1/admin-api-partitioned-topics/index.html
+++ b/content/docs/fr/2.2.1/admin-api-partitioned-topics/index.html
@@ -316,7 +316,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.2.1/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.2.1/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.1/admin-api-schemas.html b/content/docs/fr/2.2.1/admin-api-schemas.html
index c8a45d0..c791ea0 100644
--- a/content/docs/fr/2.2.1/admin-api-schemas.html
+++ b/content/docs/fr/2.2.1/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/2.2.1/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/2.2.1/admin-api-schemas/index.html b/content/docs/fr/2.2.1/admin-api-schemas/index.html
index c8a45d0..c791ea0 100644
--- a/content/docs/fr/2.2.1/admin-api-schemas/index.html
+++ b/content/docs/fr/2.2.1/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/2.2.1/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/2.2.1/concepts-messaging.html b/content/docs/fr/2.2.1/concepts-messaging.html
index a19ebbc..102ccec 100644
--- a/content/docs/fr/2.2.1/concepts-messaging.html
+++ b/content/docs/fr/2.2.1/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/2.2.1/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/2.2.1/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/2.2.1/concepts-messaging/index.html b/content/docs/fr/2.2.1/concepts-messaging/index.html
index a19ebbc..102ccec 100644
--- a/content/docs/fr/2.2.1/concepts-messaging/index.html
+++ b/content/docs/fr/2.2.1/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/2.2.1/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/2.2.1/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/2.2.1/concepts-overview.html b/content/docs/fr/2.2.1/concepts-overview.html
index 8f2eb5a..c530b84 100644
--- a/content/docs/fr/2.2.1/concepts-overview.html
+++ b/content/docs/fr/2.2.1/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/2.2.1/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/2.2.1/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/2.2.1/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/2.2.1/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/2.2.1/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/2.2.1/concepts-overview/index.html b/content/docs/fr/2.2.1/concepts-overview/index.html
index 8f2eb5a..c530b84 100644
--- a/content/docs/fr/2.2.1/concepts-overview/index.html
+++ b/content/docs/fr/2.2.1/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/2.2.1/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/2.2.1/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/2.2.1/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/2.2.1/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/2.2.1/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/2.2.1/concepts-schema-registry.html b/content/docs/fr/2.2.1/concepts-schema-registry.html
index 631e1d6..4a017a3 100644
--- a/content/docs/fr/2.2.1/concepts-schema-registry.html
+++ b/content/docs/fr/2.2.1/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/2.2.1/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/2.2.1/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.2.1/concepts-schema-registry/index.html b/content/docs/fr/2.2.1/concepts-schema-registry/index.html
index 631e1d6..4a017a3 100644
--- a/content/docs/fr/2.2.1/concepts-schema-registry/index.html
+++ b/content/docs/fr/2.2.1/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/2.2.1/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/2.2.1/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.2.1/concepts-tiered-storage.html b/content/docs/fr/2.2.1/concepts-tiered-storage.html
index b239e61..7e9ab64 100644
--- a/content/docs/fr/2.2.1/concepts-tiered-storage.html
+++ b/content/docs/fr/2.2.1/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/2.2.1/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.2.1/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.2.1/concepts-schema-registry"><span>Suivant</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.1/concepts-tiered-storage/index.html b/content/docs/fr/2.2.1/concepts-tiered-storage/index.html
index b239e61..7e9ab64 100644
--- a/content/docs/fr/2.2.1/concepts-tiered-storage/index.html
+++ b/content/docs/fr/2.2.1/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/2.2.1/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.2.1/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.2.1/concepts-schema-registry"><span>Suivant</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.1/develop-binary-protocol.html b/content/docs/fr/2.2.1/develop-binary-protocol.html
index 637e574..340d8c5 100644
--- a/content/docs/fr/2.2.1/develop-binary-protocol.html
+++ b/content/docs/fr/2.2.1/develop-binary-protocol.html
@@ -357,7 +357,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.2.1/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.2.1/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.1/develop-binary-protocol/index.html b/content/docs/fr/2.2.1/develop-binary-protocol/index.html
index 637e574..340d8c5 100644
--- a/content/docs/fr/2.2.1/develop-binary-protocol/index.html
+++ b/content/docs/fr/2.2.1/develop-binary-protocol/index.html
@@ -357,7 +357,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.2.1/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.2.1/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.1/develop-load-manager.html b/content/docs/fr/2.2.1/develop-load-manager.html
index 7da89ea..8016682 100644
--- a/content/docs/fr/2.2.1/develop-load-manager.html
+++ b/content/docs/fr/2.2.1/develop-load-manager.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strategy is <a hr [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/2.2.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implemen [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.1/develop-load-manager/index.html b/content/docs/fr/2.2.1/develop-load-manager/index.html
index 7da89ea..8016682 100644
--- a/content/docs/fr/2.2.1/develop-load-manager/index.html
+++ b/content/docs/fr/2.2.1/develop-load-manager/index.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strategy is <a hr [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/2.2.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implemen [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.1/develop-schema.html b/content/docs/fr/2.2.1/develop-schema.html
index 3ab261b..bc9f090 100644
--- a/content/docs/fr/2.2.1/develop-schema.html
+++ b/content/docs/fr/2.2.1/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/2.2.1/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/fr/2.2.1/concepts-schema-registry">schemas</a> in <a href="https://bookkeeper.apach [...]
+        </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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href="https://bookkeeper.apache.org">Apach [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/fr/2.2.1/develop-schema/index.html b/content/docs/fr/2.2.1/develop-schema/index.html
index 3ab261b..bc9f090 100644
--- a/content/docs/fr/2.2.1/develop-schema/index.html
+++ b/content/docs/fr/2.2.1/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/2.2.1/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/fr/2.2.1/concepts-schema-registry">schemas</a> in <a href="https://bookkeeper.apach [...]
+        </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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href="https://bookkeeper.apache.org">Apach [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/fr/2.2.1/functions-overview.html b/content/docs/fr/2.2.1/functions-overview.html
index 7a2c533..c7ca399 100644
--- a/content/docs/fr/2.2.1/functions-overview.html
+++ b/content/docs/fr/2.2.1/functions-overview.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/fr/2.2.1/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/fr/2.2.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#prog [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.2.1/functions-overview/index.html b/content/docs/fr/2.2.1/functions-overview/index.html
index 7a2c533..c7ca399 100644
--- a/content/docs/fr/2.2.1/functions-overview/index.html
+++ b/content/docs/fr/2.2.1/functions-overview/index.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/fr/2.2.1/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/fr/2.2.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.2.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.2.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#prog [...]
       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 8352bf3..cfbee90 100644
--- a/content/docs/fr/2.2.1/sql-overview.html
+++ b/content/docs/fr/2.2.1/sql-overview.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
+        </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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
 <p>By leveraging <a href="https://prestodb.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
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 8352bf3..cfbee90 100644
--- a/content/docs/fr/2.2.1/sql-overview/index.html
+++ b/content/docs/fr/2.2.1/sql-overview/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
+        </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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
 <p>By leveraging <a href="https://prestodb.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
diff --git a/content/docs/fr/2.3.0/adaptors-kafka.html b/content/docs/fr/2.3.0/adaptors-kafka.html
index 9394f38..d34eeee 100644
--- a/content/docs/fr/2.3.0/adaptors-kafka.html
+++ b/content/docs/fr/2.3.0/adaptors-kafka.html
@@ -313,7 +313,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Set the subscription topic mode for consumers</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/2.3.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar pou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar p [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/adaptors-kafka/index.html b/content/docs/fr/2.3.0/adaptors-kafka/index.html
index 9394f38..d34eeee 100644
--- a/content/docs/fr/2.3.0/adaptors-kafka/index.html
+++ b/content/docs/fr/2.3.0/adaptors-kafka/index.html
@@ -313,7 +313,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Set the subscription topic mode for consumers</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/2.3.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar pou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.0/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar p [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/admin-api-partitioned-topics.html b/content/docs/fr/2.3.0/admin-api-partitioned-topics.html
index 5cea82d..ab34a9e 100644
--- a/content/docs/fr/2.3.0/admin-api-partitioned-topics.html
+++ b/content/docs/fr/2.3.0/admin-api-partitioned-topics.html
@@ -330,7 +330,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.3.0/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.3.0/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/admin-api-partitioned-topics/index.html b/content/docs/fr/2.3.0/admin-api-partitioned-topics/index.html
index 5cea82d..ab34a9e 100644
--- a/content/docs/fr/2.3.0/admin-api-partitioned-topics/index.html
+++ b/content/docs/fr/2.3.0/admin-api-partitioned-topics/index.html
@@ -330,7 +330,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.3.0/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.3.0/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/admin-api-schemas.html b/content/docs/fr/2.3.0/admin-api-schemas.html
index d2456f7..f77d6ef 100644
--- a/content/docs/fr/2.3.0/admin-api-schemas.html
+++ b/content/docs/fr/2.3.0/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/2.3.0/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/2.3.0/admin-api-schemas/index.html b/content/docs/fr/2.3.0/admin-api-schemas/index.html
index d2456f7..f77d6ef 100644
--- a/content/docs/fr/2.3.0/admin-api-schemas/index.html
+++ b/content/docs/fr/2.3.0/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/2.3.0/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/2.3.0/concepts-messaging.html b/content/docs/fr/2.3.0/concepts-messaging.html
index b73acae..a5757c4 100644
--- a/content/docs/fr/2.3.0/concepts-messaging.html
+++ b/content/docs/fr/2.3.0/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/2.3.0/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/2.3.0/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/2.3.0/concepts-messaging/index.html b/content/docs/fr/2.3.0/concepts-messaging/index.html
index b73acae..a5757c4 100644
--- a/content/docs/fr/2.3.0/concepts-messaging/index.html
+++ b/content/docs/fr/2.3.0/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/2.3.0/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/2.3.0/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/2.3.0/concepts-overview.html b/content/docs/fr/2.3.0/concepts-overview.html
index 3331a16..31ebd46 100644
--- a/content/docs/fr/2.3.0/concepts-overview.html
+++ b/content/docs/fr/2.3.0/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/2.3.0/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/2.3.0/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/2.3.0/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/2.3.0/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/2.3.0/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/2.3.0/concepts-overview/index.html b/content/docs/fr/2.3.0/concepts-overview/index.html
index 3331a16..31ebd46 100644
--- a/content/docs/fr/2.3.0/concepts-overview/index.html
+++ b/content/docs/fr/2.3.0/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/2.3.0/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/2.3.0/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/2.3.0/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/2.3.0/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/2.3.0/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/2.3.0/concepts-schema-registry.html b/content/docs/fr/2.3.0/concepts-schema-registry.html
index 913221c..030ee03 100644
--- a/content/docs/fr/2.3.0/concepts-schema-registry.html
+++ b/content/docs/fr/2.3.0/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/2.3.0/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/2.3.0/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.3.0/concepts-schema-registry/index.html b/content/docs/fr/2.3.0/concepts-schema-registry/index.html
index 913221c..030ee03 100644
--- a/content/docs/fr/2.3.0/concepts-schema-registry/index.html
+++ b/content/docs/fr/2.3.0/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/2.3.0/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/2.3.0/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.3.0/concepts-tiered-storage.html b/content/docs/fr/2.3.0/concepts-tiered-storage.html
index 25c96fa..5ad60b0 100644
--- a/content/docs/fr/2.3.0/concepts-tiered-storage.html
+++ b/content/docs/fr/2.3.0/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/2.3.0/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.3.0/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.3.0/concepts-schema-registry"><span>Suivant</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/concepts-tiered-storage/index.html b/content/docs/fr/2.3.0/concepts-tiered-storage/index.html
index 25c96fa..5ad60b0 100644
--- a/content/docs/fr/2.3.0/concepts-tiered-storage/index.html
+++ b/content/docs/fr/2.3.0/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/2.3.0/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.3.0/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.3.0/concepts-schema-registry"><span>Suivant</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/develop-binary-protocol.html b/content/docs/fr/2.3.0/develop-binary-protocol.html
index dbed7b9..ed39fa6 100644
--- a/content/docs/fr/2.3.0/develop-binary-protocol.html
+++ b/content/docs/fr/2.3.0/develop-binary-protocol.html
@@ -357,7 +357,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.3.0/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.3.0/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/develop-binary-protocol/index.html b/content/docs/fr/2.3.0/develop-binary-protocol/index.html
index dbed7b9..ed39fa6 100644
--- a/content/docs/fr/2.3.0/develop-binary-protocol/index.html
+++ b/content/docs/fr/2.3.0/develop-binary-protocol/index.html
@@ -357,7 +357,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.3.0/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.3.0/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/develop-load-manager.html b/content/docs/fr/2.3.0/develop-load-manager.html
index d05fd43..f87682a 100644
--- a/content/docs/fr/2.3.0/develop-load-manager.html
+++ b/content/docs/fr/2.3.0/develop-load-manager.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strategy is <a hr [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/2.3.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implemen [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/develop-load-manager/index.html b/content/docs/fr/2.3.0/develop-load-manager/index.html
index d05fd43..f87682a 100644
--- a/content/docs/fr/2.3.0/develop-load-manager/index.html
+++ b/content/docs/fr/2.3.0/develop-load-manager/index.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strategy is <a hr [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/2.3.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.0/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implemen [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/develop-schema.html b/content/docs/fr/2.3.0/develop-schema.html
index 234a123..c2bd3f3 100644
--- a/content/docs/fr/2.3.0/develop-schema.html
+++ b/content/docs/fr/2.3.0/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/2.3.0/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/fr/2.3.0/concepts-schema-registry">schemas</a> in <a href="https://bookkeeper.apach [...]
+        </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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href="https://bookkeeper.apache.org">Apach [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/fr/2.3.0/develop-schema/index.html b/content/docs/fr/2.3.0/develop-schema/index.html
index 234a123..c2bd3f3 100644
--- a/content/docs/fr/2.3.0/develop-schema/index.html
+++ b/content/docs/fr/2.3.0/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/2.3.0/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/fr/2.3.0/concepts-schema-registry">schemas</a> in <a href="https://bookkeeper.apach [...]
+        </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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href="https://bookkeeper.apache.org">Apach [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/fr/2.3.0/functions-overview.html b/content/docs/fr/2.3.0/functions-overview.html
index ceecd0e..91bb0fc 100644
--- a/content/docs/fr/2.3.0/functions-overview.html
+++ b/content/docs/fr/2.3.0/functions-overview.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/fr/2.3.0/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/fr/2.3.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#prog [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.0/functions-overview/index.html b/content/docs/fr/2.3.0/functions-overview/index.html
index ceecd0e..91bb0fc 100644
--- a/content/docs/fr/2.3.0/functions-overview/index.html
+++ b/content/docs/fr/2.3.0/functions-overview/index.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/fr/2.3.0/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/fr/2.3.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.0/concepts-schema-registry"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.0/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#prog [...]
       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 e82c4de..ef48382 100644
--- a/content/docs/fr/2.3.0/sql-overview.html
+++ b/content/docs/fr/2.3.0/sql-overview.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
+        </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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
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 e82c4de..ef48382 100644
--- a/content/docs/fr/2.3.0/sql-overview/index.html
+++ b/content/docs/fr/2.3.0/sql-overview/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
+        </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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
diff --git a/content/docs/fr/2.3.1/adaptors-kafka.html b/content/docs/fr/2.3.1/adaptors-kafka.html
index ea6d324..43dcf6d 100644
--- a/content/docs/fr/2.3.1/adaptors-kafka.html
+++ b/content/docs/fr/2.3.1/adaptors-kafka.html
@@ -314,7 +314,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Définit le mode d'abonnement au topic pour les consommateurs.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/2.3.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar pou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar p [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/adaptors-kafka/index.html b/content/docs/fr/2.3.1/adaptors-kafka/index.html
index ea6d324..43dcf6d 100644
--- a/content/docs/fr/2.3.1/adaptors-kafka/index.html
+++ b/content/docs/fr/2.3.1/adaptors-kafka/index.html
@@ -314,7 +314,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Définit le mode d'abonnement au topic pour les consommateurs.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/2.3.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar pou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.1/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar p [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/admin-api-partitioned-topics.html b/content/docs/fr/2.3.1/admin-api-partitioned-topics.html
index 9fd880f..c9053ff 100644
--- a/content/docs/fr/2.3.1/admin-api-partitioned-topics.html
+++ b/content/docs/fr/2.3.1/admin-api-partitioned-topics.html
@@ -330,7 +330,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.3.1/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.3.1/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/admin-api-partitioned-topics/index.html b/content/docs/fr/2.3.1/admin-api-partitioned-topics/index.html
index 9fd880f..c9053ff 100644
--- a/content/docs/fr/2.3.1/admin-api-partitioned-topics/index.html
+++ b/content/docs/fr/2.3.1/admin-api-partitioned-topics/index.html
@@ -330,7 +330,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.3.1/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.3.1/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/admin-api-schemas.html b/content/docs/fr/2.3.1/admin-api-schemas.html
index 58472f0..d5dcba9 100644
--- a/content/docs/fr/2.3.1/admin-api-schemas.html
+++ b/content/docs/fr/2.3.1/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/2.3.1/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/2.3.1/admin-api-schemas/index.html b/content/docs/fr/2.3.1/admin-api-schemas/index.html
index 58472f0..d5dcba9 100644
--- a/content/docs/fr/2.3.1/admin-api-schemas/index.html
+++ b/content/docs/fr/2.3.1/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/2.3.1/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/2.3.1/concepts-messaging.html b/content/docs/fr/2.3.1/concepts-messaging.html
index 5586ce6..a6aaec2 100644
--- a/content/docs/fr/2.3.1/concepts-messaging.html
+++ b/content/docs/fr/2.3.1/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/2.3.1/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/2.3.1/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/2.3.1/concepts-messaging/index.html b/content/docs/fr/2.3.1/concepts-messaging/index.html
index 5586ce6..a6aaec2 100644
--- a/content/docs/fr/2.3.1/concepts-messaging/index.html
+++ b/content/docs/fr/2.3.1/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/2.3.1/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/2.3.1/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/2.3.1/concepts-overview.html b/content/docs/fr/2.3.1/concepts-overview.html
index 9e903bf..e46e0d5 100644
--- a/content/docs/fr/2.3.1/concepts-overview.html
+++ b/content/docs/fr/2.3.1/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/2.3.1/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/2.3.1/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/2.3.1/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/2.3.1/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/2.3.1/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/2.3.1/concepts-overview/index.html b/content/docs/fr/2.3.1/concepts-overview/index.html
index 9e903bf..e46e0d5 100644
--- a/content/docs/fr/2.3.1/concepts-overview/index.html
+++ b/content/docs/fr/2.3.1/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/2.3.1/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/2.3.1/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/2.3.1/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/2.3.1/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/2.3.1/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/2.3.1/concepts-schema-registry.html b/content/docs/fr/2.3.1/concepts-schema-registry.html
index 6080f07..6c63632 100644
--- a/content/docs/fr/2.3.1/concepts-schema-registry.html
+++ b/content/docs/fr/2.3.1/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/2.3.1/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/2.3.1/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.3.1/concepts-schema-registry/index.html b/content/docs/fr/2.3.1/concepts-schema-registry/index.html
index 6080f07..6c63632 100644
--- a/content/docs/fr/2.3.1/concepts-schema-registry/index.html
+++ b/content/docs/fr/2.3.1/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/2.3.1/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/2.3.1/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.3.1/concepts-tiered-storage.html b/content/docs/fr/2.3.1/concepts-tiered-storage.html
index 61523e2..fe8373a 100644
--- a/content/docs/fr/2.3.1/concepts-tiered-storage.html
+++ b/content/docs/fr/2.3.1/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/2.3.1/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.3.1/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.3.1/concepts-schema-registry"><span>Suivant</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/concepts-tiered-storage/index.html b/content/docs/fr/2.3.1/concepts-tiered-storage/index.html
index 61523e2..fe8373a 100644
--- a/content/docs/fr/2.3.1/concepts-tiered-storage/index.html
+++ b/content/docs/fr/2.3.1/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/2.3.1/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.3.1/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.3.1/concepts-schema-registry"><span>Suivant</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/develop-binary-protocol.html b/content/docs/fr/2.3.1/develop-binary-protocol.html
index b92186a..d1357e9 100644
--- a/content/docs/fr/2.3.1/develop-binary-protocol.html
+++ b/content/docs/fr/2.3.1/develop-binary-protocol.html
@@ -357,7 +357,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.3.1/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.3.1/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/develop-binary-protocol/index.html b/content/docs/fr/2.3.1/develop-binary-protocol/index.html
index b92186a..d1357e9 100644
--- a/content/docs/fr/2.3.1/develop-binary-protocol/index.html
+++ b/content/docs/fr/2.3.1/develop-binary-protocol/index.html
@@ -357,7 +357,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.3.1/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.3.1/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/develop-load-manager.html b/content/docs/fr/2.3.1/develop-load-manager.html
index d69dae6..7bfeaa2 100644
--- a/content/docs/fr/2.3.1/develop-load-manager.html
+++ b/content/docs/fr/2.3.1/develop-load-manager.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strategy is <a hr [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/2.3.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implemen [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/develop-load-manager/index.html b/content/docs/fr/2.3.1/develop-load-manager/index.html
index d69dae6..7bfeaa2 100644
--- a/content/docs/fr/2.3.1/develop-load-manager/index.html
+++ b/content/docs/fr/2.3.1/develop-load-manager/index.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strategy is <a hr [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/2.3.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.1/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implemen [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/develop-schema.html b/content/docs/fr/2.3.1/develop-schema.html
index 00c77a2..4254faa 100644
--- a/content/docs/fr/2.3.1/develop-schema.html
+++ b/content/docs/fr/2.3.1/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/2.3.1/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/fr/2.3.1/concepts-schema-registry">schemas</a> in <a href="https://bookkeeper.apach [...]
+        </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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href="https://bookkeeper.apache.org">Apach [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/fr/2.3.1/develop-schema/index.html b/content/docs/fr/2.3.1/develop-schema/index.html
index 00c77a2..4254faa 100644
--- a/content/docs/fr/2.3.1/develop-schema/index.html
+++ b/content/docs/fr/2.3.1/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/2.3.1/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/fr/2.3.1/concepts-schema-registry">schemas</a> in <a href="https://bookkeeper.apach [...]
+        </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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href="https://bookkeeper.apache.org">Apach [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/fr/2.3.1/functions-overview.html b/content/docs/fr/2.3.1/functions-overview.html
index e8a5982..dc25297 100644
--- a/content/docs/fr/2.3.1/functions-overview.html
+++ b/content/docs/fr/2.3.1/functions-overview.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/fr/2.3.1/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/fr/2.3.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#prog [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.1/functions-overview/index.html b/content/docs/fr/2.3.1/functions-overview/index.html
index e8a5982..dc25297 100644
--- a/content/docs/fr/2.3.1/functions-overview/index.html
+++ b/content/docs/fr/2.3.1/functions-overview/index.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/fr/2.3.1/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/fr/2.3.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.1/concepts-schema-registry"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.1/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#prog [...]
       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 eeb3b36..340ea4b 100644
--- a/content/docs/fr/2.3.1/sql-overview.html
+++ b/content/docs/fr/2.3.1/sql-overview.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
+        </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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
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 eeb3b36..340ea4b 100644
--- a/content/docs/fr/2.3.1/sql-overview/index.html
+++ b/content/docs/fr/2.3.1/sql-overview/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
+        </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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
diff --git a/content/docs/fr/2.3.2/adaptors-kafka.html b/content/docs/fr/2.3.2/adaptors-kafka.html
index 0317fc8..4a0b5a8 100644
--- a/content/docs/fr/2.3.2/adaptors-kafka.html
+++ b/content/docs/fr/2.3.2/adaptors-kafka.html
@@ -314,7 +314,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Définit le mode d'abonnement au topic pour les consommateurs.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/2.3.2/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar pou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.2/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar p [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/adaptors-kafka/index.html b/content/docs/fr/2.3.2/adaptors-kafka/index.html
index 0317fc8..4a0b5a8 100644
--- a/content/docs/fr/2.3.2/adaptors-kafka/index.html
+++ b/content/docs/fr/2.3.2/adaptors-kafka/index.html
@@ -314,7 +314,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Définit le mode d'abonnement au topic pour les consommateurs.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/2.3.2/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar pou [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.2/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar p [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/admin-api-partitioned-topics.html b/content/docs/fr/2.3.2/admin-api-partitioned-topics.html
index 9e05526..ce43e6c 100644
--- a/content/docs/fr/2.3.2/admin-api-partitioned-topics.html
+++ b/content/docs/fr/2.3.2/admin-api-partitioned-topics.html
@@ -330,7 +330,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.3.2/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.3.2/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/admin-api-partitioned-topics/index.html b/content/docs/fr/2.3.2/admin-api-partitioned-topics/index.html
index 9e05526..ce43e6c 100644
--- a/content/docs/fr/2.3.2/admin-api-partitioned-topics/index.html
+++ b/content/docs/fr/2.3.2/admin-api-partitioned-topics/index.html
@@ -330,7 +330,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.3.2/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/2.3.2/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/admin-api-schemas.html b/content/docs/fr/2.3.2/admin-api-schemas.html
index 8276329..136ab81 100644
--- a/content/docs/fr/2.3.2/admin-api-schemas.html
+++ b/content/docs/fr/2.3.2/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/2.3.2/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/2.3.2/admin-api-schemas/index.html b/content/docs/fr/2.3.2/admin-api-schemas/index.html
index 8276329..136ab81 100644
--- a/content/docs/fr/2.3.2/admin-api-schemas/index.html
+++ b/content/docs/fr/2.3.2/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/2.3.2/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/2.3.2/concepts-messaging.html b/content/docs/fr/2.3.2/concepts-messaging.html
index 87f9cfe..a1ec870 100644
--- a/content/docs/fr/2.3.2/concepts-messaging.html
+++ b/content/docs/fr/2.3.2/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/2.3.2/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/2.3.2/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/2.3.2/concepts-messaging/index.html b/content/docs/fr/2.3.2/concepts-messaging/index.html
index 87f9cfe..a1ec870 100644
--- a/content/docs/fr/2.3.2/concepts-messaging/index.html
+++ b/content/docs/fr/2.3.2/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/2.3.2/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/2.3.2/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/2.3.2/concepts-overview.html b/content/docs/fr/2.3.2/concepts-overview.html
index 9ec9ba7..2436654 100644
--- a/content/docs/fr/2.3.2/concepts-overview.html
+++ b/content/docs/fr/2.3.2/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/2.3.2/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/2.3.2/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/2.3.2/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/2.3.2/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/2.3.2/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/2.3.2/concepts-overview/index.html b/content/docs/fr/2.3.2/concepts-overview/index.html
index 9ec9ba7..2436654 100644
--- a/content/docs/fr/2.3.2/concepts-overview/index.html
+++ b/content/docs/fr/2.3.2/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/2.3.2/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/2.3.2/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/2.3.2/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/2.3.2/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/2.3.2/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="fo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/2.3.2/concepts-schema-registry.html b/content/docs/fr/2.3.2/concepts-schema-registry.html
index acba06b..9f2c294 100644
--- a/content/docs/fr/2.3.2/concepts-schema-registry.html
+++ b/content/docs/fr/2.3.2/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/2.3.2/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/2.3.2/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.3.2/concepts-schema-registry/index.html b/content/docs/fr/2.3.2/concepts-schema-registry/index.html
index acba06b..9f2c294 100644
--- a/content/docs/fr/2.3.2/concepts-schema-registry/index.html
+++ b/content/docs/fr/2.3.2/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/2.3.2/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/2.3.2/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schema [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.3.2/concepts-tiered-storage.html b/content/docs/fr/2.3.2/concepts-tiered-storage.html
index 84ba67f..37cfe85 100644
--- a/content/docs/fr/2.3.2/concepts-tiered-storage.html
+++ b/content/docs/fr/2.3.2/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/2.3.2/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.3.2/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.3.2/concepts-schema-registry"><span>Suivant</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/concepts-tiered-storage/index.html b/content/docs/fr/2.3.2/concepts-tiered-storage/index.html
index 84ba67f..37cfe85 100644
--- a/content/docs/fr/2.3.2/concepts-tiered-storage/index.html
+++ b/content/docs/fr/2.3.2/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/2.3.2/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.3.2/concepts-schema-registry"><span>Schema Registry</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 Softw [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/2.3.2/concepts-schema-registry"><span>Suivant</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/develop-binary-protocol.html b/content/docs/fr/2.3.2/develop-binary-protocol.html
index 609dda6..94d24e6 100644
--- a/content/docs/fr/2.3.2/develop-binary-protocol.html
+++ b/content/docs/fr/2.3.2/develop-binary-protocol.html
@@ -357,7 +357,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.3.2/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.3.2/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/develop-binary-protocol/index.html b/content/docs/fr/2.3.2/develop-binary-protocol/index.html
index 609dda6..94d24e6 100644
--- a/content/docs/fr/2.3.2/develop-binary-protocol/index.html
+++ b/content/docs/fr/2.3.2/develop-binary-protocol/index.html
@@ -357,7 +357,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.3.2/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple comma [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/2.3.2/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/develop-load-manager.html b/content/docs/fr/2.3.2/develop-load-manager.html
index e81c1ff..e7ac3e7 100644
--- a/content/docs/fr/2.3.2/develop-load-manager.html
+++ b/content/docs/fr/2.3.2/develop-load-manager.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strategy is <a hr [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/2.3.2/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.2/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implemen [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/develop-load-manager/index.html b/content/docs/fr/2.3.2/develop-load-manager/index.html
index e81c1ff..e7ac3e7 100644
--- a/content/docs/fr/2.3.2/develop-load-manager/index.html
+++ b/content/docs/fr/2.3.2/develop-load-manager/index.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strategy is <a hr [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/2.3.2/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.2/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implemen [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/develop-schema.html b/content/docs/fr/2.3.2/develop-schema.html
index e96fb4b..3630441 100644
--- a/content/docs/fr/2.3.2/develop-schema.html
+++ b/content/docs/fr/2.3.2/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/2.3.2/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/fr/2.3.2/concepts-schema-registry">schemas</a> in <a href="https://bookkeeper.apach [...]
+        </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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href="https://bookkeeper.apache.org">Apach [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/fr/2.3.2/develop-schema/index.html b/content/docs/fr/2.3.2/develop-schema/index.html
index e96fb4b..3630441 100644
--- a/content/docs/fr/2.3.2/develop-schema/index.html
+++ b/content/docs/fr/2.3.2/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/2.3.2/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/fr/2.3.2/concepts-schema-registry">schemas</a> in <a href="https://bookkeeper.apach [...]
+        </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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href="https://bookkeeper.apache.org">Apach [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/fr/2.3.2/functions-overview.html b/content/docs/fr/2.3.2/functions-overview.html
index 2de3b02..337008a 100644
--- a/content/docs/fr/2.3.2/functions-overview.html
+++ b/content/docs/fr/2.3.2/functions-overview.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/fr/2.3.2/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/fr/2.3.2/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/concepts-schema-registry"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.2/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#prog [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/2.3.2/functions-overview/index.html b/content/docs/fr/2.3.2/functions-overview/index.html
index 2de3b02..337008a 100644
--- a/content/docs/fr/2.3.2/functions-overview/index.html
+++ b/content/docs/fr/2.3.2/functions-overview/index.html
@@ -425,7 +425,7 @@
 <p>Pulsar Functions that use the <a href="#the-pulsar-functions-sdk">Pulsar Functions SDK</a> can publish metrics to Pulsar. For more information, see <a href="/docs/fr/2.3.2/functions-metrics">Metrics for Pulsar Functions</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="state-storage"></a><a href="#state-storage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Pulsar Functions use <a href="https://bookkeeper.apache.org">Apache BookKeeper</a> as a state storage interface. All Pulsar installations, including local standalone installations, include a deployment of BookKeeper bookies.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/concepts-schema-registry"><span class="arrow-prev">← </span><span>Schema Registry</span></a><a class="docs-next button" href="/docs/fr/2.3.2/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href= [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.3.2/concepts-schema-registry"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/2.3.2/functions-quickstart"><span>Get started</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#goals">Goals</a></li><li><a href="#inspirations">Inspirations</a></li><li><a href="#prog [...]
       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 72b2548..845c827 100644
--- a/content/docs/fr/2.3.2/sql-overview.html
+++ b/content/docs/fr/2.3.2/sql-overview.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
+        </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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
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 72b2548..845c827 100644
--- a/content/docs/fr/2.3.2/sql-overview/index.html
+++ b/content/docs/fr/2.3.2/sql-overview/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. There is tremendous value for users to be able to query the exist [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
+        </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">Pulsar SQL Overview</h1></header><article><div><span><p>One of the common use cases of Pulsar is storing streams of event data. Often the event data is structured which predefined fields. Ther [...]
 <p>By leveraging <a href="https://prestosql.io/">Presto</a>, we have created a method for users to be able to query structured data stored within Pulsar in a very efficient and scalable manner. We will discuss why this very efficient and scalable in the <a href="#performance">Performance</a> section below.</p>
 <p>At the core of this Pulsar SQL is the Presto Pulsar connector which allows Presto workers within a Presto cluster to query data from Pulsar.</p>
 <p><img src="/docs/assets/pulsar-sql-arch-2.png" alt="The Pulsar consumer and reader interfaces"></p>
diff --git a/content/docs/fr/adaptors-kafka.html b/content/docs/fr/adaptors-kafka.html
index 018f0d9..018f699 100644
--- a/content/docs/fr/adaptors-kafka.html
+++ b/content/docs/fr/adaptors-kafka.html
@@ -313,7 +313,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Définit le mode d'abonnement au topic pour les consommateurs.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar pour Kafka</a>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar pour Kafka</a [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/adaptors-kafka/index.html b/content/docs/fr/adaptors-kafka/index.html
index 018f0d9..018f699 100644
--- a/content/docs/fr/adaptors-kafka/index.html
+++ b/content/docs/fr/adaptors-kafka/index.html
@@ -313,7 +313,7 @@ consumer.subscribe(Arrays.asList(topic));
 <tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerBuilder.html#subscriptionTopicsMode-Mode-"><code>pulsar.consumer.subscription.topics.mode</code></a></td><td style="text-align:left">PersistentOnly</td><td style="text-align:left">Définit le mode d'abonnement au topic pour les consommateurs.</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/admin-api-schemas"><span class="arrow-prev">← </span><span>Schémas</span></a><a class="docs-next button" href="/docs/fr/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar pour Kafka</a>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/admin-api-schemas"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/adaptors-spark"><span>Apache Spark</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#a-laide-du-wrapper-de-compatibilite-pulsar-pour-kafka">À l’aide du wrapper de compatibilité Pulsar pour Kafka</a [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/admin-api-partitioned-topics.html b/content/docs/fr/admin-api-partitioned-topics.html
index ee9e8db..c08ad87 100644
--- a/content/docs/fr/admin-api-partitioned-topics.html
+++ b/content/docs/fr/admin-api-partitioned-topics.html
@@ -330,7 +330,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-headings">< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-headings">< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/admin-api-partitioned-topics/index.html b/content/docs/fr/admin-api-partitioned-topics/index.html
index ee9e8db..c08ad87 100644
--- a/content/docs/fr/admin-api-partitioned-topics/index.html
+++ b/content/docs/fr/admin-api-partitioned-topics/index.html
@@ -330,7 +330,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/admin-api-schemas"><span>Schémas</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-headings">< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/fr/admin-api-schemas"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-headings">< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/admin-api-schemas.html b/content/docs/fr/admin-api-schemas.html
index 0614f19..ed20cd0 100644
--- a/content/docs/fr/admin-api-schemas.html
+++ b/content/docs/fr/admin-api-schemas.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/admin-api-schemas/index.html b/content/docs/fr/admin-api-schemas/index.html
index 0614f19..ed20cd0 100644
--- a/content/docs/fr/admin-api-schemas/index.html
+++ b/content/docs/fr/admin-api-schemas/index.html
@@ -79,7 +79,7 @@
 <p>A Pulsar schema is a fairly simple data structure stored in Pulsar for representing the structure of messages stored in a Pulsar topic. The schema structure consists of:</p>
 <ul>
 <li><em>Name</em>: A schema's name is the topic that the schema is associated to.</li>
-<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="/docs/fr/concepts-schema-registry#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
+<li><em>Type</em>: A schema type represents the type of the schema. The predefined schema types can be found <a href="concepts-schema-registry.md#supported-schema-formats">here</a>. If it is a customized schema, it is left as an empty string.</li>
 <li><em>Payload</em>: It is a binary representation of the schema. How to interpret it is up to the implementation of the schema.</li>
 <li><em>Properties</em>: It is a user defined properties as a string/string map. Applications can use this bag for carrying any application specific logics. Possible properties might be the Git hash associated with the schema, an environment string like <code>dev</code> or <code>prod</code>, etc.</li>
 </ul>
diff --git a/content/docs/fr/concepts-messaging.html b/content/docs/fr/concepts-messaging.html
index a8f8d73..fafef76 100644
--- a/content/docs/fr/concepts-messaging.html
+++ b/content/docs/fr/concepts-messaging.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/concepts-messaging/index.html b/content/docs/fr/concepts-messaging/index.html
index a8f8d73..fafef76 100644
--- a/content/docs/fr/concepts-messaging/index.html
+++ b/content/docs/fr/concepts-messaging/index.html
@@ -83,7 +83,7 @@
 <tr><th style="text-align:left">Component</th><th style="text-align:left">Purpose</th></tr>
 </thead>
 <tbody>
-<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="/docs/fr/concepts-schema-registry">schemas</a></td></tr>
+<tr><td style="text-align:left">Value / data payload</td><td style="text-align:left">The data carried by the message. All Pulsar messages carry raw bytes, although message data can also conform to data <a href="concepts-schema-registry.md">schemas</a></td></tr>
 <tr><td style="text-align:left">Key</td><td style="text-align:left">Messages can optionally be tagged with keys, which can be useful for things like <a href="/docs/fr/concepts-topic-compaction">topic compaction</a></td></tr>
 <tr><td style="text-align:left">Properties</td><td style="text-align:left">An optional key/value map of user-defined properties</td></tr>
 <tr><td style="text-align:left">Producer name</td><td style="text-align:left">The name of the producer that produced the message (producers are automatically given default names, but you can apply your own explicitly as well)</td></tr>
diff --git a/content/docs/fr/concepts-overview.html b/content/docs/fr/concepts-overview.html
index e11c07d..1df8a0e 100644
--- a/content/docs/fr/concepts-overview.html
+++ b/content/docs/fr/concepts-overview.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="footer"><secti [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/concepts-overview/index.html b/content/docs/fr/concepts-overview/index.html
index e11c07d..1df8a0e 100644
--- a/content/docs/fr/concepts-overview/index.html
+++ b/content/docs/fr/concepts-overview/index.html
@@ -97,7 +97,7 @@
 <li><a href="/docs/fr/concepts-authentication">Authentication and Authorization</a></li>
 <li><a href="/docs/fr/concepts-topic-compaction">Topic Compaction</a></li>
 <li><a href="/docs/fr/concepts-tiered-storage">Tiered Storage</a></li>
-<li><a href="/docs/fr/concepts-schema-registry">Schema Registry</a></li>
+<li><a href="concepts-schema-registry.md">Schema Registry</a></li>
 </ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/client-libraries"><span class="arrow-prev">← </span><span>Use Pulsar with client libraries</span></a><a class="docs-next button" href="/docs/fr/concepts-messaging"><span>Messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contents">Contents</a></li></ul></nav></div><footer class="nav-footer" id="footer"><secti [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/concepts-schema-registry.html b/content/docs/fr/concepts-schema-registry.html
index 7bc9588..e985765 100644
--- a/content/docs/fr/concepts-schema-registry.html
+++ b/content/docs/fr/concepts-schema-registry.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schemas work</a></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/concepts-schema-registry/index.html b/content/docs/fr/concepts-schema-registry/index.html
index 7bc9588..e985765 100644
--- a/content/docs/fr/concepts-schema-registry/index.html
+++ b/content/docs/fr/concepts-schema-registry/index.html
@@ -145,7 +145,7 @@ Producer&lt;SensorReading&gt; producer = client.newProducer(JSONSchema.of(Sensor
 <p>Support for other schema formats will be added in future releases of Pulsar.</p>
 </blockquote>
 <h2><a class="anchor" aria-hidden="true" id="managing-schemas"></a><a href="#managing-schemas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>You can use Pulsar's <a href="/docs/fr/admin-api-schemas">admin tools</a> for managing schemas for topics.</p>
+<p>You can use Pulsar's <a href="admin-api-schemas.md">admin tools</a> for managing schemas for topics.</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/concepts-tiered-storage"><span class="arrow-prev">← </span><span>Tiered Storage</span></a><a class="docs-next button" href="/docs/fr/functions-overview"><span>Overview</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#basic-architecture">Basic architecture</a></li><li><a href="#how-schemas-work">How schemas work</a></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/concepts-tiered-storage.html b/content/docs/fr/concepts-tiered-storage.html
index 15a2b8d..f66970b 100644
--- a/content/docs/fr/concepts-tiered-storage.html
+++ b/content/docs/fr/concepts-tiered-storage.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/concepts-schema-registry"><span>Schema Registry</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 Foundati [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/concepts-schema-registry"><span>Suivant</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  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/concepts-tiered-storage/index.html b/content/docs/fr/concepts-tiered-storage/index.html
index 15a2b8d..f66970b 100644
--- a/content/docs/fr/concepts-tiered-storage/index.html
+++ b/content/docs/fr/concepts-tiered-storage/index.html
@@ -84,7 +84,7 @@
 <blockquote>
 <p>For a guide for setting up tiered storage, see the <a href="/docs/fr/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
 </blockquote>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/concepts-schema-registry"><span>Schema Registry</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 Foundati [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/concepts-topic-compaction"><span class="arrow-prev">← </span><span>Topic Compaction</span></a><a class="docs-next button" href="/docs/fr/concepts-schema-registry"><span>Suivant</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  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/develop-binary-protocol.html b/content/docs/fr/develop-binary-protocol.html
index a976631..e57b2c4 100644
--- a/content/docs/fr/develop-binary-protocol.html
+++ b/content/docs/fr/develop-binary-protocol.html
@@ -422,7 +422,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li><a href="# [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/develop-binary-protocol/index.html b/content/docs/fr/develop-binary-protocol/index.html
index a976631..e57b2c4 100644
--- a/content/docs/fr/develop-binary-protocol/index.html
+++ b/content/docs/fr/develop-binary-protocol/index.html
@@ -422,7 +422,7 @@
 <h2><a class="anchor" aria-hidden="true" id="protobuf-interface"></a><a href="#protobuf-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>All Pulsar's Protobuf definitions can be found <a href="https://github.com/apache/incubator-pulsar/tree/master//pulsar-common/src/main/proto/PulsarApi.proto">here</a>
 .</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/develop-schema"><span>Custom schema storage</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/develop-tools"><span class="arrow-prev">← </span><span>Simulation tools</span></a><a class="docs-next button" href="/docs/fr/develop-schema"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#framing">Framing</a><ul class="toc-headings"><li><a href="#simple-commands">Simple commands</a></li><li><a href="# [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/develop-load-manager.html b/content/docs/fr/develop-load-manager.html
index b38d292..b5d9537 100644
--- a/content/docs/fr/develop-load-manager.html
+++ b/content/docs/fr/develop-load-manager.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strategy is <a hr [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implemen [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implementation">Impl [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/develop-load-manager/index.html b/content/docs/fr/develop-load-manager/index.html
index b38d292..b5d9537 100644
--- a/content/docs/fr/develop-load-manager/index.html
+++ b/content/docs/fr/develop-load-manager/index.html
@@ -218,7 +218,7 @@
 <p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignment. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strategy is <a hr [...]
 <h4><a class="anchor" aria-hidden="true" id="least-long-term-message-rate-strategy"></a><a href="#least-long-term-message-rate-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
 <p>As its name suggests, the least long term message rate strategy attempts to distribute bundles across brokers so that the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the assignment process. [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/develop-schema"><span class="arrow-prev">← </span><span>Custom schema storage</span></a><a class="docs-next button" href="/docs/fr/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implemen [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/develop-schema"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/develop-cpp"><span>Building Pulsar C++ client</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a></li><li><a href="#verification">Verification</a></li><li><a href="#implementation">Impl [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/fr/develop-schema.html b/content/docs/fr/develop-schema.html
index f353bc2..912710a 100644
--- a/content/docs/fr/develop-schema.html
+++ b/content/docs/fr/develop-schema.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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use  [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -74,7 +74,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="/docs/fr/concepts-schema-registry">schemas</a> in <a href="https://bookkeeper.apache.org" [...]
+        </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">Custom schema storage</h1></header><article><div><span><p>By default, Pulsar stores data type <a href="concepts-schema-registry.md">schemas</a> in <a href="https://bookkeeper.apache.org">Apach [...]
 <p>In order to use a non-default (i.e. non-BookKeeper) storage system for Pulsar schemas, you need to implement two Java interfaces: <a href="#schemastorage-interface"><code>SchemaStorage</code></a> and <a href="#schemastoragefactory-interface"><code>SchemaStorageFactory</code></a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="schemastorage-interface"></a><a href="#schemastorage-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>The <code>SchemaStorage</code> interface has the following methods:</p>
diff --git a/content/docs/fr/develop-schema/index.html b/content/docs/fr/develop-schema/index.html
index f353bc2..912710a 100644
--- a/content/docs/fr/develop-schema/index.html
+++ b/content/docs/fr/develop-schema/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>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](/docs/fr/concepts-schema-registry) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use  [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Custom schema storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="By default, Pulsar stores data type [schemas](concepts-schema-registry.md) in [Apache BookKeeper](https://bookkeeper.apache.org) (which is deployed alongside Pulsar). You can, however, use anothe [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
... 17558 lines suppressed ...