You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by li...@apache.org on 2021/08/23 07:26:48 UTC

[pulsar] branch master updated: [ISSUE 11714][DOC][spelling mistakes]fix spelling mistakes for doc (#11715)

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

liuyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new d887640  [ISSUE 11714][DOC][spelling mistakes]fix spelling mistakes for doc (#11715)
d887640 is described below

commit d887640d68ec22dffc06bc42862462cde55f20e5
Author: hapihu <w....@qq.com>
AuthorDate: Mon Aug 23 15:26:09 2021 +0800

    [ISSUE 11714][DOC][spelling mistakes]fix spelling mistakes for doc (#11715)
    
    * [#11714][spelling mistakes]fix spelling mistakes for doc
    
    * Update site2/docs/reference-configuration.md
    
    Co-authored-by: Anonymitaet <50...@users.noreply.github.com>
    
    * [ISSUE 11714][docs][spelling mistakes]fix spelling mistakes for doc
    
    Co-authored-by: 吴贵虎 <wu...@mininglamp.com>
    Co-authored-by: Anonymitaet <50...@users.noreply.github.com>
---
 site2/docs/administration-dashboard.md                     |  4 ++--
 site2/docs/administration-load-balance.md                  |  2 +-
 site2/docs/administration-pulsar-manager.md                | 12 ++++++------
 site2/docs/client-libraries-java.md                        |  6 +++---
 site2/docs/client-libraries-websocket.md                   |  2 +-
 site2/docs/concepts-messaging.md                           |  2 +-
 site2/docs/deploy-bare-metal.md                            |  4 ++--
 site2/docs/developing-binary-protocol.md                   |  2 +-
 site2/docs/functions-develop.md                            |  2 +-
 site2/docs/helm-overview.md                                |  4 ++--
 site2/docs/reference-configuration.md                      |  6 +++---
 site2/docs/reference-pulsar-admin.md                       |  4 ++--
 site2/docs/reference-terminology.md                        |  2 +-
 site2/docs/security-athenz.md                              |  2 +-
 site2/docs/security-authorization.md                       |  2 +-
 site2/docs/security-jwt.md                                 |  2 +-
 site2/docs/security-kerberos.md                            |  6 +++---
 site2/docs/security-tls-keystore.md                        |  4 ++--
 site2/docs/security-tls-transport.md                       |  2 +-
 .../version-2.1.0-incubating/adaptors-kafka.md             |  2 +-
 .../version-2.1.0-incubating/administration-dashboard.md   |  2 +-
 .../version-2.1.0-incubating/administration-proxy.md       |  2 +-
 .../version-2.1.0-incubating/client-libraries-go.md        |  2 +-
 .../version-2.1.0-incubating/concepts-messaging.md         |  2 +-
 .../version-2.1.0-incubating/cookbooks-compaction.md       |  2 +-
 .../version-2.1.0-incubating/deploy-bare-metal.md          |  6 +++---
 .../versioned_docs/version-2.1.0-incubating/deploy-dcos.md |  2 +-
 .../version-2.1.0-incubating/deploy-kubernetes.md          |  6 +++---
 .../version-2.1.0-incubating/developing-binary-protocol.md |  2 +-
 .../version-2.1.0-incubating/functions-deploying.md        |  2 +-
 .../version-2.1.0-incubating/functions-quickstart.md       |  2 +-
 .../version-2.1.0-incubating/functions-state.md            |  4 ++--
 .../version-2.1.0-incubating/io-aerospike.md               |  2 +-
 .../versioned_docs/version-2.1.0-incubating/io-develop.md  |  8 ++++----
 .../version-2.1.0-incubating/reference-configuration.md    | 12 ++++++------
 .../version-2.1.0-incubating/reference-pulsar-admin.md     | 10 +++++-----
 .../version-2.1.0-incubating/reference-terminology.md      |  2 +-
 .../security-tls-authentication.md                         |  2 +-
 .../version-2.1.1-incubating/adaptors-kafka.md             |  2 +-
 .../version-2.1.1-incubating/administration-proxy.md       |  2 +-
 .../version-2.1.1-incubating/deploy-bare-metal.md          |  6 +++---
 .../version-2.1.1-incubating/functions-deploying.md        |  2 +-
 .../version-2.1.1-incubating/functions-quickstart.md       |  2 +-
 .../version-2.1.1-incubating/reference-configuration.md    | 12 ++++++------
 .../version-2.1.1-incubating/reference-pulsar-admin.md     | 10 +++++-----
 .../website/versioned_docs/version-2.2.0/adaptors-kafka.md |  2 +-
 .../versioned_docs/version-2.2.0/client-libraries-go.md    |  2 +-
 .../versioned_docs/version-2.2.0/deploy-bare-metal.md      |  6 +++---
 site2/website/versioned_docs/version-2.2.0/deploy-dcos.md  |  2 +-
 .../version-2.2.0/developing-binary-protocol.md            |  2 +-
 .../versioned_docs/version-2.2.0/functions-deploying.md    |  2 +-
 .../versioned_docs/version-2.2.0/functions-quickstart.md   |  2 +-
 .../version-2.2.0/reference-configuration.md               | 12 ++++++------
 .../versioned_docs/version-2.2.0/reference-pulsar-admin.md | 10 +++++-----
 .../version-2.2.0/sql-deployment-configurations.md         |  6 +++---
 .../version-2.2.1/admin-api-persistent-topics.md           |  4 ++--
 .../versioned_docs/version-2.2.1/client-libraries-go.md    |  2 +-
 .../versioned_docs/version-2.2.1/deploy-bare-metal.md      |  6 +++---
 .../version-2.2.1/reference-configuration.md               | 12 ++++++------
 .../versioned_docs/version-2.2.1/reference-pulsar-admin.md | 10 +++++-----
 .../version-2.2.1/security-tls-authentication.md           |  2 +-
 .../versioned_docs/version-2.3.0/administration-proxy.md   |  2 +-
 .../versioned_docs/version-2.3.0/client-libraries-go.md    |  2 +-
 .../versioned_docs/version-2.3.0/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.3.0/deploy-bare-metal.md      |  6 +++---
 .../versioned_docs/version-2.3.0/functions-quickstart.md   |  6 +++---
 .../version-2.3.0/reference-configuration.md               | 12 ++++++------
 .../versioned_docs/version-2.3.0/reference-pulsar-admin.md |  8 ++++----
 .../versioned_docs/version-2.3.0/reference-terminology.md  |  2 +-
 .../version-2.3.1/administration-dashboard.md              |  2 +-
 .../versioned_docs/version-2.3.1/client-libraries-go.md    |  2 +-
 .../versioned_docs/version-2.3.1/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.3.1/deploy-bare-metal.md      |  6 +++---
 site2/website/versioned_docs/version-2.3.1/io-develop.md   |  8 ++++----
 .../version-2.3.1/reference-configuration.md               | 12 ++++++------
 .../versioned_docs/version-2.3.1/reference-pulsar-admin.md |  8 ++++----
 .../versioned_docs/version-2.3.1/reference-terminology.md  |  2 +-
 .../versioned_docs/version-2.3.2/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.3.2/deploy-bare-metal.md      |  6 +++---
 .../version-2.3.2/reference-configuration.md               | 12 ++++++------
 .../versioned_docs/version-2.3.2/reference-pulsar-admin.md |  8 ++++----
 .../versioned_docs/version-2.4.0/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.4.0/deploy-bare-metal.md      |  6 +++---
 .../version-2.4.0/developing-binary-protocol.md            |  2 +-
 .../versioned_docs/version-2.4.0/functions-state.md        |  4 ++--
 .../version-2.4.0/reference-configuration.md               | 12 ++++++------
 .../versioned_docs/version-2.4.0/reference-pulsar-admin.md |  8 ++++----
 .../versioned_docs/version-2.4.0/security-kerberos.md      |  2 +-
 .../version-2.4.0/security-tls-authentication.md           |  2 +-
 .../version-2.4.1/administration-dashboard.md              |  2 +-
 .../versioned_docs/version-2.4.1/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.4.1/develop-bare-metal.md     |  6 +++---
 .../versioned_docs/version-2.4.1/functions-develop.md      |  2 +-
 site2/website/versioned_docs/version-2.4.1/io-develop.md   |  8 ++++----
 .../version-2.4.1/reference-configuration.md               | 12 ++++++------
 .../versioned_docs/version-2.4.1/reference-pulsar-admin.md |  8 ++++----
 .../versioned_docs/version-2.4.1/schema-get-started.md     |  2 +-
 .../versioned_docs/version-2.4.1/security-athenz.md        |  2 +-
 .../versioned_docs/version-2.4.1/security-authorization.md |  2 +-
 .../versioned_docs/version-2.4.1/security-kerberos.md      |  6 +++---
 .../versioned_docs/version-2.4.1/security-tls-transport.md |  2 +-
 .../version-2.4.2/administration-dashboard.md              |  2 +-
 .../versioned_docs/version-2.4.2/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.4.2/develop-bare-metal.md     |  6 +++---
 .../versioned_docs/version-2.4.2/functions-develop.md      |  2 +-
 site2/website/versioned_docs/version-2.4.2/io-develop.md   |  8 ++++----
 .../version-2.4.2/reference-configuration.md               | 12 ++++++------
 .../versioned_docs/version-2.4.2/reference-pulsar-admin.md |  8 ++++----
 .../versioned_docs/version-2.4.2/schema-get-started.md     |  2 +-
 .../versioned_docs/version-2.4.2/security-athenz.md        |  2 +-
 .../versioned_docs/version-2.4.2/security-authorization.md |  2 +-
 .../versioned_docs/version-2.4.2/security-kerberos.md      |  6 +++---
 .../versioned_docs/version-2.4.2/security-tls-transport.md |  2 +-
 .../version-2.5.0/admin-api-persistent-topics.md           |  2 +-
 .../version-2.5.0/administration-dashboard.md              |  4 ++--
 .../version-2.5.0/administration-load-balance.md           |  2 +-
 .../versioned_docs/version-2.5.0/administration-proxy.md   |  2 +-
 .../version-2.5.0/administration-pulsar-manager.md         | 12 ++++++------
 .../versioned_docs/version-2.5.0/client-libraries-java.md  |  6 +++---
 .../versioned_docs/version-2.5.0/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.5.0/deploy-bare-metal.md      |  4 ++--
 site2/website/versioned_docs/version-2.5.0/deploy-dcos.md  |  2 +-
 .../versioned_docs/version-2.5.0/functions-develop.md      |  2 +-
 site2/website/versioned_docs/version-2.5.0/helm-deploy.md  |  4 ++--
 .../website/versioned_docs/version-2.5.0/helm-overview.md  |  4 ++--
 .../version-2.5.0/reference-configuration.md               | 12 ++++++------
 .../versioned_docs/version-2.5.0/reference-pulsar-admin.md |  8 ++++----
 .../versioned_docs/version-2.5.0/security-tls-transport.md |  2 +-
 .../version-2.5.1/admin-api-persistent-topics.md           |  2 +-
 .../versioned_docs/version-2.5.1/client-libraries-java.md  |  6 +++---
 .../versioned_docs/version-2.5.1/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.5.1/deploy-bare-metal.md      |  4 ++--
 .../version-2.5.1/developing-binary-protocol.md            |  2 +-
 .../versioned_docs/version-2.5.1/functions-develop.md      |  2 +-
 .../version-2.5.1/reference-configuration.md               | 12 ++++++------
 .../versioned_docs/version-2.5.1/reference-pulsar-admin.md |  8 ++++----
 .../versioned_docs/version-2.5.1/security-tls-transport.md |  2 +-
 .../version-2.5.2/admin-api-persistent-topics.md           |  2 +-
 .../versioned_docs/version-2.5.2/client-libraries-java.md  |  6 +++---
 .../versioned_docs/version-2.5.2/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.5.2/deploy-bare-metal.md      |  4 ++--
 .../version-2.5.2/developing-binary-protocol.md            |  2 +-
 .../versioned_docs/version-2.5.2/functions-develop.md      |  2 +-
 .../version-2.5.2/reference-configuration.md               | 12 ++++++------
 .../versioned_docs/version-2.5.2/reference-pulsar-admin.md |  8 ++++----
 .../versioned_docs/version-2.5.2/security-tls-transport.md |  2 +-
 .../version-2.6.0/admin-api-persistent-topics.md           |  2 +-
 .../version-2.6.0/administration-dashboard.md              |  4 ++--
 .../version-2.6.0/administration-load-balance.md           |  2 +-
 .../versioned_docs/version-2.6.0/administration-proxy.md   |  2 +-
 .../version-2.6.0/administration-pulsar-manager.md         | 12 ++++++------
 .../versioned_docs/version-2.6.0/client-libraries-java.md  |  6 +++---
 .../versioned_docs/version-2.6.0/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.6.0/deploy-bare-metal.md      |  4 ++--
 site2/website/versioned_docs/version-2.6.0/deploy-dcos.md  |  2 +-
 .../version-2.6.0/developing-binary-protocol.md            |  2 +-
 .../versioned_docs/version-2.6.0/functions-develop.md      |  2 +-
 .../website/versioned_docs/version-2.6.0/helm-overview.md  |  4 ++--
 .../version-2.6.0/reference-configuration.md               | 12 ++++++------
 .../versioned_docs/version-2.6.0/reference-pulsar-admin.md |  8 ++++----
 .../versioned_docs/version-2.6.0/reference-terminology.md  |  2 +-
 .../versioned_docs/version-2.6.0/security-athenz.md        |  2 +-
 .../versioned_docs/version-2.6.0/security-authorization.md |  2 +-
 site2/website/versioned_docs/version-2.6.0/security-jwt.md |  2 +-
 .../versioned_docs/version-2.6.0/security-kerberos.md      |  6 +++---
 .../versioned_docs/version-2.6.0/security-tls-keystore.md  |  4 ++--
 .../versioned_docs/version-2.6.0/security-tls-transport.md |  2 +-
 .../version-2.6.1/admin-api-persistent-topics.md           |  2 +-
 .../version-2.6.1/administration-dashboard.md              |  4 ++--
 .../version-2.6.1/administration-load-balance.md           |  2 +-
 .../versioned_docs/version-2.6.1/administration-proxy.md   |  2 +-
 .../version-2.6.1/administration-pulsar-manager.md         | 12 ++++++------
 .../versioned_docs/version-2.6.1/client-libraries-java.md  |  6 +++---
 .../versioned_docs/version-2.6.1/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.6.1/deploy-bare-metal.md      |  4 ++--
 site2/website/versioned_docs/version-2.6.1/deploy-dcos.md  |  2 +-
 .../version-2.6.1/developing-binary-protocol.md            |  2 +-
 .../versioned_docs/version-2.6.1/functions-develop.md      |  2 +-
 .../website/versioned_docs/version-2.6.1/helm-overview.md  |  4 ++--
 .../version-2.6.1/reference-configuration.md               | 12 ++++++------
 .../versioned_docs/version-2.6.1/reference-pulsar-admin.md |  8 ++++----
 .../versioned_docs/version-2.6.1/reference-terminology.md  |  2 +-
 .../versioned_docs/version-2.6.1/security-athenz.md        |  2 +-
 .../versioned_docs/version-2.6.1/security-authorization.md |  2 +-
 site2/website/versioned_docs/version-2.6.1/security-jwt.md |  2 +-
 .../versioned_docs/version-2.6.1/security-kerberos.md      |  6 +++---
 .../versioned_docs/version-2.6.1/security-tls-keystore.md  |  4 ++--
 .../versioned_docs/version-2.6.1/security-tls-transport.md |  2 +-
 .../version-2.6.2/admin-api-persistent-topics.md           |  2 +-
 .../version-2.6.2/administration-dashboard.md              |  4 ++--
 .../version-2.6.2/administration-load-balance.md           |  2 +-
 .../versioned_docs/version-2.6.2/administration-proxy.md   |  2 +-
 .../version-2.6.2/administration-pulsar-manager.md         | 12 ++++++------
 .../versioned_docs/version-2.6.2/client-libraries-java.md  |  6 +++---
 .../versioned_docs/version-2.6.2/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.6.2/deploy-bare-metal.md      |  4 ++--
 site2/website/versioned_docs/version-2.6.2/deploy-dcos.md  |  2 +-
 .../version-2.6.2/developing-binary-protocol.md            |  2 +-
 .../versioned_docs/version-2.6.2/functions-develop.md      |  2 +-
 .../website/versioned_docs/version-2.6.2/helm-overview.md  |  4 ++--
 .../version-2.6.2/reference-configuration.md               | 12 ++++++------
 .../versioned_docs/version-2.6.2/reference-pulsar-admin.md |  8 ++++----
 .../versioned_docs/version-2.6.2/reference-terminology.md  |  2 +-
 .../versioned_docs/version-2.6.2/security-athenz.md        |  2 +-
 .../versioned_docs/version-2.6.2/security-authorization.md |  2 +-
 site2/website/versioned_docs/version-2.6.2/security-jwt.md |  2 +-
 .../versioned_docs/version-2.6.2/security-kerberos.md      |  6 +++---
 .../versioned_docs/version-2.6.2/security-tls-keystore.md  |  4 ++--
 .../versioned_docs/version-2.6.2/security-tls-transport.md |  2 +-
 .../version-2.6.3/admin-api-persistent-topics.md           |  2 +-
 .../version-2.6.3/administration-dashboard.md              |  4 ++--
 .../version-2.6.3/administration-load-balance.md           |  2 +-
 .../versioned_docs/version-2.6.3/administration-proxy.md   |  2 +-
 .../version-2.6.3/administration-pulsar-manager.md         | 12 ++++++------
 .../versioned_docs/version-2.6.3/client-libraries-java.md  |  6 +++---
 .../versioned_docs/version-2.6.3/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.6.3/deploy-bare-metal.md      |  4 ++--
 site2/website/versioned_docs/version-2.6.3/deploy-dcos.md  |  2 +-
 .../version-2.6.3/developing-binary-protocol.md            |  2 +-
 .../versioned_docs/version-2.6.3/functions-develop.md      |  2 +-
 .../website/versioned_docs/version-2.6.3/helm-overview.md  |  4 ++--
 .../version-2.6.3/reference-configuration.md               | 12 ++++++------
 .../versioned_docs/version-2.6.3/reference-pulsar-admin.md |  8 ++++----
 .../versioned_docs/version-2.6.3/reference-terminology.md  |  2 +-
 .../versioned_docs/version-2.6.3/security-athenz.md        |  2 +-
 .../versioned_docs/version-2.6.3/security-authorization.md |  2 +-
 site2/website/versioned_docs/version-2.6.3/security-jwt.md |  2 +-
 .../versioned_docs/version-2.6.3/security-kerberos.md      |  6 +++---
 .../versioned_docs/version-2.6.3/security-tls-keystore.md  |  4 ++--
 .../versioned_docs/version-2.6.3/security-tls-transport.md |  2 +-
 .../version-2.6.4/admin-api-persistent-topics.md           |  2 +-
 .../version-2.6.4/administration-dashboard.md              |  4 ++--
 .../version-2.6.4/administration-load-balance.md           |  2 +-
 .../versioned_docs/version-2.6.4/administration-proxy.md   |  2 +-
 .../version-2.6.4/administration-pulsar-manager.md         | 12 ++++++------
 .../versioned_docs/version-2.6.4/client-libraries-java.md  |  8 ++++----
 .../versioned_docs/version-2.6.4/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.6.4/deploy-bare-metal.md      |  4 ++--
 site2/website/versioned_docs/version-2.6.4/deploy-dcos.md  |  2 +-
 .../version-2.6.4/developing-binary-protocol.md            |  2 +-
 .../versioned_docs/version-2.6.4/functions-develop.md      |  2 +-
 .../website/versioned_docs/version-2.6.4/helm-overview.md  |  4 ++--
 .../version-2.6.4/reference-configuration.md               | 14 +++++++-------
 .../versioned_docs/version-2.6.4/reference-pulsar-admin.md |  8 ++++----
 .../versioned_docs/version-2.6.4/reference-terminology.md  |  2 +-
 .../versioned_docs/version-2.6.4/security-athenz.md        |  2 +-
 .../versioned_docs/version-2.6.4/security-authorization.md |  2 +-
 .../versioned_docs/version-2.6.4/security-kerberos.md      |  6 +++---
 .../versioned_docs/version-2.6.4/security-tls-keystore.md  |  4 ++--
 .../versioned_docs/version-2.6.4/security-tls-transport.md |  2 +-
 .../version-2.7.0/administration-dashboard.md              |  4 ++--
 .../version-2.7.0/administration-load-balance.md           |  2 +-
 .../version-2.7.0/administration-pulsar-manager.md         | 12 ++++++------
 .../versioned_docs/version-2.7.0/client-libraries-java.md  |  6 +++---
 .../versioned_docs/version-2.7.0/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.7.0/deploy-bare-metal.md      |  4 ++--
 site2/website/versioned_docs/version-2.7.0/deploy-dcos.md  |  2 +-
 .../version-2.7.0/developing-binary-protocol.md            |  2 +-
 .../versioned_docs/version-2.7.0/functions-develop.md      |  2 +-
 .../website/versioned_docs/version-2.7.0/helm-overview.md  |  4 ++--
 .../version-2.7.0/reference-configuration.md               |  6 +++---
 .../versioned_docs/version-2.7.0/reference-pulsar-admin.md | 10 +++++-----
 .../versioned_docs/version-2.7.0/reference-terminology.md  |  2 +-
 .../versioned_docs/version-2.7.0/security-athenz.md        |  2 +-
 .../versioned_docs/version-2.7.0/security-authorization.md |  2 +-
 site2/website/versioned_docs/version-2.7.0/security-jwt.md |  2 +-
 .../versioned_docs/version-2.7.0/security-kerberos.md      |  6 +++---
 .../versioned_docs/version-2.7.0/security-tls-keystore.md  |  4 ++--
 .../versioned_docs/version-2.7.0/security-tls-transport.md |  2 +-
 .../version-2.7.1/administration-dashboard.md              |  4 ++--
 .../version-2.7.1/administration-load-balance.md           |  2 +-
 .../version-2.7.1/administration-pulsar-manager.md         | 12 ++++++------
 .../versioned_docs/version-2.7.1/client-libraries-java.md  |  6 +++---
 .../versioned_docs/version-2.7.1/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.7.1/deploy-bare-metal.md      |  4 ++--
 site2/website/versioned_docs/version-2.7.1/deploy-dcos.md  |  2 +-
 .../version-2.7.1/developing-binary-protocol.md            |  2 +-
 .../versioned_docs/version-2.7.1/functions-develop.md      |  2 +-
 .../website/versioned_docs/version-2.7.1/helm-overview.md  |  4 ++--
 .../version-2.7.1/reference-configuration.md               |  6 +++---
 .../versioned_docs/version-2.7.1/reference-pulsar-admin.md |  8 ++++----
 .../versioned_docs/version-2.7.1/reference-terminology.md  |  2 +-
 .../versioned_docs/version-2.7.1/security-athenz.md        |  2 +-
 .../versioned_docs/version-2.7.1/security-authorization.md |  2 +-
 site2/website/versioned_docs/version-2.7.1/security-jwt.md |  2 +-
 .../versioned_docs/version-2.7.1/security-kerberos.md      |  6 +++---
 .../versioned_docs/version-2.7.1/security-tls-keystore.md  |  4 ++--
 .../versioned_docs/version-2.7.1/security-tls-transport.md |  2 +-
 .../version-2.7.2/administration-dashboard.md              |  2 +-
 .../version-2.7.2/administration-load-balance.md           |  2 +-
 .../version-2.7.2/administration-pulsar-manager.md         | 12 ++++++------
 .../versioned_docs/version-2.7.2/client-libraries-java.md  |  6 +++---
 .../versioned_docs/version-2.7.2/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.7.2/deploy-bare-metal.md      |  4 ++--
 site2/website/versioned_docs/version-2.7.2/deploy-dcos.md  |  2 +-
 .../version-2.7.2/developing-binary-protocol.md            |  2 +-
 .../versioned_docs/version-2.7.2/functions-develop.md      |  2 +-
 .../website/versioned_docs/version-2.7.2/helm-overview.md  |  2 +-
 .../version-2.7.2/reference-configuration.md               |  6 +++---
 .../versioned_docs/version-2.7.2/reference-pulsar-admin.md |  6 +++---
 .../versioned_docs/version-2.7.2/reference-terminology.md  |  2 +-
 .../versioned_docs/version-2.7.2/security-athenz.md        |  2 +-
 .../versioned_docs/version-2.7.2/security-authorization.md |  2 +-
 site2/website/versioned_docs/version-2.7.2/security-jwt.md |  2 +-
 .../versioned_docs/version-2.7.2/security-kerberos.md      |  6 +++---
 .../versioned_docs/version-2.7.2/security-tls-keystore.md  |  4 ++--
 .../versioned_docs/version-2.7.2/security-tls-transport.md |  2 +-
 .../version-2.7.3/administration-dashboard.md              |  2 +-
 .../version-2.7.3/administration-load-balance.md           |  2 +-
 .../version-2.7.3/administration-pulsar-manager.md         | 12 ++++++------
 .../versioned_docs/version-2.7.3/client-libraries-java.md  |  6 +++---
 .../versioned_docs/version-2.7.3/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.7.3/deploy-bare-metal.md      |  4 ++--
 site2/website/versioned_docs/version-2.7.3/deploy-dcos.md  |  2 +-
 .../version-2.7.3/developing-binary-protocol.md            |  2 +-
 .../versioned_docs/version-2.7.3/functions-develop.md      |  2 +-
 .../website/versioned_docs/version-2.7.3/helm-overview.md  |  2 +-
 .../version-2.7.3/reference-configuration.md               |  6 +++---
 .../versioned_docs/version-2.7.3/reference-pulsar-admin.md |  6 +++---
 .../versioned_docs/version-2.7.3/reference-terminology.md  |  2 +-
 .../versioned_docs/version-2.7.3/security-athenz.md        |  2 +-
 .../versioned_docs/version-2.7.3/security-authorization.md |  2 +-
 site2/website/versioned_docs/version-2.7.3/security-jwt.md |  2 +-
 .../versioned_docs/version-2.7.3/security-kerberos.md      |  6 +++---
 .../versioned_docs/version-2.7.3/security-tls-keystore.md  |  4 ++--
 .../versioned_docs/version-2.7.3/security-tls-transport.md |  2 +-
 .../version-2.8.0/administration-dashboard.md              |  4 ++--
 .../version-2.8.0/administration-load-balance.md           |  2 +-
 .../version-2.8.0/administration-pulsar-manager.md         | 12 ++++++------
 .../versioned_docs/version-2.8.0/client-libraries-java.md  |  6 +++---
 .../version-2.8.0/client-libraries-websocket.md            |  2 +-
 .../versioned_docs/version-2.8.0/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.8.0/deploy-bare-metal.md      |  4 ++--
 site2/website/versioned_docs/version-2.8.0/deploy-dcos.md  |  2 +-
 .../version-2.8.0/developing-binary-protocol.md            |  2 +-
 .../versioned_docs/version-2.8.0/functions-develop.md      |  2 +-
 .../website/versioned_docs/version-2.8.0/helm-overview.md  |  4 ++--
 .../version-2.8.0/reference-configuration.md               |  6 +++---
 .../versioned_docs/version-2.8.0/reference-pulsar-admin.md |  4 ++--
 .../versioned_docs/version-2.8.0/reference-terminology.md  |  2 +-
 .../versioned_docs/version-2.8.0/security-athenz.md        |  2 +-
 .../versioned_docs/version-2.8.0/security-authorization.md |  2 +-
 site2/website/versioned_docs/version-2.8.0/security-jwt.md |  2 +-
 .../versioned_docs/version-2.8.0/security-kerberos.md      |  6 +++---
 .../versioned_docs/version-2.8.0/security-tls-keystore.md  |  4 ++--
 .../versioned_docs/version-2.8.0/security-tls-transport.md |  2 +-
 .../version-2.8.1/administration-dashboard.md              |  4 ++--
 .../version-2.8.1/administration-load-balance.md           |  2 +-
 .../version-2.8.1/administration-pulsar-manager.md         | 12 ++++++------
 .../versioned_docs/version-2.8.1/client-libraries-java.md  |  6 +++---
 .../version-2.8.1/client-libraries-websocket.md            |  2 +-
 .../versioned_docs/version-2.8.1/concepts-messaging.md     |  2 +-
 .../versioned_docs/version-2.8.1/deploy-bare-metal.md      |  4 ++--
 site2/website/versioned_docs/version-2.8.1/deploy-dcos.md  |  2 +-
 .../version-2.8.1/developing-binary-protocol.md            |  2 +-
 .../versioned_docs/version-2.8.1/functions-develop.md      |  2 +-
 .../website/versioned_docs/version-2.8.1/helm-overview.md  |  4 ++--
 .../version-2.8.1/reference-configuration.md               |  6 +++---
 .../versioned_docs/version-2.8.1/reference-pulsar-admin.md |  4 ++--
 .../versioned_docs/version-2.8.1/reference-terminology.md  |  2 +-
 .../versioned_docs/version-2.8.1/security-athenz.md        |  2 +-
 .../versioned_docs/version-2.8.1/security-authorization.md |  2 +-
 site2/website/versioned_docs/version-2.8.1/security-jwt.md |  2 +-
 .../versioned_docs/version-2.8.1/security-kerberos.md      |  6 +++---
 .../versioned_docs/version-2.8.1/security-tls-keystore.md  |  4 ++--
 .../versioned_docs/version-2.8.1/security-tls-transport.md |  2 +-
 366 files changed, 758 insertions(+), 758 deletions(-)

diff --git a/site2/docs/administration-dashboard.md b/site2/docs/administration-dashboard.md
index d3db261..50971eb 100644
--- a/site2/docs/administration-dashboard.md
+++ b/site2/docs/administration-dashboard.md
@@ -51,7 +51,7 @@ If the Pulsar service runs in standalone mode in `localhost`, the `SERVICE_URL`
 be the IP address of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, you need to
-explicitely set the advertise address to the host IP address. For example:
+explicitly set the advertise address to the host IP address. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
@@ -59,4 +59,4 @@ $ bin/pulsar standalone --advertised-address 1.2.3.4
 
 ### Known issues
 
-Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
\ No newline at end of file
+Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
diff --git a/site2/docs/administration-load-balance.md b/site2/docs/administration-load-balance.md
index 3756d14..4708b04 100644
--- a/site2/docs/administration-load-balance.md
+++ b/site2/docs/administration-load-balance.md
@@ -115,7 +115,7 @@ loadBalancerNamespaceMaximumBundles=128
 
 ### Shed load automatically
 
-The support for automatic load shedding is avaliable in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
+The support for automatic load shedding is available in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
 
 When a broker is identified as overloaded, the broker forces to "unload" a subset of the bundles, the ones with higher traffic, that make up for the overload percentage.
 
diff --git a/site2/docs/administration-pulsar-manager.md b/site2/docs/administration-pulsar-manager.md
index eefc56d..888ad32 100644
--- a/site2/docs/administration-pulsar-manager.md
+++ b/site2/docs/administration-pulsar-manager.md
@@ -126,7 +126,7 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -141,13 +141,13 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --private-key` command.
-* `PRIVATE_KEY`: private key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
-* `PUBLIC_KEY`: public key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
+* `PRIVATE_KEY`: private key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
+* `PUBLIC_KEY`: public key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
 * `$PWD/secret`: the folder where the private key and public key generated by the `bin/pulsar tokens create-key-pair` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -162,12 +162,12 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --secret-key` command.
-* `SECRET_KEY`: secret key path mounted in container, genrated by `bin/pulsar tokens create-secret-key` command.
+* `SECRET_KEY`: secret key path mounted in container, generated by `bin/pulsar tokens create-secret-key` command.
 * `$PWD/secret`: the folder where the secret key generated by the `bin/pulsar tokens create-secret-key` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
diff --git a/site2/docs/client-libraries-java.md b/site2/docs/client-libraries-java.md
index fb3baf2..7f59449 100644
--- a/site2/docs/client-libraries-java.md
+++ b/site2/docs/client-libraries-java.md
@@ -593,7 +593,7 @@ If a broker dispatches only one message at a time, consumer1 receives the follow
 ("key-4", "message-4-1")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-1", "message-1-2")
@@ -626,7 +626,7 @@ Consumer consumer2 = client.newConsumer()
 
 `Key_Shared` subscription is like `Shared` subscription, all consumers can attach to the same subscription. But it is different from `Key_Shared` subscription, messages with the same key are delivered to only one consumer in order. The possible distribution of messages between different consumers (by default we do not know in advance which keys will be assigned to a consumer, but a key will only be assigned to a consumer at the same time).
 
-consumer1 receives the follwoing information.
+consumer1 receives the following information.
 
 ```
 ("key-1", "message-1-1")
@@ -636,7 +636,7 @@ consumer1 receives the follwoing information.
 ("key-3", "message-3-2")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-2", "message-2-1")
diff --git a/site2/docs/client-libraries-websocket.md b/site2/docs/client-libraries-websocket.md
index dc558ff..aec5711 100644
--- a/site2/docs/client-libraries-websocket.md
+++ b/site2/docs/client-libraries-websocket.md
@@ -69,7 +69,7 @@ All exchanges via the WebSocket API use JSON.
 
 ### Authentication
 
-#### Broswer javascript WebSocket client
+#### Browser javascript WebSocket client
 
 Use the query param `token` transport the authentication token.
 
diff --git a/site2/docs/concepts-messaging.md b/site2/docs/concepts-messaging.md
index 2d21b40..a717c7f 100644
--- a/site2/docs/concepts-messaging.md
+++ b/site2/docs/concepts-messaging.md
@@ -519,7 +519,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/docs/deploy-bare-metal.md b/site2/docs/deploy-bare-metal.md
index 0012e91..0062284 100644
--- a/site2/docs/deploy-bare-metal.md
+++ b/site2/docs/deploy-bare-metal.md
@@ -168,7 +168,7 @@ For more details of how to configure tiered storage feature, you can refer to th
 
 ## Deploy a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and want to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination-related and configuration-related tasks for Pulsar. To deploy a Pulsar cluster, you need to deploy ZooKeeper first. A 3-node ZooKeeper cluster is the recommended configuration. Pulsar does not make heavy use of ZooKeeper, so the lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -372,7 +372,7 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
+Once you successfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connect to the running cluster
 
diff --git a/site2/docs/developing-binary-protocol.md b/site2/docs/developing-binary-protocol.md
index 434ffa7..33861af 100644
--- a/site2/docs/developing-binary-protocol.md
+++ b/site2/docs/developing-binary-protocol.md
@@ -412,7 +412,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/docs/functions-develop.md b/site2/docs/functions-develop.md
index 3b0780d..df0e089 100644
--- a/site2/docs/functions-develop.md
+++ b/site2/docs/functions-develop.md
@@ -1094,7 +1094,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/docs/helm-overview.md b/site2/docs/helm-overview.md
index b1c0ee4..c7e2c5d 100644
--- a/site2/docs/helm-overview.md
+++ b/site2/docs/helm-overview.md
@@ -10,7 +10,7 @@ sidebar_label: Overview
 
 The Apache Pulsar Helm chart provides one of the most convenient ways to operate Pulsar on Kubernetes. With all the required components, Helm chart is scalable and thus being suitable for large-scale deployments.
 
-The Apache Pulsar Helm chart contains all compoments to support the features and functions that Pulsar delivers. You can install and configure these components seperately.
+The Apache Pulsar Helm chart contains all components to support the features and functions that Pulsar delivers. You can install and configure these components separately.
 
 - Pulsar core components:
     - ZooKeeper
@@ -89,7 +89,7 @@ To uninstall the Apache Pulsar Helm chart, run the following command:
 helm delete <pulsar-release-name>
 ```
 
-For the purposes of continuity, some Kubernetes objects in these charts cannot be removed by `helm delete` command. It is recommended to *conciously* remove these items, as they affect re-deployment.
+For the purposes of continuity, some Kubernetes objects in these charts cannot be removed by `helm delete` command. It is recommended to *consciously* remove these items, as they affect re-deployment.
 
 * PVCs for stateful data: remove these items.
     - ZooKeeper: This is your metadata.
diff --git a/site2/docs/reference-configuration.md b/site2/docs/reference-configuration.md
index a96c328..6f0052b 100644
--- a/site2/docs/reference-configuration.md
+++ b/site2/docs/reference-configuration.md
@@ -56,7 +56,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -97,7 +97,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
-|sortedLedgerStorageEnabled|Whether sorted-ledger storage is enabled.|ture|
+|sortedLedgerStorageEnabled|Whether sorted-ledger storage is enabled.|true|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
 |numAddWorkerThreads|The number of threads that should handle write requests. if zero, the writes would be handled by netty threads directly.|0|
 |numReadWorkerThreads|The number of threads that should handle read requests. if zero, the reads would be handled by netty threads directly.|8|
@@ -244,7 +244,7 @@ brokerServiceCompactionThresholdInBytes|If the estimated backlog size is greater
 |offloadersDirectory|The directory for all the offloader implementations.|./offloaders|
 |bookkeeperMetadataServiceUri| Metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location. This value can be fetched using `bookkeeper shell whatisinstanceid` command in BookKeeper cluster. For example: zk+hierarchical://localhost:2181/ledgers. The metadata service uri list can also be semicolon separated values like below: zk+hierarchical://zk1:2181;zk2:2181;zk3:2181/ledgers ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientNumWorkerThreads|  Number of BookKeeper client worker threads. Default is Runtime.getRuntime().availableProcessors()  ||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
diff --git a/site2/docs/reference-pulsar-admin.md b/site2/docs/reference-pulsar-admin.md
index fbfdc9e..0339cd2 100644
--- a/site2/docs/reference-pulsar-admin.md
+++ b/site2/docs/reference-pulsar-admin.md
@@ -2423,7 +2423,7 @@ Options
 |----|---|---|
 |`-e`, `--bookkeeper-ensemble`|Number of bookies to use for a topic|0|
 |`-w`, `--bookkeeper-write-quorum`|How many writes to make of each entry|0|
-|`-a`, `--bookkeeper-ack-quorum`|Number of acks (garanteed copies) to wait for each entry|0|
+|`-a`, `--bookkeeper-ack-quorum`|Number of acks (guaranteed copies) to wait for each entry|0|
 |`-r`, `--ml-mark-delete-max-rate`|Throttling rate of mark-delete operation (0 means no throttle)||
 
 ### `remove-persistence`
@@ -2617,7 +2617,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
diff --git a/site2/docs/reference-terminology.md b/site2/docs/reference-terminology.md
index 92afa69..8a31f6c 100644
--- a/site2/docs/reference-terminology.md
+++ b/site2/docs/reference-terminology.md
@@ -46,7 +46,7 @@ modes (exclusive, shared, failover and key_shared).
 
 #### Pub-Sub
 
-A messaging pattern in which [producer](#producer) proccesses publish messages on [topics](#topic) that
+A messaging pattern in which [producer](#producer) processes publish messages on [topics](#topic) that
 are then consumed (processed) by [consumer](#consumer) processes.
 
 #### Producer
diff --git a/site2/docs/security-athenz.md b/site2/docs/security-athenz.md
index a59953d..2439519 100644
--- a/site2/docs/security-athenz.md
+++ b/site2/docs/security-athenz.md
@@ -41,7 +41,7 @@ For more specific steps involving UI, refer to [Example Service Access Control S
 > ### TLS encryption 
 >
 > Note that when you are using Athenz as an authentication provider, you had better use TLS encryption 
-> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encrption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
+> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encryption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
 
 In the `conf/broker.conf` configuration file in your Pulsar installation, you need to provide the class name of the Athenz authentication provider as well as a comma-separated list of provider domain names.
 
diff --git a/site2/docs/security-authorization.md b/site2/docs/security-authorization.md
index e4c3b2f..23ac79c 100644
--- a/site2/docs/security-authorization.md
+++ b/site2/docs/security-authorization.md
@@ -37,7 +37,7 @@ Pulsar uses *Proxy roles* to enable the authentication. Proxy roles are specifie
 
 You must authorize both the *proxy role* and the *original principal* to access a resource to ensure that the resource is accessible via the proxy. Administrators can take two approaches to authorize the *proxy role* and the *original principal*.
 
-The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creats a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
+The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creates a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
 
 Another approach is to make the proxy role a superuser. This allows the proxy to access all resources. The client still needs to authenticate with the proxy, and all requests made through the proxy have their role downgraded to the *original principal* of the authenticated client. However, if the proxy is compromised, a bad actor could get full access to your cluster.
 
diff --git a/site2/docs/security-jwt.md b/site2/docs/security-jwt.md
index 361462b..6e6c5e8e 100644
--- a/site2/docs/security-jwt.md
+++ b/site2/docs/security-jwt.md
@@ -257,7 +257,7 @@ brokerClientAuthenticationParameters={"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0
 # Or, alternatively, read token from file
 # brokerClientAuthenticationParameters={"file":"///path/to/proxy-token.txt"}
 
-# Whether client authorization credentials are forwared to the broker for re-authorization.
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
 # Authentication must be enabled via authenticationEnabled=true for this to take effect.
 forwardAuthorizationCredentials=true
 ```
diff --git a/site2/docs/security-kerberos.md b/site2/docs/security-kerberos.md
index 11e3aa9..f7fe4c5 100644
--- a/site2/docs/security-kerberos.md
+++ b/site2/docs/security-kerberos.md
@@ -193,7 +193,7 @@ You must ensure that the operating system user who starts pulsar client can reac
 
 #### Configure CLI tools
 
-If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to preform the following steps:
+If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to perform the following steps:
 
 Step 1. Enter the command below to configure your `client.conf`.
 ```shell
@@ -218,7 +218,7 @@ With the above configuration, client and broker can do authentication using Kerb
 
 A client that connects to Pulsar Proxy is a little different. Pulsar Proxy (as a SASL Server in Kerberos) authenticates Client (as a SASL client in Kerberos) first; and then Pulsar broker authenticates Pulsar Proxy. 
 
-Now in comparision with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
+Now in comparison with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
 
 ### Create principal for Pulsar Proxy in Kerberos
 
@@ -238,7 +238,7 @@ sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{client-keytabnam
 
 ### Add a section in JAAS configuration file for Pulsar Proxy
 
-In comparision with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
+In comparison with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
 
 Here is an example named `pulsar_jaas.conf`:
 
diff --git a/site2/docs/security-tls-keystore.md b/site2/docs/security-tls-keystore.md
index fd5a75a..854250e 100644
--- a/site2/docs/security-tls-keystore.md
+++ b/site2/docs/security-tls-keystore.md
@@ -121,7 +121,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
@@ -226,7 +226,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
diff --git a/site2/docs/security-tls-transport.md b/site2/docs/security-tls-transport.md
index 0aa4617..44414a9 100644
--- a/site2/docs/security-tls-transport.md
+++ b/site2/docs/security-tls-transport.md
@@ -78,7 +78,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/adaptors-kafka.md b/site2/website/versioned_docs/version-2.1.0-incubating/adaptors-kafka.md
index 7c627c8..9dea078 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/adaptors-kafka.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/adaptors-kafka.md
@@ -256,5 +256,5 @@ You can configure Pulsar authentication provider directly from the Kafka propert
 |:---------------------------------------|:--------|:---------------------------------------------------------------------------------------|
 | [`pulsar.consumer.name`](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setConsumerName-java.lang.String-) | | Set the consumer name |
 | [`pulsar.consumer.receiver.queue.size`](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setReceiverQueueSize-int-) | 1000 | Sets the size of the consumer receive queue |
-| [`pulsar.consumer.total.receiver.queue.size.across.partitions`](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-) | 50000 | Set the max total receiver queue size across partitons |
+| [`pulsar.consumer.total.receiver.queue.size.across.partitions`](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-) | 50000 | Set the max total receiver queue size across partitions |
 
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/administration-dashboard.md b/site2/website/versioned_docs/version-2.1.0-incubating/administration-dashboard.md
index 26339b0..a78c4b1 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/administration-dashboard.md
@@ -40,7 +40,7 @@ If the Pulsar service is running in standalone mode in `localhost`, the `SERVICE
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, we need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/administration-proxy.md b/site2/website/versioned_docs/version-2.1.0-incubating/administration-proxy.md
index 9178b7e..1fb6220 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/administration-proxy.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/administration-proxy.md
@@ -55,7 +55,7 @@ The Pulsar proxy can be configured using the [`proxy.conf`](reference-configurat
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |10000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/client-libraries-go.md b/site2/website/versioned_docs/version-2.1.0-incubating/client-libraries-go.md
index 9efa4ab..3084c20 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/client-libraries-go.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/client-libraries-go.md
@@ -196,7 +196,7 @@ func main() {
         producer.SendAsync(ctx, asyncMsg, func(msg pulsar.ProducerMessage, err error) {
             if err != nil { log.Fatal(err) }
 
-            fmt.Printf("Message %s succesfully published", msg.ID())
+            fmt.Printf("Message %s successfully published", msg.ID())
         })
     }
 }
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/concepts-messaging.md b/site2/website/versioned_docs/version-2.1.0-incubating/concepts-messaging.md
index 1df8f92..efffab5 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/concepts-messaging.md
@@ -275,7 +275,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/cookbooks-compaction.md b/site2/website/versioned_docs/version-2.1.0-incubating/cookbooks-compaction.md
index f4ed570..13d4c6e 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/cookbooks-compaction.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/cookbooks-compaction.md
@@ -18,7 +18,7 @@ To use compaction:
 
 ## When should I use compacted topics? {#when}
 
-The classic example of a topic that could benefit from compaction would be a stock ticker topic through which consumers can access up-to-date values for specific stocks. Imagine a scneario in which messages carrying stock value data use the stock symbol as the key (`GOOG`, `AAPL`, `TWTR`, etc.). Compacting this topic would give consumers on the topic two options:
+The classic example of a topic that could benefit from compaction would be a stock ticker topic through which consumers can access up-to-date values for specific stocks. Imagine a scenario in which messages carrying stock value data use the stock symbol as the key (`GOOG`, `AAPL`, `TWTR`, etc.). Compacting this topic would give consumers on the topic two options:
 
 * They can read from the "original," non-compacted topic in case they need access to "historical" values, i.e. the entirety of the topic's messages.
 * They can read from the compacted topic if they only want to see the most up-to-date messages.
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.1.0-incubating/deploy-bare-metal.md
index 0c7ff00..3cde523 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/deploy-bare-metal.md
@@ -139,7 +139,7 @@ pulsar-io-twitter-{{pulsar:version}}.nar
 
 ## Deploying a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and would like to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and would like to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you'll need to deploy ZooKeeper first (before all other components). We recommend deploying a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -294,11 +294,11 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you've succesfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
+Once you've successfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connecting to the running cluster
 
-Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is runnning properly.
+Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is running properly.
 
 To use the `pulsar-client` tool, first modify the client configuration file in [`conf/client.conf`](reference-configuration.md#client) in your binary package. You'll need to change the values for `webServiceUrl` and `brokerServiceUrl`, substituting `localhost` (which is the default), with the DNS name that you've assigned to your broker/bookie hosts. Here's an example:
 
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/deploy-dcos.md b/site2/website/versioned_docs/version-2.1.0-incubating/deploy-dcos.md
index 2f22c72..a234326 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/deploy-dcos.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/deploy-dcos.md
@@ -114,7 +114,7 @@ Click into `grafana` to get the endpoint for Grafana, which is `192.168.65.121:3
  
 ![DC/OS grafana endpoint](assets/dcos_grafana_endpoint.png)
 
-If you click that endpoint, you can access the Grafana dashbaord.
+If you click that endpoint, you can access the Grafana dashboard.
 
 ![DC/OS grafana targets](assets/dcos_grafana_dashboard.png)
 
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/deploy-kubernetes.md b/site2/website/versioned_docs/version-2.1.0-incubating/deploy-kubernetes.md
index 57ca18d..892ee28 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/deploy-kubernetes.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/deploy-kubernetes.md
@@ -307,7 +307,7 @@ $ pulsar-admin persistent stats persistent://public/default/my-topic
 
 ### Monitoring
 
-The default monitoring stack for Pulsar on Kubernetes has consists of [Prometheus](#prometheus), [Grafana](#grafana), and the [Pulsar dashbaord](administration-dashboard.md).
+The default monitoring stack for Pulsar on Kubernetes has consists of [Prometheus](#prometheus), [Grafana](#grafana), and the [Pulsar dashboard](administration-dashboard.md).
 
 > If you deployed the cluster to Minikube, the following monitoring ports are mapped at the minikube VM:
 >
@@ -324,7 +324,7 @@ All Pulsar metrics in Kubernetes are collected by a [Prometheus](https://prometh
 
 #### Grafana
 
-In your Kubernetes cluster, you can use [Grafana](https://grafana.com) to view dashbaords for Pulsar [namespaces](reference-terminology.md#namespace) (message rates, latency, and storage), JVM stats, [ZooKeeper](https://zookeeper.apache.org), and [BookKeeper](reference-terminology.md#bookkeeper). You can get access to the pod serving Grafana using `kubectl`'s [`port-forward`](https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster) command:
+In your Kubernetes cluster, you can use [Grafana](https://grafana.com) to view dashboards for Pulsar [namespaces](reference-terminology.md#namespace) (message rates, latency, and storage), JVM stats, [ZooKeeper](https://zookeeper.apache.org), and [BookKeeper](reference-terminology.md#bookkeeper). You can get access to the pod serving Grafana using `kubectl`'s [`port-forward`](https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster) command:
 
 ```bash
 $ kubectl port-forward \
@@ -379,7 +379,7 @@ You can find client documentation for:
 Pulsar also provides a [Helm](https://docs.helm.sh/) chart for deploying a Pulsar cluster to Kubernetes. Before you start,
 make sure you follow [Helm documentation](https://docs.helm.sh/using_helm) to install helm.
 
-> Assum you have cloned pulsar repo under a `PULSAR_HOME` directory.
+> Assume you have cloned pulsar repo under a `PULSAR_HOME` directory.
 
 ### Minikube
 
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.1.0-incubating/developing-binary-protocol.md
index 9b39b6d..ffcadbb 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/developing-binary-protocol.md
@@ -410,7 +410,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/functions-deploying.md b/site2/website/versioned_docs/version-2.1.0-incubating/functions-deploying.md
index 53d6598..a7370b9 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/functions-deploying.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/functions-deploying.md
@@ -171,7 +171,7 @@ $ bin/pulsar-admin functions create \
 ```
 
 > #### Resources are *per instance*
-> The resources that you apply to a given Pulsar Function are applied to each [instance](#parallelism) of the function. If you apply 8 GB of RAM to a function with a paralellism of 5, for example, then you are applying 40 GB of RAM total for the function. You should always make sure to factor paralellism---i.e. the number of instances---into your resource calculations
+> The resources that you apply to a given Pulsar Function are applied to each [instance](#parallelism) of the function. If you apply 8 GB of RAM to a function with a parallelism of 5, for example, then you are applying 40 GB of RAM total for the function. You should always make sure to factor parallelism---i.e. the number of instances---into your resource calculations
 
 ## Triggering Pulsar Functions
 
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/functions-quickstart.md b/site2/website/versioned_docs/version-2.1.0-incubating/functions-quickstart.md
index 8f214bf..f20298a 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/functions-quickstart.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/functions-quickstart.md
@@ -207,7 +207,7 @@ $ bin/pulsar-admin functions delete \
   --name exclamation
 ```
 
-If you see `Deleted successfully` in the output, then you've succesfully run, updated, and shut down a Pulsar Function running in cluster mode. Congrats! Now, let's go even further and run a brand new function in the next section.
+If you see `Deleted successfully` in the output, then you've successfully run, updated, and shut down a Pulsar Function running in cluster mode. Congrats! Now, let's go even further and run a brand new function in the next section.
 
 ## Writing and running a new function
 
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/functions-state.md b/site2/website/versioned_docs/version-2.1.0-incubating/functions-state.md
index e9d62d6..b239b4f 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/functions-state.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/functions-state.md
@@ -12,14 +12,14 @@ for storing the `State` for functions. For example, A `WordCount` function can s
 
 ### Java API
 
-Currently Pulsar Functions expose following APIs for mutating and accessing State. These APIs are avaible in the [Context](functions-api.md#context) object when
+Currently Pulsar Functions expose following APIs for mutating and accessing State. These APIs are available in the [Context](functions-api.md#context) object when
 you are using [Java SDK](functions-api.md#java-sdk-functions) functions.
 
 #### incrCounter
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/io-aerospike.md b/site2/website/versioned_docs/version-2.1.0-incubating/io-aerospike.md
index 0aaf916..6f01ec9 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/io-aerospike.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/io-aerospike.md
@@ -13,7 +13,7 @@ The following configuration options are specific to the Aerospike Connector:
 
 | Name | Required | Default | Description |
 |------|----------|---------|-------------|
-| `seedHosts` | `true` | `null` | Comma seperated list of one or more Aerospike cluster hosts; each host can be specified as a valid IP address or hostname followed by an optional port number (default is 3000). | 
+| `seedHosts` | `true` | `null` | Comma separated list of one or more Aerospike cluster hosts; each host can be specified as a valid IP address or hostname followed by an optional port number (default is 3000). | 
 | `keyspace` | `true` | `null` | Aerospike namespace to use. |
 | `keySet` | `false` | `null` | Aerospike set name to use. |
 | `columnName` | `true` | `null` | Aerospike bin name to use. |
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/io-develop.md b/site2/website/versioned_docs/version-2.1.0-incubating/io-develop.md
index 1257b5c..dacb592 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/io-develop.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/io-develop.md
@@ -30,7 +30,7 @@ connector can create the Kafka client in this `open` method.
 
 Beside the passed-in `config` object, the Pulsar runtime also provides a `SourceContext` for the
 connector to access runtime resources for tasks like collecting metrics. The implementation can
-save the `SourceContext` for futher usage.
+save the `SourceContext` for further usage.
 
 ```java
     /**
@@ -73,7 +73,7 @@ These information includes:
   by Pulsar IO runtime to do message deduplication and achieve exactly-once processing guarantee.
 - *Properties*: _Optional_. If the record carries user-defined properties, return those properties.
 
-Additionally, the implemention of the record should provide two methods: `ack` and `fail`. These
+Additionally, the implementation of the record should provide two methods: `ack` and `fail`. These
 two methods will be used by Pulsar IO connector to acknowledge the records that it has done
 processing and fail the records that it has failed to process.
 
@@ -109,7 +109,7 @@ The main task for a Sink implementor is to implement {@inject: github:`write`:/p
     void write(Record<T> record) throws Exception;
 ```
 
-In the implemention of `write` method, the implementor can decide how to write the value and
+In the implementation of `write` method, the implementor can decide how to write the value and
 the optional key to the actual source, and leverage all the provided information such as
 `Partition Id`, `Record Sequence` for achieving different processing guarantees. The implementor
 is also responsible for acknowledging records if it has successfully written them or failing
@@ -119,7 +119,7 @@ records if has failed to write them.
 
 Testing connectors can be challenging because Pulsar IO connectors interact with two systems
 that may be difficult to mock - Pulsar and the system the connector is connecting to. It is
-recommended to write very specificially test the functionalities of the connector classes
+recommended to write very specifically test the functionalities of the connector classes
 while mocking the external services.
 
 Once you have written sufficient unit tests for your connector, we also recommend adding
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/reference-configuration.md b/site2/website/versioned_docs/version-2.1.0-incubating/reference-configuration.md
index 351b360..11a9829 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/reference-configuration.md
@@ -49,7 +49,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -70,10 +70,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -153,7 +153,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |brokerClientAuthenticationParameters|||
 |athenzDomainNames| Supported Athenz provider domain names(comma separated) for authentication  ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||   
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -425,7 +425,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |10000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.1.0-incubating/reference-pulsar-admin.md
index b442762..eaa5997 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/reference-pulsar-admin.md
@@ -51,7 +51,7 @@ Usage
 $ pulsar-admin broker-stats allocator-stats allocator-name
 ```
 
-### `desinations`
+### `destinations`
 
 Dump topic stats
 
@@ -1241,7 +1241,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -1572,7 +1572,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -1625,7 +1625,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -1635,6 +1635,6 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/reference-terminology.md b/site2/website/versioned_docs/version-2.1.0-incubating/reference-terminology.md
index af51f0b..77caf8d 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/reference-terminology.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/reference-terminology.md
@@ -47,7 +47,7 @@ modes (exclusive, shared, and failover).
 
 #### Pub-Sub
 
-A messaging pattern in which [producer](#producer) proccesses publish messages on [topics](#topic) that
+A messaging pattern in which [producer](#producer) processes publish messages on [topics](#topic) that
 are then consumed (processed) by [consumer](#consumer) processes.
 
 #### Producer
diff --git a/site2/website/versioned_docs/version-2.1.0-incubating/security-tls-authentication.md b/site2/website/versioned_docs/version-2.1.0-incubating/security-tls-authentication.md
index eab8889..3adf84a 100644
--- a/site2/website/versioned_docs/version-2.1.0-incubating/security-tls-authentication.md
+++ b/site2/website/versioned_docs/version-2.1.0-incubating/security-tls-authentication.md
@@ -67,7 +67,7 @@ brokerClientTrustCertsFilePath=/path/my-ca/certs/ca.cert.pem
 
 ### ... on Proxies
 
-To configure proxies to authenticate clients, put the folling in `proxy.conf`, alongside [the configuration to enable tls transport](security-tls-transport.md#proxy-configuration):
+To configure proxies to authenticate clients, put the following in `proxy.conf`, alongside [the configuration to enable tls transport](security-tls-transport.md#proxy-configuration):
 
 The proxy should have its own client key pair for connecting to brokers. The role token for this key pair should be configured in the ``proxyRoles`` of the brokers. See the [authorization guide](security-authorization.md) for more details.
 
diff --git a/site2/website/versioned_docs/version-2.1.1-incubating/adaptors-kafka.md b/site2/website/versioned_docs/version-2.1.1-incubating/adaptors-kafka.md
index 74eff85..19b9a0e 100644
--- a/site2/website/versioned_docs/version-2.1.1-incubating/adaptors-kafka.md
+++ b/site2/website/versioned_docs/version-2.1.1-incubating/adaptors-kafka.md
@@ -256,5 +256,5 @@ You can configure Pulsar authentication provider directly from the Kafka propert
 |:---------------------------------------|:--------|:---------------------------------------------------------------------------------------|
 | [`pulsar.consumer.name`](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setConsumerName-java.lang.String-) | | Set the consumer name |
 | [`pulsar.consumer.receiver.queue.size`](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setReceiverQueueSize-int-) | 1000 | Sets the size of the consumer receive queue |
-| [`pulsar.consumer.total.receiver.queue.size.across.partitions`](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-) | 50000 | Set the max total receiver queue size across partitons |
+| [`pulsar.consumer.total.receiver.queue.size.across.partitions`](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-) | 50000 | Set the max total receiver queue size across partitions |
 
diff --git a/site2/website/versioned_docs/version-2.1.1-incubating/administration-proxy.md b/site2/website/versioned_docs/version-2.1.1-incubating/administration-proxy.md
index a1563c7..efb6f74 100644
--- a/site2/website/versioned_docs/version-2.1.1-incubating/administration-proxy.md
+++ b/site2/website/versioned_docs/version-2.1.1-incubating/administration-proxy.md
@@ -55,7 +55,7 @@ The Pulsar proxy can be configured using the [`proxy.conf`](reference-configurat
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.1.1-incubating/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.1.1-incubating/deploy-bare-metal.md
index 5f27f08..7e2d2c1 100644
--- a/site2/website/versioned_docs/version-2.1.1-incubating/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.1.1-incubating/deploy-bare-metal.md
@@ -139,7 +139,7 @@ pulsar-io-twitter-{{pulsar:version}}.nar
 
 ## Deploying a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and would like to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and would like to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you'll need to deploy ZooKeeper first (before all other components). We recommend deploying a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -294,11 +294,11 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you've succesfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
+Once you've successfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connecting to the running cluster
 
-Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is runnning properly.
+Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is running properly.
 
 To use the `pulsar-client` tool, first modify the client configuration file in [`conf/client.conf`](reference-configuration.md#client) in your binary package. You'll need to change the values for `webServiceUrl` and `brokerServiceUrl`, substituting `localhost` (which is the default), with the DNS name that you've assigned to your broker/bookie hosts. Here's an example:
 
diff --git a/site2/website/versioned_docs/version-2.1.1-incubating/functions-deploying.md b/site2/website/versioned_docs/version-2.1.1-incubating/functions-deploying.md
index c654189..6afb369 100644
--- a/site2/website/versioned_docs/version-2.1.1-incubating/functions-deploying.md
+++ b/site2/website/versioned_docs/version-2.1.1-incubating/functions-deploying.md
@@ -171,7 +171,7 @@ $ bin/pulsar-admin functions create \
 ```
 
 > #### Resources are *per instance*
-> The resources that you apply to a given Pulsar Function are applied to each [instance](#parallelism) of the function. If you apply 8 GB of RAM to a function with a paralellism of 5, for example, then you are applying 40 GB of RAM total for the function. You should always make sure to factor paralellism---i.e. the number of instances---into your resource calculations
+> The resources that you apply to a given Pulsar Function are applied to each [instance](#parallelism) of the function. If you apply 8 GB of RAM to a function with a parallelism of 5, for example, then you are applying 40 GB of RAM total for the function. You should always make sure to factor parallelism---i.e. the number of instances---into your resource calculations
 
 ## Triggering Pulsar Functions
 
diff --git a/site2/website/versioned_docs/version-2.1.1-incubating/functions-quickstart.md b/site2/website/versioned_docs/version-2.1.1-incubating/functions-quickstart.md
index c17626b..cf8d32c 100644
--- a/site2/website/versioned_docs/version-2.1.1-incubating/functions-quickstart.md
+++ b/site2/website/versioned_docs/version-2.1.1-incubating/functions-quickstart.md
@@ -207,7 +207,7 @@ $ bin/pulsar-admin functions delete \
   --name exclamation
 ```
 
-If you see `Deleted successfully` in the output, then you've succesfully run, updated, and shut down a Pulsar Function running in cluster mode. Congrats! Now, let's go even further and run a brand new function in the next section.
+If you see `Deleted successfully` in the output, then you've successfully run, updated, and shut down a Pulsar Function running in cluster mode. Congrats! Now, let's go even further and run a brand new function in the next section.
 
 ## Writing and running a new function
 
diff --git a/site2/website/versioned_docs/version-2.1.1-incubating/reference-configuration.md b/site2/website/versioned_docs/version-2.1.1-incubating/reference-configuration.md
index 4d16937..a358f81 100644
--- a/site2/website/versioned_docs/version-2.1.1-incubating/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.1.1-incubating/reference-configuration.md
@@ -49,7 +49,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -70,10 +70,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -153,7 +153,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |brokerClientAuthenticationParameters|||
 |athenzDomainNames| Supported Athenz provider domain names(comma separated) for authentication  ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||   
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -425,7 +425,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.1.1-incubating/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.1.1-incubating/reference-pulsar-admin.md
index 2d0347f..f01f6ee 100644
--- a/site2/website/versioned_docs/version-2.1.1-incubating/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.1.1-incubating/reference-pulsar-admin.md
@@ -51,7 +51,7 @@ Usage
 $ pulsar-admin broker-stats allocator-stats allocator-name
 ```
 
-### `desinations`
+### `destinations`
 
 Dump topic stats
 
@@ -1241,7 +1241,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -1572,7 +1572,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -1625,7 +1625,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -1635,6 +1635,6 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 
diff --git a/site2/website/versioned_docs/version-2.2.0/adaptors-kafka.md b/site2/website/versioned_docs/version-2.2.0/adaptors-kafka.md
index fa6635d..98b9b56 100644
--- a/site2/website/versioned_docs/version-2.2.0/adaptors-kafka.md
+++ b/site2/website/versioned_docs/version-2.2.0/adaptors-kafka.md
@@ -258,5 +258,5 @@ You can configure Pulsar authentication provider directly from the Kafka propert
 |:---------------------------------------|:--------|:---------------------------------------------------------------------------------------|
 | [`pulsar.consumer.name`](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setConsumerName-java.lang.String-) | | Set the consumer name |
 | [`pulsar.consumer.receiver.queue.size`](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setReceiverQueueSize-int-) | 1000 | Sets the size of the consumer receive queue |
-| [`pulsar.consumer.total.receiver.queue.size.across.partitions`](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-) | 50000 | Set the max total receiver queue size across partitons |
+| [`pulsar.consumer.total.receiver.queue.size.across.partitions`](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-) | 50000 | Set the max total receiver queue size across partitions |
 
diff --git a/site2/website/versioned_docs/version-2.2.0/client-libraries-go.md b/site2/website/versioned_docs/version-2.2.0/client-libraries-go.md
index fca747f..3144d30 100644
--- a/site2/website/versioned_docs/version-2.2.0/client-libraries-go.md
+++ b/site2/website/versioned_docs/version-2.2.0/client-libraries-go.md
@@ -194,7 +194,7 @@ func main() {
         producer.SendAsync(ctx, asyncMsg, func(msg pulsar.ProducerMessage, err error) {
             if err != nil { log.Fatal(err) }
 
-            fmt.Printf("Message %s succesfully published", msg.ID())
+            fmt.Printf("Message %s successfully published", msg.ID())
         })
     }
 }
diff --git a/site2/website/versioned_docs/version-2.2.0/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.2.0/deploy-bare-metal.md
index e15d263..b39cd53 100644
--- a/site2/website/versioned_docs/version-2.2.0/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.2.0/deploy-bare-metal.md
@@ -182,7 +182,7 @@ For more details of how to configure tiered storage feature, you could reference
 
 ## Deploying a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and would like to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and would like to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you'll need to deploy ZooKeeper first (before all other components). We recommend deploying a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -337,11 +337,11 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you've succesfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
+Once you've successfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connecting to the running cluster
 
-Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is runnning properly.
+Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is running properly.
 
 To use the `pulsar-client` tool, first modify the client configuration file in [`conf/client.conf`](reference-configuration.md#client) in your binary package. You'll need to change the values for `webServiceUrl` and `brokerServiceUrl`, substituting `localhost` (which is the default), with the DNS name that you've assigned to your broker/bookie hosts. Here's an example:
 
diff --git a/site2/website/versioned_docs/version-2.2.0/deploy-dcos.md b/site2/website/versioned_docs/version-2.2.0/deploy-dcos.md
index 8c00b33..0aae024 100644
--- a/site2/website/versioned_docs/version-2.2.0/deploy-dcos.md
+++ b/site2/website/versioned_docs/version-2.2.0/deploy-dcos.md
@@ -114,7 +114,7 @@ Click into `grafana` to get the endpoint for Grafana, which is `192.168.65.121:3
  
 ![DC/OS grafana endpoint](assets/dcos_grafana_endpoint.png)
 
-If you click that endpoint, you can access the Grafana dashbaord.
+If you click that endpoint, you can access the Grafana dashboard.
 
 ![DC/OS grafana targets](assets/dcos_grafana_dashboard.png)
 
diff --git a/site2/website/versioned_docs/version-2.2.0/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.2.0/developing-binary-protocol.md
index 2ede951..4b33be8 100644
--- a/site2/website/versioned_docs/version-2.2.0/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.2.0/developing-binary-protocol.md
@@ -410,7 +410,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.2.0/functions-deploying.md b/site2/website/versioned_docs/version-2.2.0/functions-deploying.md
index dc8bad1..0c9e064 100644
--- a/site2/website/versioned_docs/version-2.2.0/functions-deploying.md
+++ b/site2/website/versioned_docs/version-2.2.0/functions-deploying.md
@@ -171,7 +171,7 @@ $ bin/pulsar-admin functions create \
 ```
 
 > #### Resources are *per instance*
-> The resources that you apply to a given Pulsar Function are applied to each [instance](#parallelism) of the function. If you apply 8 GB of RAM to a function with a paralellism of 5, for example, then you are applying 40 GB of RAM total for the function. You should always make sure to factor paralellism---i.e. the number of instances---into your resource calculations
+> The resources that you apply to a given Pulsar Function are applied to each [instance](#parallelism) of the function. If you apply 8 GB of RAM to a function with a parallelism of 5, for example, then you are applying 40 GB of RAM total for the function. You should always make sure to factor parallelism---i.e. the number of instances---into your resource calculations
 
 ## Triggering Pulsar Functions
 
diff --git a/site2/website/versioned_docs/version-2.2.0/functions-quickstart.md b/site2/website/versioned_docs/version-2.2.0/functions-quickstart.md
index c7fa9bc..7b99642 100644
--- a/site2/website/versioned_docs/version-2.2.0/functions-quickstart.md
+++ b/site2/website/versioned_docs/version-2.2.0/functions-quickstart.md
@@ -207,7 +207,7 @@ $ bin/pulsar-admin functions delete \
   --name exclamation
 ```
 
-If you see `Deleted successfully` in the output, then you've succesfully run, updated, and shut down a Pulsar Function running in cluster mode. Congrats! Now, let's go even further and run a brand new function in the next section.
+If you see `Deleted successfully` in the output, then you've successfully run, updated, and shut down a Pulsar Function running in cluster mode. Congrats! Now, let's go even further and run a brand new function in the next section.
 
 ## Writing and running a new function
 
diff --git a/site2/website/versioned_docs/version-2.2.0/reference-configuration.md b/site2/website/versioned_docs/version-2.2.0/reference-configuration.md
index d78c008..2ddf63b 100644
--- a/site2/website/versioned_docs/version-2.2.0/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.2.0/reference-configuration.md
@@ -49,7 +49,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -70,10 +70,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -153,7 +153,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |brokerClientAuthenticationParameters|||
 |athenzDomainNames| Supported Athenz provider domain names(comma separated) for authentication  ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||   
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -425,7 +425,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.2.0/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.2.0/reference-pulsar-admin.md
index e41ff37..bea815e 100644
--- a/site2/website/versioned_docs/version-2.2.0/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.2.0/reference-pulsar-admin.md
@@ -51,7 +51,7 @@ Usage
 $ pulsar-admin broker-stats allocator-stats allocator-name
 ```
 
-### `desinations`
+### `destinations`
 
 Dump topic stats
 
@@ -1397,7 +1397,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -1728,7 +1728,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -1781,7 +1781,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -1791,6 +1791,6 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 
diff --git a/site2/website/versioned_docs/version-2.2.0/sql-deployment-configurations.md b/site2/website/versioned_docs/version-2.2.0/sql-deployment-configurations.md
index 553be6d..3f65a92 100644
--- a/site2/website/versioned_docs/version-2.2.0/sql-deployment-configurations.md
+++ b/site2/website/versioned_docs/version-2.2.0/sql-deployment-configurations.md
@@ -9,7 +9,7 @@ Below is a list configurations for the Presto Pulsar connector and instruction o
 
 ## Presto Pulsar Connector Configurations
 There are several configurations for the Presto Pulsar Connector.  The properties file that contain these configurations can be found at ```${project.root}/conf/presto/catalog/pulsar.properties```.
-The configurations for the connector and its default values are discribed below.
+The configurations for the connector and its default values are described below.
 
 ```properties
 # name of the connector to be displayed in the catalog
@@ -38,7 +38,7 @@ $ wget pulsar:binary_release_url
 
 ## Deploying a new cluster
 
-Please note that the [Getting Started](sql-getting-started.md) guide shows you how to easily setup a standalone single node enviroment to experiment with.
+Please note that the [Getting Started](sql-getting-started.md) guide shows you how to easily setup a standalone single node environment to experiment with.
 
 Pulsar SQL is powered by [Presto](https://prestosql.io) thus many of the configurations for deployment is the same for the Pulsar SQL worker.
 
@@ -93,7 +93,7 @@ For example, if I wanted to deploy a Pulsar SQL/Presto cluster on 3 nodes, you c
 
 First, copy the Pulsar binary distribution to all three nodes.
 
-The first node, will run the Presto coordinator.  The mininal configuration in ```${project.root}/conf/presto/config.properties``` can be the following
+The first node, will run the Presto coordinator.  The minimal configuration in ```${project.root}/conf/presto/config.properties``` can be the following
 
 ```properties
 coordinator=true
diff --git a/site2/website/versioned_docs/version-2.2.1/admin-api-persistent-topics.md b/site2/website/versioned_docs/version-2.2.1/admin-api-persistent-topics.md
index 9eddf5e..2a9e4f9 100644
--- a/site2/website/versioned_docs/version-2.2.1/admin-api-persistent-topics.md
+++ b/site2/website/versioned_docs/version-2.2.1/admin-api-persistent-topics.md
@@ -606,7 +606,7 @@ admin.persistentTopics().deleteSubscription(topic, subscriptionName);
 
 ### Last Message Id
 
-It gives the last commited message ID for a persistent topic, and it will be available in 2.3.0.
+It gives the last committed message ID for a persistent topic, and it will be available in 2.3.0.
 
 ```shell
 pulsar-admin topics last-message-id topic-name
@@ -620,4 +620,4 @@ pulsar-admin topics last-message-id topic-name
 ```Java
 String topic = "persistent://my-tenant/my-namespace/my-topic";
 admin.persistentTopics().getLastMessage(topic);
-```
\ No newline at end of file
+```
diff --git a/site2/website/versioned_docs/version-2.2.1/client-libraries-go.md b/site2/website/versioned_docs/version-2.2.1/client-libraries-go.md
index 71fe16a..c77ea3e 100644
--- a/site2/website/versioned_docs/version-2.2.1/client-libraries-go.md
+++ b/site2/website/versioned_docs/version-2.2.1/client-libraries-go.md
@@ -194,7 +194,7 @@ func main() {
         producer.SendAsync(ctx, asyncMsg, func(msg pulsar.ProducerMessage, err error) {
             if err != nil { log.Fatal(err) }
 
-            fmt.Printf("Message %s succesfully published", msg.ID())
+            fmt.Printf("Message %s successfully published", msg.ID())
         })
     }
 }
diff --git a/site2/website/versioned_docs/version-2.2.1/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.2.1/deploy-bare-metal.md
index 309eb81..84e56bf 100644
--- a/site2/website/versioned_docs/version-2.2.1/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.2.1/deploy-bare-metal.md
@@ -185,7 +185,7 @@ For more details of how to configure tiered storage feature, you could reference
 
 ## Deploying a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and would like to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and would like to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you'll need to deploy ZooKeeper first (before all other components). We recommend deploying a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -364,11 +364,11 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you've succesfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
+Once you've successfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connecting to the running cluster
 
-Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is runnning properly.
+Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is running properly.
 
 To use the `pulsar-client` tool, first modify the client configuration file in [`conf/client.conf`](reference-configuration.md#client) in your binary package. You'll need to change the values for `webServiceUrl` and `brokerServiceUrl`, substituting `localhost` (which is the default), with the DNS name that you've assigned to your broker/bookie hosts. Here's an example:
 
diff --git a/site2/website/versioned_docs/version-2.2.1/reference-configuration.md b/site2/website/versioned_docs/version-2.2.1/reference-configuration.md
index cbff4bd..c0f43a7 100644
--- a/site2/website/versioned_docs/version-2.2.1/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.2.1/reference-configuration.md
@@ -49,7 +49,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -70,10 +70,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -157,7 +157,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |brokerClientAuthenticationParameters|||
 |athenzDomainNames| Supported Athenz provider domain names(comma separated) for authentication  ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||   
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -433,7 +433,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.2.1/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.2.1/reference-pulsar-admin.md
index 6c20ee6..3cbd5e8 100644
--- a/site2/website/versioned_docs/version-2.2.1/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.2.1/reference-pulsar-admin.md
@@ -51,7 +51,7 @@ Usage
 $ pulsar-admin broker-stats allocator-stats allocator-name
 ```
 
-### `desinations`
+### `destinations`
 
 Dump topic stats
 
@@ -1397,7 +1397,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -1728,7 +1728,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -1781,7 +1781,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -1791,6 +1791,6 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 
diff --git a/site2/website/versioned_docs/version-2.2.1/security-tls-authentication.md b/site2/website/versioned_docs/version-2.2.1/security-tls-authentication.md
index e9ec993..1fa3a79 100644
--- a/site2/website/versioned_docs/version-2.2.1/security-tls-authentication.md
+++ b/site2/website/versioned_docs/version-2.2.1/security-tls-authentication.md
@@ -67,7 +67,7 @@ brokerClientTrustCertsFilePath=/path/my-ca/certs/ca.cert.pem
 
 ### ... on Proxies
 
-To configure proxies to authenticate clients, put the folling in `proxy.conf`, alongside [the configuration to enable tls transport](security-tls-transport.md#proxy-configuration):
+To configure proxies to authenticate clients, put the following in `proxy.conf`, alongside [the configuration to enable tls transport](security-tls-transport.md#proxy-configuration):
 
 The proxy should have its own client key pair for connecting to brokers. The role token for this key pair should be configured in the ``proxyRoles`` of the brokers. See the [authorization guide](security-authorization.md) for more details.
 
diff --git a/site2/website/versioned_docs/version-2.3.0/administration-proxy.md b/site2/website/versioned_docs/version-2.3.0/administration-proxy.md
index 892152c..4012db9 100644
--- a/site2/website/versioned_docs/version-2.3.0/administration-proxy.md
+++ b/site2/website/versioned_docs/version-2.3.0/administration-proxy.md
@@ -92,7 +92,7 @@ The Pulsar proxy can be configured using the [`proxy.conf`](reference-configurat
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.3.0/client-libraries-go.md b/site2/website/versioned_docs/version-2.3.0/client-libraries-go.md
index 7ba2b4d..062f9ce 100644
--- a/site2/website/versioned_docs/version-2.3.0/client-libraries-go.md
+++ b/site2/website/versioned_docs/version-2.3.0/client-libraries-go.md
@@ -194,7 +194,7 @@ func main() {
         producer.SendAsync(ctx, asyncMsg, func(msg pulsar.ProducerMessage, err error) {
             if err != nil { log.Fatal(err) }
 
-            fmt.Printf("Message %s succesfully published", msg.ID())
+            fmt.Printf("Message %s successfully published", msg.ID())
         })
     }
 }
diff --git a/site2/website/versioned_docs/version-2.3.0/concepts-messaging.md b/site2/website/versioned_docs/version-2.3.0/concepts-messaging.md
index a6636c7..2864f02 100644
--- a/site2/website/versioned_docs/version-2.3.0/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.3.0/concepts-messaging.md
@@ -294,7 +294,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.3.0/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.3.0/deploy-bare-metal.md
index 556f35c..99a6b23 100644
--- a/site2/website/versioned_docs/version-2.3.0/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.3.0/deploy-bare-metal.md
@@ -176,7 +176,7 @@ For more details of how to configure tiered storage feature, you could reference
 
 ## Deploying a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and would like to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and would like to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you'll need to deploy ZooKeeper first (before all other components). We recommend deploying a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -355,11 +355,11 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you've succesfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
+Once you've successfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connecting to the running cluster
 
-Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is runnning properly.
+Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is running properly.
 
 To use the `pulsar-client` tool, first modify the client configuration file in [`conf/client.conf`](reference-configuration.md#client) in your binary package. You'll need to change the values for `webServiceUrl` and `brokerServiceUrl`, substituting `localhost` (which is the default), with the DNS name that you've assigned to your broker/bookie hosts. Here's an example:
 
diff --git a/site2/website/versioned_docs/version-2.3.0/functions-quickstart.md b/site2/website/versioned_docs/version-2.3.0/functions-quickstart.md
index d7a94e9..caa309d 100644
--- a/site2/website/versioned_docs/version-2.3.0/functions-quickstart.md
+++ b/site2/website/versioned_docs/version-2.3.0/functions-quickstart.md
@@ -207,7 +207,7 @@ $ bin/pulsar-admin functions delete \
   --name exclamation
 ```
 
-If you see `Deleted successfully` in the output, then you've succesfully run, updated, and shut down a Pulsar Function running in cluster mode. Congrats! Now, let's go even further and run a brand new function in the next section.
+If you see `Deleted successfully` in the output, then you've successfully run, updated, and shut down a Pulsar Function running in cluster mode. Congrats! Now, let's go even further and run a brand new function in the next section.
 
 ## Writing and running a new function
 
@@ -272,7 +272,7 @@ For python functions requiring dependencies to be deployable in pulsar worker in
 Following programs are required to be installed on the client machine
 
 ```
-pip \\ rquired for getting python dependencies
+pip \\ required for getting python dependencies
 zip \\ for building zip archives
 ```
 
@@ -299,7 +299,7 @@ pip download \
 
 ```
 
-Sample ouptut
+Sample output
 
 ```
 Collecting sh==1.12.14 (from -r requirements.txt (line 1))
diff --git a/site2/website/versioned_docs/version-2.3.0/reference-configuration.md b/site2/website/versioned_docs/version-2.3.0/reference-configuration.md
index 6652de9..0bd517a 100644
--- a/site2/website/versioned_docs/version-2.3.0/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.3.0/reference-configuration.md
@@ -49,7 +49,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -70,10 +70,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -158,7 +158,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |brokerClientAuthenticationParameters|||
 |athenzDomainNames| Supported Athenz provider domain names(comma separated) for authentication  ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||   
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -435,7 +435,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.3.0/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.3.0/reference-pulsar-admin.md
index 83e5f82..b19e3a5 100644
--- a/site2/website/versioned_docs/version-2.3.0/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.3.0/reference-pulsar-admin.md
@@ -1807,7 +1807,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2138,7 +2138,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2192,7 +2192,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -2202,7 +2202,7 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 ### `extract`
 Provide the schema definition for a topic via Java class name contained in a JAR file
diff --git a/site2/website/versioned_docs/version-2.3.0/reference-terminology.md b/site2/website/versioned_docs/version-2.3.0/reference-terminology.md
index 6bf5846..c310d4b 100644
--- a/site2/website/versioned_docs/version-2.3.0/reference-terminology.md
+++ b/site2/website/versioned_docs/version-2.3.0/reference-terminology.md
@@ -47,7 +47,7 @@ modes (exclusive, shared, and failover).
 
 #### Pub-Sub
 
-A messaging pattern in which [producer](#producer) proccesses publish messages on [topics](#topic) that
+A messaging pattern in which [producer](#producer) processes publish messages on [topics](#topic) that
 are then consumed (processed) by [consumer](#consumer) processes.
 
 #### Producer
diff --git a/site2/website/versioned_docs/version-2.3.1/administration-dashboard.md b/site2/website/versioned_docs/version-2.3.1/administration-dashboard.md
index 7cec3ad..7001985 100644
--- a/site2/website/versioned_docs/version-2.3.1/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.3.1/administration-dashboard.md
@@ -50,7 +50,7 @@ If the Pulsar service is running in standalone mode in `localhost`, the `SERVICE
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, we need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
diff --git a/site2/website/versioned_docs/version-2.3.1/client-libraries-go.md b/site2/website/versioned_docs/version-2.3.1/client-libraries-go.md
index e4aa51c..01855d2 100644
--- a/site2/website/versioned_docs/version-2.3.1/client-libraries-go.md
+++ b/site2/website/versioned_docs/version-2.3.1/client-libraries-go.md
@@ -194,7 +194,7 @@ func main() {
         producer.SendAsync(ctx, asyncMsg, func(msg pulsar.ProducerMessage, err error) {
             if err != nil { log.Fatal(err) }
 
-            fmt.Printf("Message %s succesfully published", msg.ID())
+            fmt.Printf("Message %s successfully published", msg.ID())
         })
     }
 }
diff --git a/site2/website/versioned_docs/version-2.3.1/concepts-messaging.md b/site2/website/versioned_docs/version-2.3.1/concepts-messaging.md
index 66826b4..6bd5974 100644
--- a/site2/website/versioned_docs/version-2.3.1/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.3.1/concepts-messaging.md
@@ -294,7 +294,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.3.1/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.3.1/deploy-bare-metal.md
index bf2b1d0..314becb 100644
--- a/site2/website/versioned_docs/version-2.3.1/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.3.1/deploy-bare-metal.md
@@ -176,7 +176,7 @@ For more details of how to configure tiered storage feature, you could reference
 
 ## Deploying a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and would like to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and would like to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you'll need to deploy ZooKeeper first (before all other components). We recommend deploying a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -364,11 +364,11 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you've succesfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
+Once you've successfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connecting to the running cluster
 
-Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is runnning properly.
+Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is running properly.
 
 To use the `pulsar-client` tool, first modify the client configuration file in [`conf/client.conf`](reference-configuration.md#client) in your binary package. You'll need to change the values for `webServiceUrl` and `brokerServiceUrl`, substituting `localhost` (which is the default), with the DNS name that you've assigned to your broker/bookie hosts. Here's an example:
 
diff --git a/site2/website/versioned_docs/version-2.3.1/io-develop.md b/site2/website/versioned_docs/version-2.3.1/io-develop.md
index 3df8cc7..056fe24 100644
--- a/site2/website/versioned_docs/version-2.3.1/io-develop.md
+++ b/site2/website/versioned_docs/version-2.3.1/io-develop.md
@@ -30,7 +30,7 @@ connector can create the Kafka client in this `open` method.
 
 Beside the passed-in `config` object, the Pulsar runtime also provides a `SourceContext` for the
 connector to access runtime resources for tasks like collecting metrics. The implementation can
-save the `SourceContext` for futher usage.
+save the `SourceContext` for further usage.
 
 ```java
     /**
@@ -73,7 +73,7 @@ These information includes:
   by Pulsar IO runtime to do message deduplication and achieve exactly-once processing guarantee.
 - *Properties*: _Optional_. If the record carries user-defined properties, return those properties.
 
-Additionally, the implemention of the record should provide two methods: `ack` and `fail`. These
+Additionally, the implementation of the record should provide two methods: `ack` and `fail`. These
 two methods will be used by Pulsar IO connector to acknowledge the records that it has done
 processing and fail the records that it has failed to process.
 
@@ -109,7 +109,7 @@ The main task for a Sink implementor is to implement {@inject: github:`write`:/p
     void write(Record<T> record) throws Exception;
 ```
 
-In the implemention of `write` method, the implementor can decide how to write the value and
+In the implementation of `write` method, the implementor can decide how to write the value and
 the optional key to the actual source, and leverage all the provided information such as
 `Partition Id`, `Record Sequence` for achieving different processing guarantees. The implementor
 is also responsible for acknowledging records if it has successfully written them or failing
@@ -119,7 +119,7 @@ records if has failed to write them.
 
 Testing connectors can be challenging because Pulsar IO connectors interact with two systems
 that may be difficult to mock - Pulsar and the system the connector is connecting to. It is
-recommended to write very specificially test the functionalities of the connector classes
+recommended to write very specifically test the functionalities of the connector classes
 while mocking the external services.
 
 Once you have written sufficient unit tests for your connector, we also recommend adding
diff --git a/site2/website/versioned_docs/version-2.3.1/reference-configuration.md b/site2/website/versioned_docs/version-2.3.1/reference-configuration.md
index 3bd3a6c..7207e68c 100644
--- a/site2/website/versioned_docs/version-2.3.1/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.3.1/reference-configuration.md
@@ -49,7 +49,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -70,10 +70,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -159,7 +159,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |brokerClientAuthenticationParameters|||
 |athenzDomainNames| Supported Athenz provider domain names(comma separated) for authentication  ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||   
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -437,7 +437,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.3.1/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.3.1/reference-pulsar-admin.md
index dace0c7..d86ec8a 100644
--- a/site2/website/versioned_docs/version-2.3.1/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.3.1/reference-pulsar-admin.md
@@ -1840,7 +1840,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2171,7 +2171,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2225,7 +2225,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -2235,7 +2235,7 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 ### `extract`
 Provide the schema definition for a topic via Java class name contained in a JAR file
diff --git a/site2/website/versioned_docs/version-2.3.1/reference-terminology.md b/site2/website/versioned_docs/version-2.3.1/reference-terminology.md
index 342ebd6..fd6c4c40 100644
--- a/site2/website/versioned_docs/version-2.3.1/reference-terminology.md
+++ b/site2/website/versioned_docs/version-2.3.1/reference-terminology.md
@@ -47,7 +47,7 @@ modes (exclusive, shared, and failover).
 
 #### Pub-Sub
 
-A messaging pattern in which [producer](#producer) proccesses publish messages on [topics](#topic) that
+A messaging pattern in which [producer](#producer) processes publish messages on [topics](#topic) that
 are then consumed (processed) by [consumer](#consumer) processes.
 
 #### Producer
diff --git a/site2/website/versioned_docs/version-2.3.2/concepts-messaging.md b/site2/website/versioned_docs/version-2.3.2/concepts-messaging.md
index 22f0339..0354365 100644
--- a/site2/website/versioned_docs/version-2.3.2/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.3.2/concepts-messaging.md
@@ -349,7 +349,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.3.2/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.3.2/deploy-bare-metal.md
index d182c41..78c7fc9 100644
--- a/site2/website/versioned_docs/version-2.3.2/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.3.2/deploy-bare-metal.md
@@ -176,7 +176,7 @@ For more details of how to configure tiered storage feature, you could reference
 
 ## Deploying a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and would like to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and would like to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you'll need to deploy ZooKeeper first (before all other components). We recommend deploying a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -366,11 +366,11 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you've succesfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
+Once you've successfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connecting to the running cluster
 
-Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is runnning properly.
+Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is running properly.
 
 To use the `pulsar-client` tool, first modify the client configuration file in [`conf/client.conf`](reference-configuration.md#client) in your binary package. You'll need to change the values for `webServiceUrl` and `brokerServiceUrl`, substituting `localhost` (which is the default), with the DNS name that you've assigned to your broker/bookie hosts. Here's an example:
 
diff --git a/site2/website/versioned_docs/version-2.3.2/reference-configuration.md b/site2/website/versioned_docs/version-2.3.2/reference-configuration.md
index c45221b..fa12d45 100644
--- a/site2/website/versioned_docs/version-2.3.2/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.3.2/reference-configuration.md
@@ -49,7 +49,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -70,10 +70,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -159,7 +159,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |brokerClientAuthenticationParameters|||
 |athenzDomainNames| Supported Athenz provider domain names(comma separated) for authentication  ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||   
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -443,7 +443,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.3.2/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.3.2/reference-pulsar-admin.md
index 52a990b..de918f4 100644
--- a/site2/website/versioned_docs/version-2.3.2/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.3.2/reference-pulsar-admin.md
@@ -2137,7 +2137,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2468,7 +2468,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2522,7 +2522,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -2532,7 +2532,7 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 ### `extract`
 Provide the schema definition for a topic via Java class name contained in a JAR file
diff --git a/site2/website/versioned_docs/version-2.4.0/concepts-messaging.md b/site2/website/versioned_docs/version-2.4.0/concepts-messaging.md
index 646e20c..8fec054 100644
--- a/site2/website/versioned_docs/version-2.4.0/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.4.0/concepts-messaging.md
@@ -362,7 +362,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.4.0/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.4.0/deploy-bare-metal.md
index 13e0f26..77148c0 100644
--- a/site2/website/versioned_docs/version-2.4.0/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.4.0/deploy-bare-metal.md
@@ -178,7 +178,7 @@ For more details of how to configure tiered storage feature, you could reference
 
 ## Deploying a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and would like to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and would like to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you'll need to deploy ZooKeeper first (before all other components). We recommend deploying a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -368,11 +368,11 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you've succesfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
+Once you've successfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connecting to the running cluster
 
-Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is runnning properly.
+Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is running properly.
 
 To use the `pulsar-client` tool, first modify the client configuration file in [`conf/client.conf`](reference-configuration.md#client) in your binary package. You'll need to change the values for `webServiceUrl` and `brokerServiceUrl`, substituting `localhost` (which is the default), with the DNS name that you've assigned to your broker/bookie hosts. Here's an example:
 
diff --git a/site2/website/versioned_docs/version-2.4.0/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.4.0/developing-binary-protocol.md
index 7780708..0510f78 100644
--- a/site2/website/versioned_docs/version-2.4.0/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.4.0/developing-binary-protocol.md
@@ -410,7 +410,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.4.0/functions-state.md b/site2/website/versioned_docs/version-2.4.0/functions-state.md
index 2302321..9f16ea6 100644
--- a/site2/website/versioned_docs/version-2.4.0/functions-state.md
+++ b/site2/website/versioned_docs/version-2.4.0/functions-state.md
@@ -12,14 +12,14 @@ for storing the `State` for functions. For example, A `WordCount` function can s
 
 ### Java API
 
-Currently Pulsar Functions expose following APIs for mutating and accessing State. These APIs are avaible in the [Context](functions-api.md#context) object when
+Currently Pulsar Functions expose following APIs for mutating and accessing State. These APIs are available in the [Context](functions-api.md#context) object when
 you are using [Java SDK](functions-api.md#java-sdk-functions) functions.
 
 #### incrCounter
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.4.0/reference-configuration.md b/site2/website/versioned_docs/version-2.4.0/reference-configuration.md
index 688b00c..6700076 100644
--- a/site2/website/versioned_docs/version-2.4.0/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.4.0/reference-configuration.md
@@ -51,7 +51,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -72,10 +72,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -167,7 +167,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |brokerClientAuthenticationParameters|||
 |athenzDomainNames| Supported Athenz provider domain names(comma separated) for authentication  ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -462,7 +462,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.4.0/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.4.0/reference-pulsar-admin.md
index 5398ff1..c2bdcb9 100644
--- a/site2/website/versioned_docs/version-2.4.0/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.4.0/reference-pulsar-admin.md
@@ -2137,7 +2137,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2468,7 +2468,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2522,7 +2522,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -2532,7 +2532,7 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 ### `extract`
 Provide the schema definition for a topic via Java class name contained in a JAR file
diff --git a/site2/website/versioned_docs/version-2.4.0/security-kerberos.md b/site2/website/versioned_docs/version-2.4.0/security-kerberos.md
index 42e4893..28a0915 100644
--- a/site2/website/versioned_docs/version-2.4.0/security-kerberos.md
+++ b/site2/website/versioned_docs/version-2.4.0/security-kerberos.md
@@ -198,7 +198,7 @@ Make sure that the keytabs configured in the `pulsar_jaas.conf` file and kdc ser
 
 #### Configure CLI tools
 
-If you are using a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to preform the following steps:
+If you are using a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to perform the following steps:
 
 Step 1. Config your `client.conf`.
 ```shell
diff --git a/site2/website/versioned_docs/version-2.4.0/security-tls-authentication.md b/site2/website/versioned_docs/version-2.4.0/security-tls-authentication.md
index e657a1f..d59471d 100644
--- a/site2/website/versioned_docs/version-2.4.0/security-tls-authentication.md
+++ b/site2/website/versioned_docs/version-2.4.0/security-tls-authentication.md
@@ -79,7 +79,7 @@ brokerClientTrustCertsFilePath=/path/my-ca/certs/ca.cert.pem
 
 ### ... on Proxies
 
-To configure proxies to authenticate clients, put the folling in `proxy.conf`, alongside [the configuration to enable tls transport](security-tls-transport.md#proxy-configuration):
+To configure proxies to authenticate clients, put the following in `proxy.conf`, alongside [the configuration to enable tls transport](security-tls-transport.md#proxy-configuration):
 
 The proxy should have its own client key pair for connecting to brokers. The role token for this key pair should be configured in the ``proxyRoles`` of the brokers. See the [authorization guide](security-authorization.md) for more details.
 
diff --git a/site2/website/versioned_docs/version-2.4.1/administration-dashboard.md b/site2/website/versioned_docs/version-2.4.1/administration-dashboard.md
index 9fdebce..8019a85 100644
--- a/site2/website/versioned_docs/version-2.4.1/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.4.1/administration-dashboard.md
@@ -49,7 +49,7 @@ If the Pulsar service is running in standalone mode in `localhost`, the `SERVICE
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, we need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
diff --git a/site2/website/versioned_docs/version-2.4.1/concepts-messaging.md b/site2/website/versioned_docs/version-2.4.1/concepts-messaging.md
index d43beee..3582141 100644
--- a/site2/website/versioned_docs/version-2.4.1/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.4.1/concepts-messaging.md
@@ -383,7 +383,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.4.1/develop-bare-metal.md b/site2/website/versioned_docs/version-2.4.1/develop-bare-metal.md
index 9d690e3..cdda7b6 100644
--- a/site2/website/versioned_docs/version-2.4.1/develop-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.4.1/develop-bare-metal.md
@@ -178,7 +178,7 @@ For more details of how to configure tiered storage feature, you could reference
 
 ## Deploying a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and would like to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and would like to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you'll need to deploy ZooKeeper first (before all other components). We recommend deploying a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -368,11 +368,11 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you've succesfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
+Once you've successfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connecting to the running cluster
 
-Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is runnning properly.
+Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is running properly.
 
 To use the `pulsar-client` tool, first modify the client configuration file in [`conf/client.conf`](reference-configuration.md#client) in your binary package. You'll need to change the values for `webServiceUrl` and `brokerServiceUrl`, substituting `localhost` (which is the default), with the DNS name that you've assigned to your broker/bookie hosts. Here's an example:
 
diff --git a/site2/website/versioned_docs/version-2.4.1/functions-develop.md b/site2/website/versioned_docs/version-2.4.1/functions-develop.md
index cc8d439..9a8256d 100644
--- a/site2/website/versioned_docs/version-2.4.1/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.4.1/functions-develop.md
@@ -730,7 +730,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.4.1/io-develop.md b/site2/website/versioned_docs/version-2.4.1/io-develop.md
index 8bd78cc..a9e5a03 100644
--- a/site2/website/versioned_docs/version-2.4.1/io-develop.md
+++ b/site2/website/versioned_docs/version-2.4.1/io-develop.md
@@ -30,7 +30,7 @@ connector can create the Kafka client in this `open` method.
 
 Beside the passed-in `config` object, the Pulsar runtime also provides a `SourceContext` for the
 connector to access runtime resources for tasks like collecting metrics. The implementation can
-save the `SourceContext` for futher usage.
+save the `SourceContext` for further usage.
 
 ```java
     /**
@@ -73,7 +73,7 @@ These information includes:
   by Pulsar IO runtime to do message deduplication and achieve exactly-once processing guarantee.
 - *Properties*: _Optional_. If the record carries user-defined properties, return those properties.
 
-Additionally, the implemention of the record should provide two methods: `ack` and `fail`. These
+Additionally, the implementation of the record should provide two methods: `ack` and `fail`. These
 two methods will be used by Pulsar IO connector to acknowledge the records that it has done
 processing and fail the records that it has failed to process.
 
@@ -109,7 +109,7 @@ The main task for a Sink implementor is to implement {@inject: github:`write`:/p
     void write(Record<T> record) throws Exception;
 ```
 
-In the implemention of `write` method, the implementor can decide how to write the value and
+In the implementation of `write` method, the implementor can decide how to write the value and
 the optional key to the actual source, and leverage all the provided information such as
 `Partition Id`, `Record Sequence` for achieving different processing guarantees. The implementor
 is also responsible for acknowledging records if it has successfully written them or failing
@@ -119,7 +119,7 @@ records if has failed to write them.
 
 Testing connectors can be challenging because Pulsar IO connectors interact with two systems
 that may be difficult to mock - Pulsar and the system the connector is connecting to. It is
-recommended to write very specificially test the functionalities of the connector classes
+recommended to write very specifically test the functionalities of the connector classes
 while mocking the external services.
 
 Once you have written sufficient unit tests for your connector, we also recommend adding
diff --git a/site2/website/versioned_docs/version-2.4.1/reference-configuration.md b/site2/website/versioned_docs/version-2.4.1/reference-configuration.md
index 0161936..239fa89 100644
--- a/site2/website/versioned_docs/version-2.4.1/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.4.1/reference-configuration.md
@@ -51,7 +51,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -72,10 +72,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -167,7 +167,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |brokerClientAuthenticationParameters|||
 |athenzDomainNames| Supported Athenz provider domain names(comma separated) for authentication  ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -462,7 +462,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.4.1/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.4.1/reference-pulsar-admin.md
index de6eb35..9c5cce2 100644
--- a/site2/website/versioned_docs/version-2.4.1/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.4.1/reference-pulsar-admin.md
@@ -1665,7 +1665,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2011,7 +2011,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2065,7 +2065,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -2075,7 +2075,7 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 ### `extract`
 Provide the schema definition for a topic via Java class name contained in a JAR file
diff --git a/site2/website/versioned_docs/version-2.4.1/schema-get-started.md b/site2/website/versioned_docs/version-2.4.1/schema-get-started.md
index 9028879..f238aec 100644
--- a/site2/website/versioned_docs/version-2.4.1/schema-get-started.md
+++ b/site2/website/versioned_docs/version-2.4.1/schema-get-started.md
@@ -11,7 +11,7 @@ This chapter introduces Pulsar schemas and explains why they are important.
 
 Type safety is extremely important in any application built around a message bus like Pulsar. 
 
-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. 
+Producers and consumers need some kind of mechanism for coordinating types at the topic level to avoid various potential problems arise. For example, serialization and deserialization issues. 
 
 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.
 
diff --git a/site2/website/versioned_docs/version-2.4.1/security-athenz.md b/site2/website/versioned_docs/version-2.4.1/security-athenz.md
index af1412c..a006364 100644
--- a/site2/website/versioned_docs/version-2.4.1/security-athenz.md
+++ b/site2/website/versioned_docs/version-2.4.1/security-athenz.md
@@ -42,7 +42,7 @@ For more specific steps involving UI, refer to [Example Service Access Control S
 > ### TLS encryption 
 >
 > Note that when you are using Athenz as an authentication provider, you had better use TLS encryption 
-> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encrption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
+> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encryption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
 
 In the `conf/broker.conf` configuration file in your Pulsar installation, you need to provide the class name of the Athenz authentication provider as well as a comma-separated list of provider domain names.
 
diff --git a/site2/website/versioned_docs/version-2.4.1/security-authorization.md b/site2/website/versioned_docs/version-2.4.1/security-authorization.md
index 795e846..41dd785 100644
--- a/site2/website/versioned_docs/version-2.4.1/security-authorization.md
+++ b/site2/website/versioned_docs/version-2.4.1/security-authorization.md
@@ -37,7 +37,7 @@ Pulsar uses *Proxy roles* to enable the authentication. Proxy roles are specifie
 
 You must authorize the *proxy role* and the *original principle* to access a resource. Thus that resource can be accessible via the proxy. Administrators can take two approaches to authorize the *proxy role* and the *original principle*.
 
-The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creats a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
+The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creates a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
 
 Another approach is to make the proxy role a superuser. This allows the proxy to access all resources. The client still needs to authenticate with the proxy, and all requests made through the proxy have their role downgraded to the *original principal* of the authenticated client. However, if the proxy is compromised, a bad actor could get full access to your cluster.
 
diff --git a/site2/website/versioned_docs/version-2.4.1/security-kerberos.md b/site2/website/versioned_docs/version-2.4.1/security-kerberos.md
index a572f5d..a1e9c48 100644
--- a/site2/website/versioned_docs/version-2.4.1/security-kerberos.md
+++ b/site2/website/versioned_docs/version-2.4.1/security-kerberos.md
@@ -194,7 +194,7 @@ You must ensure that the operating system user who starts pulsar client can reac
 
 #### Configure CLI tools
 
-If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to preform the following steps:
+If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to perform the following steps:
 
 Step 1. Enter the command below to configure your `client.conf`.
 ```shell
@@ -219,7 +219,7 @@ With the above configuration, client and broker can do authentication using Kerb
 
 A client that connects to Pulsar Proxy is a little different. Pulsar Proxy (as a SASL Server in Kerberos) authenticates Client (as a SASL client in Kerberos) first; and then Pulsar broker authenticates Pulsar Proxy. 
 
-Now in comparision with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
+Now in comparison with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
 
 ### Create principal for Pulsar Proxy in Kerberos
 
@@ -239,7 +239,7 @@ sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{client-keytabnam
 
 ### Add a section in JAAS configuration file for Pulsar Proxy
 
-In comparision with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
+In comparison with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
 
 Here is an example named `pulsar_jaas.conf`:
 
diff --git a/site2/website/versioned_docs/version-2.4.1/security-tls-transport.md b/site2/website/versioned_docs/version-2.4.1/security-tls-transport.md
index f6d16e0..7c61ef4 100644
--- a/site2/website/versioned_docs/version-2.4.1/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.4.1/security-tls-transport.md
@@ -77,7 +77,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.4.2/administration-dashboard.md b/site2/website/versioned_docs/version-2.4.2/administration-dashboard.md
index 69ae0f9e..c1fa41b9 100644
--- a/site2/website/versioned_docs/version-2.4.2/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.4.2/administration-dashboard.md
@@ -49,7 +49,7 @@ If the Pulsar service is running in standalone mode in `localhost`, the `SERVICE
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, we need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
diff --git a/site2/website/versioned_docs/version-2.4.2/concepts-messaging.md b/site2/website/versioned_docs/version-2.4.2/concepts-messaging.md
index 7908830..4ee64d4 100644
--- a/site2/website/versioned_docs/version-2.4.2/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.4.2/concepts-messaging.md
@@ -383,7 +383,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.4.2/develop-bare-metal.md b/site2/website/versioned_docs/version-2.4.2/develop-bare-metal.md
index 47cddd7..2d981ee 100644
--- a/site2/website/versioned_docs/version-2.4.2/develop-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.4.2/develop-bare-metal.md
@@ -178,7 +178,7 @@ For more details of how to configure tiered storage feature, you could reference
 
 ## Deploying a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and would like to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and would like to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you'll need to deploy ZooKeeper first (before all other components). We recommend deploying a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -368,11 +368,11 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you've succesfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
+Once you've successfully started up all the brokers you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connecting to the running cluster
 
-Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is runnning properly.
+Once your Pulsar cluster is up and running, you should be able to connect with it using Pulsar clients. One such client is the [`pulsar-client`](reference-cli-tools.md#pulsar-client) tool, which is included with the Pulsar binary package. The `pulsar-client` tool can publish messages to and consume messages from Pulsar topics and thus provides a simple way to make sure that your cluster is running properly.
 
 To use the `pulsar-client` tool, first modify the client configuration file in [`conf/client.conf`](reference-configuration.md#client) in your binary package. You'll need to change the values for `webServiceUrl` and `brokerServiceUrl`, substituting `localhost` (which is the default), with the DNS name that you've assigned to your broker/bookie hosts. Here's an example:
 
diff --git a/site2/website/versioned_docs/version-2.4.2/functions-develop.md b/site2/website/versioned_docs/version-2.4.2/functions-develop.md
index bb8dbac..6f9b1c3 100644
--- a/site2/website/versioned_docs/version-2.4.2/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.4.2/functions-develop.md
@@ -730,7 +730,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.4.2/io-develop.md b/site2/website/versioned_docs/version-2.4.2/io-develop.md
index 31cde92..1692c60 100644
--- a/site2/website/versioned_docs/version-2.4.2/io-develop.md
+++ b/site2/website/versioned_docs/version-2.4.2/io-develop.md
@@ -30,7 +30,7 @@ connector can create the Kafka client in this `open` method.
 
 Beside the passed-in `config` object, the Pulsar runtime also provides a `SourceContext` for the
 connector to access runtime resources for tasks like collecting metrics. The implementation can
-save the `SourceContext` for futher usage.
+save the `SourceContext` for further usage.
 
 ```java
     /**
@@ -73,7 +73,7 @@ These information includes:
   by Pulsar IO runtime to do message deduplication and achieve exactly-once processing guarantee.
 - *Properties*: _Optional_. If the record carries user-defined properties, return those properties.
 
-Additionally, the implemention of the record should provide two methods: `ack` and `fail`. These
+Additionally, the implementation of the record should provide two methods: `ack` and `fail`. These
 two methods will be used by Pulsar IO connector to acknowledge the records that it has done
 processing and fail the records that it has failed to process.
 
@@ -109,7 +109,7 @@ The main task for a Sink implementor is to implement {@inject: github:`write`:/p
     void write(Record<T> record) throws Exception;
 ```
 
-In the implemention of `write` method, the implementor can decide how to write the value and
+In the implementation of `write` method, the implementor can decide how to write the value and
 the optional key to the actual source, and leverage all the provided information such as
 `Partition Id`, `Record Sequence` for achieving different processing guarantees. The implementor
 is also responsible for acknowledging records if it has successfully written them or failing
@@ -119,7 +119,7 @@ records if has failed to write them.
 
 Testing connectors can be challenging because Pulsar IO connectors interact with two systems
 that may be difficult to mock - Pulsar and the system the connector is connecting to. It is
-recommended to write very specificially test the functionalities of the connector classes
+recommended to write very specifically test the functionalities of the connector classes
 while mocking the external services.
 
 Once you have written sufficient unit tests for your connector, we also recommend adding
diff --git a/site2/website/versioned_docs/version-2.4.2/reference-configuration.md b/site2/website/versioned_docs/version-2.4.2/reference-configuration.md
index c686f11..54e52ee 100644
--- a/site2/website/versioned_docs/version-2.4.2/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.4.2/reference-configuration.md
@@ -51,7 +51,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -72,10 +72,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -167,7 +167,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |brokerClientAuthenticationParameters|||
 |athenzDomainNames| Supported Athenz provider domain names(comma separated) for authentication  ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -462,7 +462,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.4.2/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.4.2/reference-pulsar-admin.md
index 1bab9e9..f9f0e84 100644
--- a/site2/website/versioned_docs/version-2.4.2/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.4.2/reference-pulsar-admin.md
@@ -1665,7 +1665,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2011,7 +2011,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2065,7 +2065,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -2075,7 +2075,7 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 ### `extract`
 Provide the schema definition for a topic via Java class name contained in a JAR file
diff --git a/site2/website/versioned_docs/version-2.4.2/schema-get-started.md b/site2/website/versioned_docs/version-2.4.2/schema-get-started.md
index a073636..8bbc608 100644
--- a/site2/website/versioned_docs/version-2.4.2/schema-get-started.md
+++ b/site2/website/versioned_docs/version-2.4.2/schema-get-started.md
@@ -11,7 +11,7 @@ This chapter introduces Pulsar schemas and explains why they are important.
 
 Type safety is extremely important in any application built around a message bus like Pulsar. 
 
-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. 
+Producers and consumers need some kind of mechanism for coordinating types at the topic level to avoid various potential problems arise. For example, serialization and deserialization issues. 
 
 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.
 
diff --git a/site2/website/versioned_docs/version-2.4.2/security-athenz.md b/site2/website/versioned_docs/version-2.4.2/security-athenz.md
index c59af51..c0ef36f 100644
--- a/site2/website/versioned_docs/version-2.4.2/security-athenz.md
+++ b/site2/website/versioned_docs/version-2.4.2/security-athenz.md
@@ -42,7 +42,7 @@ For more specific steps involving UI, refer to [Example Service Access Control S
 > ### TLS encryption 
 >
 > Note that when you are using Athenz as an authentication provider, you had better use TLS encryption 
-> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encrption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
+> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encryption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
 
 In the `conf/broker.conf` configuration file in your Pulsar installation, you need to provide the class name of the Athenz authentication provider as well as a comma-separated list of provider domain names.
 
diff --git a/site2/website/versioned_docs/version-2.4.2/security-authorization.md b/site2/website/versioned_docs/version-2.4.2/security-authorization.md
index 950bfa9..2544ffb 100644
--- a/site2/website/versioned_docs/version-2.4.2/security-authorization.md
+++ b/site2/website/versioned_docs/version-2.4.2/security-authorization.md
@@ -37,7 +37,7 @@ Pulsar uses *Proxy roles* to enable the authentication. Proxy roles are specifie
 
 You must authorize the *proxy role* and the *original principle* to access a resource. Thus that resource can be accessible via the proxy. Administrators can take two approaches to authorize the *proxy role* and the *original principle*.
 
-The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creats a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
+The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creates a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
 
 Another approach is to make the proxy role a superuser. This allows the proxy to access all resources. The client still needs to authenticate with the proxy, and all requests made through the proxy have their role downgraded to the *original principal* of the authenticated client. However, if the proxy is compromised, a bad actor could get full access to your cluster.
 
diff --git a/site2/website/versioned_docs/version-2.4.2/security-kerberos.md b/site2/website/versioned_docs/version-2.4.2/security-kerberos.md
index 7bd985c..31ab27e 100644
--- a/site2/website/versioned_docs/version-2.4.2/security-kerberos.md
+++ b/site2/website/versioned_docs/version-2.4.2/security-kerberos.md
@@ -194,7 +194,7 @@ You must ensure that the operating system user who starts pulsar client can reac
 
 #### Configure CLI tools
 
-If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to preform the following steps:
+If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to perform the following steps:
 
 Step 1. Enter the command below to configure your `client.conf`.
 ```shell
@@ -219,7 +219,7 @@ With the above configuration, client and broker can do authentication using Kerb
 
 A client that connects to Pulsar Proxy is a little different. Pulsar Proxy (as a SASL Server in Kerberos) authenticates Client (as a SASL client in Kerberos) first; and then Pulsar broker authenticates Pulsar Proxy. 
 
-Now in comparision with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
+Now in comparison with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
 
 ### Create principal for Pulsar Proxy in Kerberos
 
@@ -239,7 +239,7 @@ sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{client-keytabnam
 
 ### Add a section in JAAS configuration file for Pulsar Proxy
 
-In comparision with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
+In comparison with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
 
 Here is an example named `pulsar_jaas.conf`:
 
diff --git a/site2/website/versioned_docs/version-2.4.2/security-tls-transport.md b/site2/website/versioned_docs/version-2.4.2/security-tls-transport.md
index 3dea2b1..b3d342a 100644
--- a/site2/website/versioned_docs/version-2.4.2/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.4.2/security-tls-transport.md
@@ -77,7 +77,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.5.0/admin-api-persistent-topics.md b/site2/website/versioned_docs/version-2.5.0/admin-api-persistent-topics.md
index 4548bde..d00ffac 100644
--- a/site2/website/versioned_docs/version-2.5.0/admin-api-persistent-topics.md
+++ b/site2/website/versioned_docs/version-2.5.0/admin-api-persistent-topics.md
@@ -644,7 +644,7 @@ admin.persistentTopics().deleteSubscription(topic, subscriptionName);
 
 ### Last Message Id
 
-It gives the last commited message ID for a persistent topic, and it will be available in 2.3.0.
+It gives the last committed message ID for a persistent topic, and it will be available in 2.3.0.
 
 ```shell
 pulsar-admin topics last-message-id topic-name
diff --git a/site2/website/versioned_docs/version-2.5.0/administration-dashboard.md b/site2/website/versioned_docs/version-2.5.0/administration-dashboard.md
index 04a91ab..4c05c26 100644
--- a/site2/website/versioned_docs/version-2.5.0/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.5.0/administration-dashboard.md
@@ -52,7 +52,7 @@ If the Pulsar service runs in standalone mode in `localhost`, the `SERVICE_URL`
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, you need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
@@ -60,4 +60,4 @@ $ bin/pulsar standalone --advertised-address 1.2.3.4
 
 ### Known issues
 
-Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
\ No newline at end of file
+Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
diff --git a/site2/website/versioned_docs/version-2.5.0/administration-load-balance.md b/site2/website/versioned_docs/version-2.5.0/administration-load-balance.md
index 7fa35fe..a6c92ac 100644
--- a/site2/website/versioned_docs/version-2.5.0/administration-load-balance.md
+++ b/site2/website/versioned_docs/version-2.5.0/administration-load-balance.md
@@ -118,7 +118,7 @@ loadBalancerNamespaceMaximumBundles=128
 
 ### Shed load automatically
 
-The support for automatic load shedding is avaliable in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
+The support for automatic load shedding is available in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
 
 When a broker is identified as overloaded, the broker forces to "unload" a subset of the bundles, the
 ones with higher traffic, that make up for the overload percentage.
diff --git a/site2/website/versioned_docs/version-2.5.0/administration-proxy.md b/site2/website/versioned_docs/version-2.5.0/administration-proxy.md
index 6c9d930..457c56a 100644
--- a/site2/website/versioned_docs/version-2.5.0/administration-proxy.md
+++ b/site2/website/versioned_docs/version-2.5.0/administration-proxy.md
@@ -93,7 +93,7 @@ You can configure the Pulsar proxy using the [`proxy.conf`](reference-configurat
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they are able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy rejects requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy errors out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.5.0/administration-pulsar-manager.md b/site2/website/versioned_docs/version-2.5.0/administration-pulsar-manager.md
index 178b795..4497ef7 100644
--- a/site2/website/versioned_docs/version-2.5.0/administration-pulsar-manager.md
+++ b/site2/website/versioned_docs/version-2.5.0/administration-pulsar-manager.md
@@ -127,7 +127,7 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -142,13 +142,13 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --private-key` command.
-* `PRIVATE_KEY`: private key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
-* `PUBLIC_KEY`: public key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
+* `PRIVATE_KEY`: private key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
+* `PUBLIC_KEY`: public key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
 * `$PWD/secret`: the folder where the private key and public key generated by the `bin/pulsar tokens create-key-pair` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -163,12 +163,12 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --secret-key` command.
-* `SECRET_KEY`: secret key path mounted in container, genrated by `bin/pulsar tokens create-secret-key` command.
+* `SECRET_KEY`: secret key path mounted in container, generated by `bin/pulsar tokens create-secret-key` command.
 * `$PWD/secret`: the folder where the secret key generated by the `bin/pulsar tokens create-secret-key` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
diff --git a/site2/website/versioned_docs/version-2.5.0/client-libraries-java.md b/site2/website/versioned_docs/version-2.5.0/client-libraries-java.md
index 8080da4..6275587 100644
--- a/site2/website/versioned_docs/version-2.5.0/client-libraries-java.md
+++ b/site2/website/versioned_docs/version-2.5.0/client-libraries-java.md
@@ -554,7 +554,7 @@ If a broker dispatches only one message at a time, consumer1 receives the follow
 ("key-4", "message-4-1")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-1", "message-1-2")
@@ -587,7 +587,7 @@ Consumer consumer2 = client.newConsumer()
 
 `Key_Shared` subscription is like `Shared` subscription, all consumers can attach to the same subscription. But it is different from `Key_Shared` subscription, messages with the same key are delivered to only one consumer in order. The possible distribution of messages between different consumers (by default we do not know in advance which keys will be assigned to a consumer, but a key will only be assigned to a consumer at the same time).
 
-consumer1 receives the follwoing information.
+consumer1 receives the following information.
 
 ```
 ("key-1", "message-1-1")
@@ -597,7 +597,7 @@ consumer1 receives the follwoing information.
 ("key-3", "message-3-2")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-2", "message-2-1")
diff --git a/site2/website/versioned_docs/version-2.5.0/concepts-messaging.md b/site2/website/versioned_docs/version-2.5.0/concepts-messaging.md
index 3a79bb7..ac72c61 100644
--- a/site2/website/versioned_docs/version-2.5.0/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.5.0/concepts-messaging.md
@@ -387,7 +387,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.5.0/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.5.0/deploy-bare-metal.md
index e0912fc..7979f83 100644
--- a/site2/website/versioned_docs/version-2.5.0/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.5.0/deploy-bare-metal.md
@@ -175,7 +175,7 @@ For more details of how to configure tiered storage feature, you can refer to th
 
 ## Deploy a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and want to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster you need to deploy ZooKeeper first (before all other components). You had better deploy a 3-node ZooKeeper cluster. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -376,7 +376,7 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
+Once you successfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connect to the running cluster
 
diff --git a/site2/website/versioned_docs/version-2.5.0/deploy-dcos.md b/site2/website/versioned_docs/version-2.5.0/deploy-dcos.md
index 04e5797..74592e2 100644
--- a/site2/website/versioned_docs/version-2.5.0/deploy-dcos.md
+++ b/site2/website/versioned_docs/version-2.5.0/deploy-dcos.md
@@ -114,7 +114,7 @@ Click into `grafana` to get the endpoint for Grafana, which is `192.168.65.121:3
  
 ![DC/OS grafana endpoint](assets/dcos_grafana_endpoint.png)
 
-If you click that endpoint, you can access the Grafana dashbaord.
+If you click that endpoint, you can access the Grafana dashboard.
 
 ![DC/OS grafana targets](assets/dcos_grafana_dashboard.png)
 
diff --git a/site2/website/versioned_docs/version-2.5.0/functions-develop.md b/site2/website/versioned_docs/version-2.5.0/functions-develop.md
index a239697..77f13b7 100644
--- a/site2/website/versioned_docs/version-2.5.0/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.5.0/functions-develop.md
@@ -809,7 +809,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.5.0/helm-deploy.md b/site2/website/versioned_docs/version-2.5.0/helm-deploy.md
index a3ad50d..dedbe13 100644
--- a/site2/website/versioned_docs/version-2.5.0/helm-deploy.md
+++ b/site2/website/versioned_docs/version-2.5.0/helm-deploy.md
@@ -339,7 +339,7 @@ The `prepare_helm_release` creates following resources:
 
 - A k8s namespace for installing the Pulsar release
 - Create a secret for storing the username and password of control center administrator. The username and password can be passed to `prepare_helm_release.sh` through flags `--control-center-admin` and `--control-center-password`. The username and password is used for logging into Grafana dashboard and Pulsar Manager.
-- Create the JWT secret keys and tokens for three superusers: `broker-admin`, `proxy-admin`, and `admin`. By default, it generates asymmeric pubic/private key pair. You can choose to generate symmeric secret key by specifying `--symmetric`.
+- Create the JWT secret keys and tokens for three superusers: `broker-admin`, `proxy-admin`, and `admin`. By default, it generates asymmetric pubic/private key pair. You can choose to generate symmeric secret key by specifying `--symmetric`.
     - `proxy-admin` role is used for proxies to communicate to brokers.
     - `broker-admin` role is used for inter-broker communications.
     - `admin` role is used by the admin tools.
@@ -385,4 +385,4 @@ To find the IP address of those components use:
 
 ```bash
 kubectl get service -n <k8s-namespace>
-```
\ No newline at end of file
+```
diff --git a/site2/website/versioned_docs/version-2.5.0/helm-overview.md b/site2/website/versioned_docs/version-2.5.0/helm-overview.md
index 1bfae87..b4a6b70 100644
--- a/site2/website/versioned_docs/version-2.5.0/helm-overview.md
+++ b/site2/website/versioned_docs/version-2.5.0/helm-overview.md
@@ -102,10 +102,10 @@ helm delete <pulsar-release-name>
 ```
 
 For the purposes of continuity, these charts have some Kubernetes objects that are not removed when performing `helm delete`.
-These items we require you to *conciously* remove them, as they affect re-deployment should you choose to.
+These items we require you to *consciously* remove them, as they affect re-deployment should you choose to.
 
 * PVCs for stateful data, which you must *consciously* remove
     - ZooKeeper: This is your metadata.
     - BookKeeper: This is your data.
     - Prometheus: This is your metrics data, which can be safely removed.
-* Secrets, if generated by our [prepare release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/prepare_helm_release.sh). They contain secret keys, tokens, etc. You can use [cleanup release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
\ No newline at end of file
+* Secrets, if generated by our [prepare release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/prepare_helm_release.sh). They contain secret keys, tokens, etc. You can use [cleanup release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
diff --git a/site2/website/versioned_docs/version-2.5.0/reference-configuration.md b/site2/website/versioned_docs/version-2.5.0/reference-configuration.md
index 2a9c607..ef1ecbc 100644
--- a/site2/website/versioned_docs/version-2.5.0/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.5.0/reference-configuration.md
@@ -50,7 +50,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -71,10 +71,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -165,7 +165,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |brokerClientAuthenticationParameters|||
 |athenzDomainNames| Supported Athenz provider domain names(comma separated) for authentication  ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -452,7 +452,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.5.0/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.5.0/reference-pulsar-admin.md
index 39bb48e..d6a094c 100644
--- a/site2/website/versioned_docs/version-2.5.0/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.5.0/reference-pulsar-admin.md
@@ -1814,7 +1814,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2150,7 +2150,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2204,7 +2204,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -2214,7 +2214,7 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 ### `extract`
 Provide the schema definition for a topic via Java class name contained in a JAR file
diff --git a/site2/website/versioned_docs/version-2.5.0/security-tls-transport.md b/site2/website/versioned_docs/version-2.5.0/security-tls-transport.md
index fc6a87b..198dce5 100644
--- a/site2/website/versioned_docs/version-2.5.0/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.5.0/security-tls-transport.md
@@ -77,7 +77,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.5.1/admin-api-persistent-topics.md b/site2/website/versioned_docs/version-2.5.1/admin-api-persistent-topics.md
index 076cff6..5aca911 100644
--- a/site2/website/versioned_docs/version-2.5.1/admin-api-persistent-topics.md
+++ b/site2/website/versioned_docs/version-2.5.1/admin-api-persistent-topics.md
@@ -656,7 +656,7 @@ admin.persistentTopics().deleteSubscription(topic, subscriptionName);
 
 ### Last Message Id
 
-It gives the last commited message ID for a persistent topic, and it will be available in 2.3.0.
+It gives the last committed message ID for a persistent topic, and it will be available in 2.3.0.
 
 ```shell
 pulsar-admin topics last-message-id topic-name
diff --git a/site2/website/versioned_docs/version-2.5.1/client-libraries-java.md b/site2/website/versioned_docs/version-2.5.1/client-libraries-java.md
index 480dfbd..441aef4 100644
--- a/site2/website/versioned_docs/version-2.5.1/client-libraries-java.md
+++ b/site2/website/versioned_docs/version-2.5.1/client-libraries-java.md
@@ -556,7 +556,7 @@ If a broker dispatches only one message at a time, consumer1 receives the follow
 ("key-4", "message-4-1")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-1", "message-1-2")
@@ -589,7 +589,7 @@ Consumer consumer2 = client.newConsumer()
 
 `Key_Shared` subscription is like `Shared` subscription, all consumers can attach to the same subscription. But it is different from `Key_Shared` subscription, messages with the same key are delivered to only one consumer in order. The possible distribution of messages between different consumers (by default we do not know in advance which keys will be assigned to a consumer, but a key will only be assigned to a consumer at the same time).
 
-consumer1 receives the follwoing information.
+consumer1 receives the following information.
 
 ```
 ("key-1", "message-1-1")
@@ -599,7 +599,7 @@ consumer1 receives the follwoing information.
 ("key-3", "message-3-2")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-2", "message-2-1")
diff --git a/site2/website/versioned_docs/version-2.5.1/concepts-messaging.md b/site2/website/versioned_docs/version-2.5.1/concepts-messaging.md
index 50cf41e..3e01d96 100644
--- a/site2/website/versioned_docs/version-2.5.1/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.5.1/concepts-messaging.md
@@ -406,7 +406,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.5.1/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.5.1/deploy-bare-metal.md
index 660ad7d..b776f16 100644
--- a/site2/website/versioned_docs/version-2.5.1/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.5.1/deploy-bare-metal.md
@@ -175,7 +175,7 @@ For more details of how to configure tiered storage feature, you can refer to th
 
 ## Deploy a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and want to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster, you need to deploy ZooKeeper first (before all other components). A 3-node ZooKeeper cluster is the recommended configuration. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -374,7 +374,7 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
+Once you successfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connect to the running cluster
 
diff --git a/site2/website/versioned_docs/version-2.5.1/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.5.1/developing-binary-protocol.md
index 50cb366..5fc09c2 100644
--- a/site2/website/versioned_docs/version-2.5.1/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.5.1/developing-binary-protocol.md
@@ -413,7 +413,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.5.1/functions-develop.md b/site2/website/versioned_docs/version-2.5.1/functions-develop.md
index 9e7cd3c..4193990 100644
--- a/site2/website/versioned_docs/version-2.5.1/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.5.1/functions-develop.md
@@ -809,7 +809,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.5.1/reference-configuration.md b/site2/website/versioned_docs/version-2.5.1/reference-configuration.md
index 6d8df74..cb68e97 100644
--- a/site2/website/versioned_docs/version-2.5.1/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.5.1/reference-configuration.md
@@ -50,7 +50,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -71,10 +71,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -172,7 +172,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |athenzDomainNames| Supported Athenz provider domain names(comma separated) for authentication  ||
 |exposePreciseBacklogInPrometheus| Enable expose the precise backlog stats, set false to use published counter and consumed counter to calculate, this would be more efficient but may be inaccurate. |false|
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -471,7 +471,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.5.1/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.5.1/reference-pulsar-admin.md
index 5e6c5ee..87bc0b6 100644
--- a/site2/website/versioned_docs/version-2.5.1/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.5.1/reference-pulsar-admin.md
@@ -1943,7 +1943,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2309,7 +2309,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2363,7 +2363,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -2373,7 +2373,7 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 ### `extract`
 Provide the schema definition for a topic via Java class name contained in a JAR file
diff --git a/site2/website/versioned_docs/version-2.5.1/security-tls-transport.md b/site2/website/versioned_docs/version-2.5.1/security-tls-transport.md
index 05f838b..07a1c2e 100644
--- a/site2/website/versioned_docs/version-2.5.1/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.5.1/security-tls-transport.md
@@ -79,7 +79,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.5.2/admin-api-persistent-topics.md b/site2/website/versioned_docs/version-2.5.2/admin-api-persistent-topics.md
index 6384072..3ccd821 100644
--- a/site2/website/versioned_docs/version-2.5.2/admin-api-persistent-topics.md
+++ b/site2/website/versioned_docs/version-2.5.2/admin-api-persistent-topics.md
@@ -656,7 +656,7 @@ admin.persistentTopics().deleteSubscription(topic, subscriptionName);
 
 ### Last Message Id
 
-It gives the last commited message ID for a persistent topic, and it will be available in 2.3.0.
+It gives the last committed message ID for a persistent topic, and it will be available in 2.3.0.
 
 ```shell
 pulsar-admin topics last-message-id topic-name
diff --git a/site2/website/versioned_docs/version-2.5.2/client-libraries-java.md b/site2/website/versioned_docs/version-2.5.2/client-libraries-java.md
index d5a54d8..97f3b21 100644
--- a/site2/website/versioned_docs/version-2.5.2/client-libraries-java.md
+++ b/site2/website/versioned_docs/version-2.5.2/client-libraries-java.md
@@ -556,7 +556,7 @@ If a broker dispatches only one message at a time, consumer1 receives the follow
 ("key-4", "message-4-1")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-1", "message-1-2")
@@ -589,7 +589,7 @@ Consumer consumer2 = client.newConsumer()
 
 `Key_Shared` subscription is like `Shared` subscription, all consumers can attach to the same subscription. But it is different from `Key_Shared` subscription, messages with the same key are delivered to only one consumer in order. The possible distribution of messages between different consumers (by default we do not know in advance which keys will be assigned to a consumer, but a key will only be assigned to a consumer at the same time).
 
-consumer1 receives the follwoing information.
+consumer1 receives the following information.
 
 ```
 ("key-1", "message-1-1")
@@ -599,7 +599,7 @@ consumer1 receives the follwoing information.
 ("key-3", "message-3-2")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-2", "message-2-1")
diff --git a/site2/website/versioned_docs/version-2.5.2/concepts-messaging.md b/site2/website/versioned_docs/version-2.5.2/concepts-messaging.md
index fba1b92..4214e70 100644
--- a/site2/website/versioned_docs/version-2.5.2/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.5.2/concepts-messaging.md
@@ -406,7 +406,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.5.2/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.5.2/deploy-bare-metal.md
index d096ccb..b3bc5bd 100644
--- a/site2/website/versioned_docs/version-2.5.2/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.5.2/deploy-bare-metal.md
@@ -175,7 +175,7 @@ For more details of how to configure tiered storage feature, you can refer to th
 
 ## Deploy a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and want to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster, you need to deploy ZooKeeper first (before all other components). A 3-node ZooKeeper cluster is the recommended configuration. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -374,7 +374,7 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
+Once you successfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connect to the running cluster
 
diff --git a/site2/website/versioned_docs/version-2.5.2/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.5.2/developing-binary-protocol.md
index 7f43872..3b78e7b 100644
--- a/site2/website/versioned_docs/version-2.5.2/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.5.2/developing-binary-protocol.md
@@ -413,7 +413,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.5.2/functions-develop.md b/site2/website/versioned_docs/version-2.5.2/functions-develop.md
index 43caf79..0084723 100644
--- a/site2/website/versioned_docs/version-2.5.2/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.5.2/functions-develop.md
@@ -809,7 +809,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.5.2/reference-configuration.md b/site2/website/versioned_docs/version-2.5.2/reference-configuration.md
index 02f43bd..841d569 100644
--- a/site2/website/versioned_docs/version-2.5.2/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.5.2/reference-configuration.md
@@ -50,7 +50,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -72,10 +72,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -173,7 +173,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |athenzDomainNames| Supported Athenz provider domain names(comma separated) for authentication  ||
 |exposePreciseBacklogInPrometheus| Enable expose the precise backlog stats, set false to use published counter and consumed counter to calculate, this would be more efficient but may be inaccurate. |false|
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -472,7 +472,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.5.2/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.5.2/reference-pulsar-admin.md
index ee7a3a3..92b5ee0 100644
--- a/site2/website/versioned_docs/version-2.5.2/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.5.2/reference-pulsar-admin.md
@@ -1943,7 +1943,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2309,7 +2309,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2363,7 +2363,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -2373,7 +2373,7 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 ### `extract`
 Provide the schema definition for a topic via Java class name contained in a JAR file
diff --git a/site2/website/versioned_docs/version-2.5.2/security-tls-transport.md b/site2/website/versioned_docs/version-2.5.2/security-tls-transport.md
index cdfb694..a61ca2f6 100644
--- a/site2/website/versioned_docs/version-2.5.2/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.5.2/security-tls-transport.md
@@ -79,7 +79,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.6.0/admin-api-persistent-topics.md b/site2/website/versioned_docs/version-2.6.0/admin-api-persistent-topics.md
index 0c09962..2b6ca7a 100644
--- a/site2/website/versioned_docs/version-2.6.0/admin-api-persistent-topics.md
+++ b/site2/website/versioned_docs/version-2.6.0/admin-api-persistent-topics.md
@@ -680,7 +680,7 @@ admin.persistentTopics().deleteSubscription(topic, subscriptionName);
 
 ### Last Message Id
 
-It gives the last commited message ID for a persistent topic, and it will be available in 2.3.0.
+It gives the last committed message ID for a persistent topic, and it will be available in 2.3.0.
 
 ```shell
 pulsar-admin topics last-message-id topic-name
diff --git a/site2/website/versioned_docs/version-2.6.0/administration-dashboard.md b/site2/website/versioned_docs/version-2.6.0/administration-dashboard.md
index 1db9d7b..f5164c1 100644
--- a/site2/website/versioned_docs/version-2.6.0/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.6.0/administration-dashboard.md
@@ -52,7 +52,7 @@ If the Pulsar service runs in standalone mode in `localhost`, the `SERVICE_URL`
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, you need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
@@ -60,4 +60,4 @@ $ bin/pulsar standalone --advertised-address 1.2.3.4
 
 ### Known issues
 
-Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
\ No newline at end of file
+Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
diff --git a/site2/website/versioned_docs/version-2.6.0/administration-load-balance.md b/site2/website/versioned_docs/version-2.6.0/administration-load-balance.md
index 95d16b6..d1abd72 100644
--- a/site2/website/versioned_docs/version-2.6.0/administration-load-balance.md
+++ b/site2/website/versioned_docs/version-2.6.0/administration-load-balance.md
@@ -118,7 +118,7 @@ loadBalancerNamespaceMaximumBundles=128
 
 ### Shed load automatically
 
-The support for automatic load shedding is avaliable in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
+The support for automatic load shedding is available in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
 
 When a broker is identified as overloaded, the broker forces to "unload" a subset of the bundles, the
 ones with higher traffic, that make up for the overload percentage.
diff --git a/site2/website/versioned_docs/version-2.6.0/administration-proxy.md b/site2/website/versioned_docs/version-2.6.0/administration-proxy.md
index 4dce901..9f53326 100644
--- a/site2/website/versioned_docs/version-2.6.0/administration-proxy.md
+++ b/site2/website/versioned_docs/version-2.6.0/administration-proxy.md
@@ -94,7 +94,7 @@ You can configure the Pulsar proxy using the [`proxy.conf`](reference-configurat
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they are able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy rejects requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy errors out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.6.0/administration-pulsar-manager.md b/site2/website/versioned_docs/version-2.6.0/administration-pulsar-manager.md
index 53f5063..90399d8 100644
--- a/site2/website/versioned_docs/version-2.6.0/administration-pulsar-manager.md
+++ b/site2/website/versioned_docs/version-2.6.0/administration-pulsar-manager.md
@@ -127,7 +127,7 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -142,13 +142,13 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --private-key` command.
-* `PRIVATE_KEY`: private key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
-* `PUBLIC_KEY`: public key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
+* `PRIVATE_KEY`: private key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
+* `PUBLIC_KEY`: public key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
 * `$PWD/secret`: The folder where the private key and public key generated by the `bin/pulsar tokens create-key-pair` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -163,12 +163,12 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --secret-key` command.
-* `SECRET_KEY`: secret key path mounted in container, genrated by `bin/pulsar tokens create-secret-key` command.
+* `SECRET_KEY`: secret key path mounted in container, generated by `bin/pulsar tokens create-secret-key` command.
 * `$PWD/secret`: the folder where the secret key generated by the `bin/pulsar tokens create-secret-key` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
diff --git a/site2/website/versioned_docs/version-2.6.0/client-libraries-java.md b/site2/website/versioned_docs/version-2.6.0/client-libraries-java.md
index 592757d..0de105f 100644
--- a/site2/website/versioned_docs/version-2.6.0/client-libraries-java.md
+++ b/site2/website/versioned_docs/version-2.6.0/client-libraries-java.md
@@ -572,7 +572,7 @@ If a broker dispatches only one message at a time, consumer1 receives the follow
 ("key-4", "message-4-1")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-1", "message-1-2")
@@ -605,7 +605,7 @@ Consumer consumer2 = client.newConsumer()
 
 `Key_Shared` subscription is like `Shared` subscription, all consumers can attach to the same subscription. But it is different from `Key_Shared` subscription, messages with the same key are delivered to only one consumer in order. The possible distribution of messages between different consumers (by default we do not know in advance which keys will be assigned to a consumer, but a key will only be assigned to a consumer at the same time).
 
-consumer1 receives the follwoing information.
+consumer1 receives the following information.
 
 ```
 ("key-1", "message-1-1")
@@ -615,7 +615,7 @@ consumer1 receives the follwoing information.
 ("key-3", "message-3-2")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-2", "message-2-1")
diff --git a/site2/website/versioned_docs/version-2.6.0/concepts-messaging.md b/site2/website/versioned_docs/version-2.6.0/concepts-messaging.md
index e6463dd..af1d490 100644
--- a/site2/website/versioned_docs/version-2.6.0/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.6.0/concepts-messaging.md
@@ -436,7 +436,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.6.0/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.6.0/deploy-bare-metal.md
index 44ab1d7..fa7e61e 100644
--- a/site2/website/versioned_docs/version-2.6.0/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.6.0/deploy-bare-metal.md
@@ -175,7 +175,7 @@ For more details of how to configure tiered storage feature, you can refer to th
 
 ## Deploy a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and want to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster, you need to deploy ZooKeeper first (before all other components). A 3-node ZooKeeper cluster is the recommended configuration. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -374,7 +374,7 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
+Once you successfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connect to the running cluster
 
diff --git a/site2/website/versioned_docs/version-2.6.0/deploy-dcos.md b/site2/website/versioned_docs/version-2.6.0/deploy-dcos.md
index 0d60363..30b213fc 100644
--- a/site2/website/versioned_docs/version-2.6.0/deploy-dcos.md
+++ b/site2/website/versioned_docs/version-2.6.0/deploy-dcos.md
@@ -114,7 +114,7 @@ Click into `grafana` to get the endpoint for Grafana, which is `192.168.65.121:3
  
 ![DC/OS grafana endpoint](assets/dcos_grafana_endpoint.png)
 
-If you click that endpoint, you can access the Grafana dashbaord.
+If you click that endpoint, you can access the Grafana dashboard.
 
 ![DC/OS grafana targets](assets/dcos_grafana_dashboard.png)
 
diff --git a/site2/website/versioned_docs/version-2.6.0/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.6.0/developing-binary-protocol.md
index 5b9d87f..88fd9e1 100644
--- a/site2/website/versioned_docs/version-2.6.0/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.6.0/developing-binary-protocol.md
@@ -413,7 +413,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.6.0/functions-develop.md b/site2/website/versioned_docs/version-2.6.0/functions-develop.md
index b0432e8..d2dfb86 100644
--- a/site2/website/versioned_docs/version-2.6.0/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.6.0/functions-develop.md
@@ -811,7 +811,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.6.0/helm-overview.md b/site2/website/versioned_docs/version-2.6.0/helm-overview.md
index 9399d7b..c0656d0 100644
--- a/site2/website/versioned_docs/version-2.6.0/helm-overview.md
+++ b/site2/website/versioned_docs/version-2.6.0/helm-overview.md
@@ -92,10 +92,10 @@ helm delete <pulsar-release-name>
 ```
 
 For the purposes of continuity, these charts have some Kubernetes objects that cannot be removed when performing `helm delete`.
-It is recommended to *conciously* remove these items, as they affect re-deployment.
+It is recommended to *consciously* remove these items, as they affect re-deployment.
 
 * PVCs for stateful data: *consciously* remove these items.
     - ZooKeeper: This is your metadata.
     - BookKeeper: This is your data.
     - Prometheus: This is your metrics data, which can be safely removed.
-* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
\ No newline at end of file
+* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
diff --git a/site2/website/versioned_docs/version-2.6.0/reference-configuration.md b/site2/website/versioned_docs/version-2.6.0/reference-configuration.md
index 2f36b83..7a908b6 100644
--- a/site2/website/versioned_docs/version-2.6.0/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.6.0/reference-configuration.md
@@ -50,7 +50,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -72,10 +72,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -193,7 +193,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |exposePreciseBacklogInPrometheus| Enable expose the precise backlog stats, set false to use published counter and consumed counter to calculate, this would be more efficient but may be inaccurate. |false|
 |bookkeeperMetadataServiceUri| Metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location. This value can be fetched using `bookkeeper shell whatisinstanceid` command in BookKeeper cluster. For example: zk+hierarchical://localhost:2181/ledgers. The metadata service uri list can also be semicolon separated values like below: zk+hierarchical://zk1:2181;zk2:2181;zk3:2181/ledgers ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -503,7 +503,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.6.0/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.6.0/reference-pulsar-admin.md
index 5fddcde..22788af 100644
--- a/site2/website/versioned_docs/version-2.6.0/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.6.0/reference-pulsar-admin.md
@@ -1970,7 +1970,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2351,7 +2351,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2405,7 +2405,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -2415,7 +2415,7 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 ### `extract`
 Provide the schema definition for a topic via Java class name contained in a JAR file
diff --git a/site2/website/versioned_docs/version-2.6.0/reference-terminology.md b/site2/website/versioned_docs/version-2.6.0/reference-terminology.md
index 009f68f..f4eee74 100644
--- a/site2/website/versioned_docs/version-2.6.0/reference-terminology.md
+++ b/site2/website/versioned_docs/version-2.6.0/reference-terminology.md
@@ -47,7 +47,7 @@ modes (exclusive, shared, failover and key_shared).
 
 #### Pub-Sub
 
-A messaging pattern in which [producer](#producer) proccesses publish messages on [topics](#topic) that
+A messaging pattern in which [producer](#producer) processes publish messages on [topics](#topic) that
 are then consumed (processed) by [consumer](#consumer) processes.
 
 #### Producer
diff --git a/site2/website/versioned_docs/version-2.6.0/security-athenz.md b/site2/website/versioned_docs/version-2.6.0/security-athenz.md
index e26baf58..774c7d1 100644
--- a/site2/website/versioned_docs/version-2.6.0/security-athenz.md
+++ b/site2/website/versioned_docs/version-2.6.0/security-athenz.md
@@ -42,7 +42,7 @@ For more specific steps involving UI, refer to [Example Service Access Control S
 > ### TLS encryption 
 >
 > Note that when you are using Athenz as an authentication provider, you had better use TLS encryption 
-> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encrption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
+> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encryption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
 
 In the `conf/broker.conf` configuration file in your Pulsar installation, you need to provide the class name of the Athenz authentication provider as well as a comma-separated list of provider domain names.
 
diff --git a/site2/website/versioned_docs/version-2.6.0/security-authorization.md b/site2/website/versioned_docs/version-2.6.0/security-authorization.md
index 5d9dcd5..e87fb03 100644
--- a/site2/website/versioned_docs/version-2.6.0/security-authorization.md
+++ b/site2/website/versioned_docs/version-2.6.0/security-authorization.md
@@ -37,7 +37,7 @@ Pulsar uses *Proxy roles* to enable the authentication. Proxy roles are specifie
 
 You must authorize the *proxy role* and the *original principle* to access a resource. Thus that resource can be accessible via the proxy. Administrators can take two approaches to authorize the *proxy role* and the *original principle*.
 
-The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creats a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
+The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creates a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
 
 Another approach is to make the proxy role a superuser. This allows the proxy to access all resources. The client still needs to authenticate with the proxy, and all requests made through the proxy have their role downgraded to the *original principal* of the authenticated client. However, if the proxy is compromised, a bad actor could get full access to your cluster.
 
diff --git a/site2/website/versioned_docs/version-2.6.0/security-jwt.md b/site2/website/versioned_docs/version-2.6.0/security-jwt.md
index f8945f7..2735f1d 100644
--- a/site2/website/versioned_docs/version-2.6.0/security-jwt.md
+++ b/site2/website/versioned_docs/version-2.6.0/security-jwt.md
@@ -258,7 +258,7 @@ brokerClientAuthenticationParameters=token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0
 # Or, alternatively, read token from file
 # brokerClientAuthenticationParameters=file:///path/to/proxy-token.txt
 
-# Whether client authorization credentials are forwared to the broker for re-authorization.
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
 # Authentication must be enabled via authenticationEnabled=true for this to take effect.
 forwardAuthorizationCredentials=true
 ```
diff --git a/site2/website/versioned_docs/version-2.6.0/security-kerberos.md b/site2/website/versioned_docs/version-2.6.0/security-kerberos.md
index caa6ad8..7035cac 100644
--- a/site2/website/versioned_docs/version-2.6.0/security-kerberos.md
+++ b/site2/website/versioned_docs/version-2.6.0/security-kerberos.md
@@ -194,7 +194,7 @@ You must ensure that the operating system user who starts pulsar client can reac
 
 #### Configure CLI tools
 
-If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to preform the following steps:
+If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to perform the following steps:
 
 Step 1. Enter the command below to configure your `client.conf`.
 ```shell
@@ -219,7 +219,7 @@ With the above configuration, client and broker can do authentication using Kerb
 
 A client that connects to Pulsar Proxy is a little different. Pulsar Proxy (as a SASL Server in Kerberos) authenticates Client (as a SASL client in Kerberos) first; and then Pulsar broker authenticates Pulsar Proxy. 
 
-Now in comparision with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
+Now in comparison with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
 
 ### Create principal for Pulsar Proxy in Kerberos
 
@@ -239,7 +239,7 @@ sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{client-keytabnam
 
 ### Add a section in JAAS configuration file for Pulsar Proxy
 
-In comparision with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
+In comparison with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
 
 Here is an example named `pulsar_jaas.conf`:
 
diff --git a/site2/website/versioned_docs/version-2.6.0/security-tls-keystore.md b/site2/website/versioned_docs/version-2.6.0/security-tls-keystore.md
index aff3459..37acf72 100644
--- a/site2/website/versioned_docs/version-2.6.0/security-tls-keystore.md
+++ b/site2/website/versioned_docs/version-2.6.0/security-tls-keystore.md
@@ -122,7 +122,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
@@ -214,7 +214,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
diff --git a/site2/website/versioned_docs/version-2.6.0/security-tls-transport.md b/site2/website/versioned_docs/version-2.6.0/security-tls-transport.md
index 809faa9..967e3fb 100644
--- a/site2/website/versioned_docs/version-2.6.0/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.6.0/security-tls-transport.md
@@ -79,7 +79,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.6.1/admin-api-persistent-topics.md b/site2/website/versioned_docs/version-2.6.1/admin-api-persistent-topics.md
index 5b519a0..da5702a 100644
--- a/site2/website/versioned_docs/version-2.6.1/admin-api-persistent-topics.md
+++ b/site2/website/versioned_docs/version-2.6.1/admin-api-persistent-topics.md
@@ -680,7 +680,7 @@ admin.persistentTopics().deleteSubscription(topic, subscriptionName);
 
 ### Last Message Id
 
-It gives the last commited message ID for a persistent topic, and it will be available in 2.3.0.
+It gives the last committed message ID for a persistent topic, and it will be available in 2.3.0.
 
 ```shell
 pulsar-admin topics last-message-id topic-name
diff --git a/site2/website/versioned_docs/version-2.6.1/administration-dashboard.md b/site2/website/versioned_docs/version-2.6.1/administration-dashboard.md
index 7e6f20f..6b9e09c 100644
--- a/site2/website/versioned_docs/version-2.6.1/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.6.1/administration-dashboard.md
@@ -52,7 +52,7 @@ If the Pulsar service runs in standalone mode in `localhost`, the `SERVICE_URL`
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, you need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
@@ -60,4 +60,4 @@ $ bin/pulsar standalone --advertised-address 1.2.3.4
 
 ### Known issues
 
-Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
\ No newline at end of file
+Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
diff --git a/site2/website/versioned_docs/version-2.6.1/administration-load-balance.md b/site2/website/versioned_docs/version-2.6.1/administration-load-balance.md
index 8ad20cc..e61563a 100644
--- a/site2/website/versioned_docs/version-2.6.1/administration-load-balance.md
+++ b/site2/website/versioned_docs/version-2.6.1/administration-load-balance.md
@@ -118,7 +118,7 @@ loadBalancerNamespaceMaximumBundles=128
 
 ### Shed load automatically
 
-The support for automatic load shedding is avaliable in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
+The support for automatic load shedding is available in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
 
 When a broker is identified as overloaded, the broker forces to "unload" a subset of the bundles, the
 ones with higher traffic, that make up for the overload percentage.
diff --git a/site2/website/versioned_docs/version-2.6.1/administration-proxy.md b/site2/website/versioned_docs/version-2.6.1/administration-proxy.md
index 12ebd76..3a6fa6e 100644
--- a/site2/website/versioned_docs/version-2.6.1/administration-proxy.md
+++ b/site2/website/versioned_docs/version-2.6.1/administration-proxy.md
@@ -94,7 +94,7 @@ You can configure the Pulsar proxy using the [`proxy.conf`](reference-configurat
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they are able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy rejects requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy errors out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.6.1/administration-pulsar-manager.md b/site2/website/versioned_docs/version-2.6.1/administration-pulsar-manager.md
index d8fc750..2cc16a8 100644
--- a/site2/website/versioned_docs/version-2.6.1/administration-pulsar-manager.md
+++ b/site2/website/versioned_docs/version-2.6.1/administration-pulsar-manager.md
@@ -127,7 +127,7 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -142,13 +142,13 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --private-key` command.
-* `PRIVATE_KEY`: private key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
-* `PUBLIC_KEY`: public key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
+* `PRIVATE_KEY`: private key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
+* `PUBLIC_KEY`: public key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
 * `$PWD/secret`: the folder where the private key and public key generated by the `bin/pulsar tokens create-key-pair` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -163,12 +163,12 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --secret-key` command.
-* `SECRET_KEY`: secret key path mounted in container, genrated by `bin/pulsar tokens create-secret-key` command.
+* `SECRET_KEY`: secret key path mounted in container, generated by `bin/pulsar tokens create-secret-key` command.
 * `$PWD/secret`: the folder where the secret key generated by the `bin/pulsar tokens create-secret-key` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
diff --git a/site2/website/versioned_docs/version-2.6.1/client-libraries-java.md b/site2/website/versioned_docs/version-2.6.1/client-libraries-java.md
index bd8b33b..edd247e 100644
--- a/site2/website/versioned_docs/version-2.6.1/client-libraries-java.md
+++ b/site2/website/versioned_docs/version-2.6.1/client-libraries-java.md
@@ -557,7 +557,7 @@ If a broker dispatches only one message at a time, consumer1 receives the follow
 ("key-4", "message-4-1")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-1", "message-1-2")
@@ -590,7 +590,7 @@ Consumer consumer2 = client.newConsumer()
 
 `Key_Shared` subscription is like `Shared` subscription, all consumers can attach to the same subscription. But it is different from `Key_Shared` subscription, messages with the same key are delivered to only one consumer in order. The possible distribution of messages between different consumers (by default we do not know in advance which keys will be assigned to a consumer, but a key will only be assigned to a consumer at the same time).
 
-consumer1 receives the follwoing information.
+consumer1 receives the following information.
 
 ```
 ("key-1", "message-1-1")
@@ -600,7 +600,7 @@ consumer1 receives the follwoing information.
 ("key-3", "message-3-2")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-2", "message-2-1")
diff --git a/site2/website/versioned_docs/version-2.6.1/concepts-messaging.md b/site2/website/versioned_docs/version-2.6.1/concepts-messaging.md
index bb8f882..e38ee14 100644
--- a/site2/website/versioned_docs/version-2.6.1/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.6.1/concepts-messaging.md
@@ -455,7 +455,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.6.1/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.6.1/deploy-bare-metal.md
index a612126..de5f0f9 100644
--- a/site2/website/versioned_docs/version-2.6.1/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.6.1/deploy-bare-metal.md
@@ -175,7 +175,7 @@ For more details of how to configure tiered storage feature, you can refer to th
 
 ## Deploy a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and want to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster, you need to deploy ZooKeeper first (before all other components). A 3-node ZooKeeper cluster is the recommended configuration. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -374,7 +374,7 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
+Once you successfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connect to the running cluster
 
diff --git a/site2/website/versioned_docs/version-2.6.1/deploy-dcos.md b/site2/website/versioned_docs/version-2.6.1/deploy-dcos.md
index 7c4e5ee..ca8524e 100644
--- a/site2/website/versioned_docs/version-2.6.1/deploy-dcos.md
+++ b/site2/website/versioned_docs/version-2.6.1/deploy-dcos.md
@@ -114,7 +114,7 @@ Click into `grafana` to get the endpoint for Grafana, which is `192.168.65.121:3
  
 ![DC/OS grafana endpoint](assets/dcos_grafana_endpoint.png)
 
-If you click that endpoint, you can access the Grafana dashbaord.
+If you click that endpoint, you can access the Grafana dashboard.
 
 ![DC/OS grafana targets](assets/dcos_grafana_dashboard.png)
 
diff --git a/site2/website/versioned_docs/version-2.6.1/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.6.1/developing-binary-protocol.md
index 745af76..3be647d 100644
--- a/site2/website/versioned_docs/version-2.6.1/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.6.1/developing-binary-protocol.md
@@ -413,7 +413,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.6.1/functions-develop.md b/site2/website/versioned_docs/version-2.6.1/functions-develop.md
index 7a9a8e5..6d632c5 100644
--- a/site2/website/versioned_docs/version-2.6.1/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.6.1/functions-develop.md
@@ -807,7 +807,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.6.1/helm-overview.md b/site2/website/versioned_docs/version-2.6.1/helm-overview.md
index d8c6e19..2412197 100644
--- a/site2/website/versioned_docs/version-2.6.1/helm-overview.md
+++ b/site2/website/versioned_docs/version-2.6.1/helm-overview.md
@@ -92,10 +92,10 @@ helm delete <pulsar-release-name>
 ```
 
 For the purposes of continuity, these charts have some Kubernetes objects that cannot be removed when performing `helm delete`.
-It is recommended to *conciously* remove these items, as they affect re-deployment.
+It is recommended to *consciously* remove these items, as they affect re-deployment.
 
 * PVCs for stateful data: *consciously* remove these items.
     - ZooKeeper: This is your metadata.
     - BookKeeper: This is your data.
     - Prometheus: This is your metrics data, which can be safely removed.
-* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
\ No newline at end of file
+* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
diff --git a/site2/website/versioned_docs/version-2.6.1/reference-configuration.md b/site2/website/versioned_docs/version-2.6.1/reference-configuration.md
index 67cfeb4..acb8cff 100644
--- a/site2/website/versioned_docs/version-2.6.1/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.6.1/reference-configuration.md
@@ -50,7 +50,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -72,10 +72,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -193,7 +193,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |exposePreciseBacklogInPrometheus| Enable expose the precise backlog stats, set false to use published counter and consumed counter to calculate, this would be more efficient but may be inaccurate. |false|
 |bookkeeperMetadataServiceUri| Metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location. This value can be fetched using `bookkeeper shell whatisinstanceid` command in BookKeeper cluster. For example: zk+hierarchical://localhost:2181/ledgers. The metadata service uri list can also be semicolon separated values like below: zk+hierarchical://zk1:2181;zk2:2181;zk3:2181/ledgers ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -503,7 +503,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.6.1/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.6.1/reference-pulsar-admin.md
index b64313b..19a48a3 100644
--- a/site2/website/versioned_docs/version-2.6.1/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.6.1/reference-pulsar-admin.md
@@ -1970,7 +1970,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2351,7 +2351,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2405,7 +2405,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -2415,7 +2415,7 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 ### `extract`
 Provide the schema definition for a topic via Java class name contained in a JAR file
diff --git a/site2/website/versioned_docs/version-2.6.1/reference-terminology.md b/site2/website/versioned_docs/version-2.6.1/reference-terminology.md
index 22395c7..aa75925 100644
--- a/site2/website/versioned_docs/version-2.6.1/reference-terminology.md
+++ b/site2/website/versioned_docs/version-2.6.1/reference-terminology.md
@@ -47,7 +47,7 @@ modes (exclusive, shared, failover and key_shared).
 
 #### Pub-Sub
 
-A messaging pattern in which [producer](#producer) proccesses publish messages on [topics](#topic) that
+A messaging pattern in which [producer](#producer) processes publish messages on [topics](#topic) that
 are then consumed (processed) by [consumer](#consumer) processes.
 
 #### Producer
diff --git a/site2/website/versioned_docs/version-2.6.1/security-athenz.md b/site2/website/versioned_docs/version-2.6.1/security-athenz.md
index 5fb1bc2..d32d9e7 100644
--- a/site2/website/versioned_docs/version-2.6.1/security-athenz.md
+++ b/site2/website/versioned_docs/version-2.6.1/security-athenz.md
@@ -42,7 +42,7 @@ For more specific steps involving UI, refer to [Example Service Access Control S
 > ### TLS encryption 
 >
 > Note that when you are using Athenz as an authentication provider, you had better use TLS encryption 
-> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encrption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
+> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encryption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
 
 In the `conf/broker.conf` configuration file in your Pulsar installation, you need to provide the class name of the Athenz authentication provider as well as a comma-separated list of provider domain names.
 
diff --git a/site2/website/versioned_docs/version-2.6.1/security-authorization.md b/site2/website/versioned_docs/version-2.6.1/security-authorization.md
index dacecc3..7ecaca6 100644
--- a/site2/website/versioned_docs/version-2.6.1/security-authorization.md
+++ b/site2/website/versioned_docs/version-2.6.1/security-authorization.md
@@ -37,7 +37,7 @@ Pulsar uses *Proxy roles* to enable the authentication. Proxy roles are specifie
 
 You must authorize the *proxy role* and the *original principle* to access a resource. Thus that resource can be accessible via the proxy. Administrators can take two approaches to authorize the *proxy role* and the *original principle*.
 
-The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creats a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
+The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creates a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
 
 Another approach is to make the proxy role a superuser. This allows the proxy to access all resources. The client still needs to authenticate with the proxy, and all requests made through the proxy have their role downgraded to the *original principal* of the authenticated client. However, if the proxy is compromised, a bad actor could get full access to your cluster.
 
diff --git a/site2/website/versioned_docs/version-2.6.1/security-jwt.md b/site2/website/versioned_docs/version-2.6.1/security-jwt.md
index 3b442f6..cbf1393 100644
--- a/site2/website/versioned_docs/version-2.6.1/security-jwt.md
+++ b/site2/website/versioned_docs/version-2.6.1/security-jwt.md
@@ -258,7 +258,7 @@ brokerClientAuthenticationParameters=token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0
 # Or, alternatively, read token from file
 # brokerClientAuthenticationParameters=file:///path/to/proxy-token.txt
 
-# Whether client authorization credentials are forwared to the broker for re-authorization.
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
 # Authentication must be enabled via authenticationEnabled=true for this to take effect.
 forwardAuthorizationCredentials=true
 ```
diff --git a/site2/website/versioned_docs/version-2.6.1/security-kerberos.md b/site2/website/versioned_docs/version-2.6.1/security-kerberos.md
index c113d18..7dbcd77 100644
--- a/site2/website/versioned_docs/version-2.6.1/security-kerberos.md
+++ b/site2/website/versioned_docs/version-2.6.1/security-kerberos.md
@@ -194,7 +194,7 @@ You must ensure that the operating system user who starts pulsar client can reac
 
 #### Configure CLI tools
 
-If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to preform the following steps:
+If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to perform the following steps:
 
 Step 1. Enter the command below to configure your `client.conf`.
 ```shell
@@ -219,7 +219,7 @@ With the above configuration, client and broker can do authentication using Kerb
 
 A client that connects to Pulsar Proxy is a little different. Pulsar Proxy (as a SASL Server in Kerberos) authenticates Client (as a SASL client in Kerberos) first; and then Pulsar broker authenticates Pulsar Proxy. 
 
-Now in comparision with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
+Now in comparison with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
 
 ### Create principal for Pulsar Proxy in Kerberos
 
@@ -239,7 +239,7 @@ sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{client-keytabnam
 
 ### Add a section in JAAS configuration file for Pulsar Proxy
 
-In comparision with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
+In comparison with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
 
 Here is an example named `pulsar_jaas.conf`:
 
diff --git a/site2/website/versioned_docs/version-2.6.1/security-tls-keystore.md b/site2/website/versioned_docs/version-2.6.1/security-tls-keystore.md
index f71b4c0..58d34da 100644
--- a/site2/website/versioned_docs/version-2.6.1/security-tls-keystore.md
+++ b/site2/website/versioned_docs/version-2.6.1/security-tls-keystore.md
@@ -122,7 +122,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
@@ -214,7 +214,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
diff --git a/site2/website/versioned_docs/version-2.6.1/security-tls-transport.md b/site2/website/versioned_docs/version-2.6.1/security-tls-transport.md
index 19c9c58..41a13be 100644
--- a/site2/website/versioned_docs/version-2.6.1/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.6.1/security-tls-transport.md
@@ -79,7 +79,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.6.2/admin-api-persistent-topics.md b/site2/website/versioned_docs/version-2.6.2/admin-api-persistent-topics.md
index c74318d..d83005e 100644
--- a/site2/website/versioned_docs/version-2.6.2/admin-api-persistent-topics.md
+++ b/site2/website/versioned_docs/version-2.6.2/admin-api-persistent-topics.md
@@ -680,7 +680,7 @@ admin.persistentTopics().deleteSubscription(topic, subscriptionName);
 
 ### Last Message Id
 
-It gives the last commited message ID for a persistent topic, and it will be available in 2.3.0.
+It gives the last committed message ID for a persistent topic, and it will be available in 2.3.0.
 
 ```shell
 pulsar-admin topics last-message-id topic-name
diff --git a/site2/website/versioned_docs/version-2.6.2/administration-dashboard.md b/site2/website/versioned_docs/version-2.6.2/administration-dashboard.md
index a6aad38..bbea950 100644
--- a/site2/website/versioned_docs/version-2.6.2/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.6.2/administration-dashboard.md
@@ -52,7 +52,7 @@ If the Pulsar service runs in standalone mode in `localhost`, the `SERVICE_URL`
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, you need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
@@ -60,4 +60,4 @@ $ bin/pulsar standalone --advertised-address 1.2.3.4
 
 ### Known issues
 
-Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
\ No newline at end of file
+Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
diff --git a/site2/website/versioned_docs/version-2.6.2/administration-load-balance.md b/site2/website/versioned_docs/version-2.6.2/administration-load-balance.md
index 853d5b4..a910389 100644
--- a/site2/website/versioned_docs/version-2.6.2/administration-load-balance.md
+++ b/site2/website/versioned_docs/version-2.6.2/administration-load-balance.md
@@ -118,7 +118,7 @@ loadBalancerNamespaceMaximumBundles=128
 
 ### Shed load automatically
 
-The support for automatic load shedding is avaliable in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
+The support for automatic load shedding is available in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
 
 When a broker is identified as overloaded, the broker forces to "unload" a subset of the bundles, the
 ones with higher traffic, that make up for the overload percentage.
diff --git a/site2/website/versioned_docs/version-2.6.2/administration-proxy.md b/site2/website/versioned_docs/version-2.6.2/administration-proxy.md
index 7079dee..5b31b5f 100644
--- a/site2/website/versioned_docs/version-2.6.2/administration-proxy.md
+++ b/site2/website/versioned_docs/version-2.6.2/administration-proxy.md
@@ -94,7 +94,7 @@ You can configure the Pulsar proxy using the [`proxy.conf`](reference-configurat
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they are able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy rejects requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy errors out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.6.2/administration-pulsar-manager.md b/site2/website/versioned_docs/version-2.6.2/administration-pulsar-manager.md
index ebe13a2..5bc3741 100644
--- a/site2/website/versioned_docs/version-2.6.2/administration-pulsar-manager.md
+++ b/site2/website/versioned_docs/version-2.6.2/administration-pulsar-manager.md
@@ -127,7 +127,7 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -142,13 +142,13 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --private-key` command.
-* `PRIVATE_KEY`: private key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
-* `PUBLIC_KEY`: public key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
+* `PRIVATE_KEY`: private key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
+* `PUBLIC_KEY`: public key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
 * `$PWD/secret`: the folder where the private key and public key generated by the `bin/pulsar tokens create-key-pair` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -163,12 +163,12 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --secret-key` command.
-* `SECRET_KEY`: secret key path mounted in container, genrated by `bin/pulsar tokens create-secret-key` command.
+* `SECRET_KEY`: secret key path mounted in container, generated by `bin/pulsar tokens create-secret-key` command.
 * `$PWD/secret`: the folder where the secret key generated by the `bin/pulsar tokens create-secret-key` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
diff --git a/site2/website/versioned_docs/version-2.6.2/client-libraries-java.md b/site2/website/versioned_docs/version-2.6.2/client-libraries-java.md
index 6bb0b17..f2fddb9 100644
--- a/site2/website/versioned_docs/version-2.6.2/client-libraries-java.md
+++ b/site2/website/versioned_docs/version-2.6.2/client-libraries-java.md
@@ -557,7 +557,7 @@ If a broker dispatches only one message at a time, consumer1 receives the follow
 ("key-4", "message-4-1")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-1", "message-1-2")
@@ -590,7 +590,7 @@ Consumer consumer2 = client.newConsumer()
 
 `Key_Shared` subscription is like `Shared` subscription, all consumers can attach to the same subscription. But it is different from `Key_Shared` subscription, messages with the same key are delivered to only one consumer in order. The possible distribution of messages between different consumers (by default we do not know in advance which keys will be assigned to a consumer, but a key will only be assigned to a consumer at the same time).
 
-consumer1 receives the follwoing information.
+consumer1 receives the following information.
 
 ```
 ("key-1", "message-1-1")
@@ -600,7 +600,7 @@ consumer1 receives the follwoing information.
 ("key-3", "message-3-2")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-2", "message-2-1")
diff --git a/site2/website/versioned_docs/version-2.6.2/concepts-messaging.md b/site2/website/versioned_docs/version-2.6.2/concepts-messaging.md
index 24eeebe..2c73300 100644
--- a/site2/website/versioned_docs/version-2.6.2/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.6.2/concepts-messaging.md
@@ -455,7 +455,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.6.2/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.6.2/deploy-bare-metal.md
index a330a11..3e70972 100644
--- a/site2/website/versioned_docs/version-2.6.2/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.6.2/deploy-bare-metal.md
@@ -175,7 +175,7 @@ For more details of how to configure tiered storage feature, you can refer to th
 
 ## Deploy a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and want to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster, you need to deploy ZooKeeper first (before all other components). A 3-node ZooKeeper cluster is the recommended configuration. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -374,7 +374,7 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
+Once you successfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connect to the running cluster
 
diff --git a/site2/website/versioned_docs/version-2.6.2/deploy-dcos.md b/site2/website/versioned_docs/version-2.6.2/deploy-dcos.md
index fbdec54..c345cbc 100644
--- a/site2/website/versioned_docs/version-2.6.2/deploy-dcos.md
+++ b/site2/website/versioned_docs/version-2.6.2/deploy-dcos.md
@@ -114,7 +114,7 @@ Click into `grafana` to get the endpoint for Grafana, which is `192.168.65.121:3
  
 ![DC/OS grafana endpoint](assets/dcos_grafana_endpoint.png)
 
-If you click that endpoint, you can access the Grafana dashbaord.
+If you click that endpoint, you can access the Grafana dashboard.
 
 ![DC/OS grafana targets](assets/dcos_grafana_dashboard.png)
 
diff --git a/site2/website/versioned_docs/version-2.6.2/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.6.2/developing-binary-protocol.md
index ef54197..4464309 100644
--- a/site2/website/versioned_docs/version-2.6.2/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.6.2/developing-binary-protocol.md
@@ -413,7 +413,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.6.2/functions-develop.md b/site2/website/versioned_docs/version-2.6.2/functions-develop.md
index 126bad7..73b5d79 100644
--- a/site2/website/versioned_docs/version-2.6.2/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.6.2/functions-develop.md
@@ -807,7 +807,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.6.2/helm-overview.md b/site2/website/versioned_docs/version-2.6.2/helm-overview.md
index ce0a857..babe1cf 100644
--- a/site2/website/versioned_docs/version-2.6.2/helm-overview.md
+++ b/site2/website/versioned_docs/version-2.6.2/helm-overview.md
@@ -92,10 +92,10 @@ helm delete <pulsar-release-name>
 ```
 
 For the purposes of continuity, these charts have some Kubernetes objects that cannot be removed when performing `helm delete`.
-It is recommended to *conciously* remove these items, as they affect re-deployment.
+It is recommended to *consciously* remove these items, as they affect re-deployment.
 
 * PVCs for stateful data: *consciously* remove these items.
     - ZooKeeper: This is your metadata.
     - BookKeeper: This is your data.
     - Prometheus: This is your metrics data, which can be safely removed.
-* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
\ No newline at end of file
+* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
diff --git a/site2/website/versioned_docs/version-2.6.2/reference-configuration.md b/site2/website/versioned_docs/version-2.6.2/reference-configuration.md
index d126948..e0690f9 100644
--- a/site2/website/versioned_docs/version-2.6.2/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.6.2/reference-configuration.md
@@ -50,7 +50,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -71,10 +71,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -192,7 +192,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |exposePreciseBacklogInPrometheus| Enable expose the precise backlog stats, set false to use published counter and consumed counter to calculate, this would be more efficient but may be inaccurate. |false|
 |bookkeeperMetadataServiceUri| Metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location. This value can be fetched using `bookkeeper shell whatisinstanceid` command in BookKeeper cluster. For example: zk+hierarchical://localhost:2181/ledgers. The metadata service uri list can also be semicolon separated values like below: zk+hierarchical://zk1:2181;zk2:2181;zk3:2181/ledgers ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -504,7 +504,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.6.2/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.6.2/reference-pulsar-admin.md
index 53f9214..e465cc2 100644
--- a/site2/website/versioned_docs/version-2.6.2/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.6.2/reference-pulsar-admin.md
@@ -1979,7 +1979,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2360,7 +2360,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2414,7 +2414,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -2424,7 +2424,7 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 ### `extract`
 Provide the schema definition for a topic via Java class name contained in a JAR file
diff --git a/site2/website/versioned_docs/version-2.6.2/reference-terminology.md b/site2/website/versioned_docs/version-2.6.2/reference-terminology.md
index 1b3d8fe..c4b8fd8 100644
--- a/site2/website/versioned_docs/version-2.6.2/reference-terminology.md
+++ b/site2/website/versioned_docs/version-2.6.2/reference-terminology.md
@@ -47,7 +47,7 @@ modes (exclusive, shared, failover and key_shared).
 
 #### Pub-Sub
 
-A messaging pattern in which [producer](#producer) proccesses publish messages on [topics](#topic) that
+A messaging pattern in which [producer](#producer) processes publish messages on [topics](#topic) that
 are then consumed (processed) by [consumer](#consumer) processes.
 
 #### Producer
diff --git a/site2/website/versioned_docs/version-2.6.2/security-athenz.md b/site2/website/versioned_docs/version-2.6.2/security-athenz.md
index 81cf181..689f5f5 100644
--- a/site2/website/versioned_docs/version-2.6.2/security-athenz.md
+++ b/site2/website/versioned_docs/version-2.6.2/security-athenz.md
@@ -42,7 +42,7 @@ For more specific steps involving UI, refer to [Example Service Access Control S
 > ### TLS encryption 
 >
 > Note that when you are using Athenz as an authentication provider, you had better use TLS encryption 
-> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encrption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
+> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encryption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
 
 In the `conf/broker.conf` configuration file in your Pulsar installation, you need to provide the class name of the Athenz authentication provider as well as a comma-separated list of provider domain names.
 
diff --git a/site2/website/versioned_docs/version-2.6.2/security-authorization.md b/site2/website/versioned_docs/version-2.6.2/security-authorization.md
index 27ce4ed..65407e8 100644
--- a/site2/website/versioned_docs/version-2.6.2/security-authorization.md
+++ b/site2/website/versioned_docs/version-2.6.2/security-authorization.md
@@ -37,7 +37,7 @@ Pulsar uses *Proxy roles* to enable the authentication. Proxy roles are specifie
 
 You must authorize the *proxy role* and the *original principle* to access a resource. Thus that resource can be accessible via the proxy. Administrators can take two approaches to authorize the *proxy role* and the *original principle*.
 
-The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creats a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
+The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creates a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
 
 Another approach is to make the proxy role a superuser. This allows the proxy to access all resources. The client still needs to authenticate with the proxy, and all requests made through the proxy have their role downgraded to the *original principal* of the authenticated client. However, if the proxy is compromised, a bad actor could get full access to your cluster.
 
diff --git a/site2/website/versioned_docs/version-2.6.2/security-jwt.md b/site2/website/versioned_docs/version-2.6.2/security-jwt.md
index e30c70f..c14ec67 100644
--- a/site2/website/versioned_docs/version-2.6.2/security-jwt.md
+++ b/site2/website/versioned_docs/version-2.6.2/security-jwt.md
@@ -258,7 +258,7 @@ brokerClientAuthenticationParameters=token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0
 # Or, alternatively, read token from file
 # brokerClientAuthenticationParameters=file:///path/to/proxy-token.txt
 
-# Whether client authorization credentials are forwared to the broker for re-authorization.
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
 # Authentication must be enabled via authenticationEnabled=true for this to take effect.
 forwardAuthorizationCredentials=true
 ```
diff --git a/site2/website/versioned_docs/version-2.6.2/security-kerberos.md b/site2/website/versioned_docs/version-2.6.2/security-kerberos.md
index 9e84327..5f2a481 100644
--- a/site2/website/versioned_docs/version-2.6.2/security-kerberos.md
+++ b/site2/website/versioned_docs/version-2.6.2/security-kerberos.md
@@ -194,7 +194,7 @@ You must ensure that the operating system user who starts pulsar client can reac
 
 #### Configure CLI tools
 
-If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to preform the following steps:
+If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to perform the following steps:
 
 Step 1. Enter the command below to configure your `client.conf`.
 ```shell
@@ -219,7 +219,7 @@ With the above configuration, client and broker can do authentication using Kerb
 
 A client that connects to Pulsar Proxy is a little different. Pulsar Proxy (as a SASL Server in Kerberos) authenticates Client (as a SASL client in Kerberos) first; and then Pulsar broker authenticates Pulsar Proxy. 
 
-Now in comparision with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
+Now in comparison with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
 
 ### Create principal for Pulsar Proxy in Kerberos
 
@@ -239,7 +239,7 @@ sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{client-keytabnam
 
 ### Add a section in JAAS configuration file for Pulsar Proxy
 
-In comparision with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
+In comparison with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
 
 Here is an example named `pulsar_jaas.conf`:
 
diff --git a/site2/website/versioned_docs/version-2.6.2/security-tls-keystore.md b/site2/website/versioned_docs/version-2.6.2/security-tls-keystore.md
index 6e0528f..0476c18 100644
--- a/site2/website/versioned_docs/version-2.6.2/security-tls-keystore.md
+++ b/site2/website/versioned_docs/version-2.6.2/security-tls-keystore.md
@@ -122,7 +122,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
@@ -214,7 +214,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
diff --git a/site2/website/versioned_docs/version-2.6.2/security-tls-transport.md b/site2/website/versioned_docs/version-2.6.2/security-tls-transport.md
index 9470307..e56391c 100644
--- a/site2/website/versioned_docs/version-2.6.2/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.6.2/security-tls-transport.md
@@ -79,7 +79,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.6.3/admin-api-persistent-topics.md b/site2/website/versioned_docs/version-2.6.3/admin-api-persistent-topics.md
index fa8481b..fd9a347 100644
--- a/site2/website/versioned_docs/version-2.6.3/admin-api-persistent-topics.md
+++ b/site2/website/versioned_docs/version-2.6.3/admin-api-persistent-topics.md
@@ -680,7 +680,7 @@ admin.persistentTopics().deleteSubscription(topic, subscriptionName);
 
 ### Last Message Id
 
-It gives the last commited message ID for a persistent topic, and it will be available in 2.3.0.
+It gives the last committed message ID for a persistent topic, and it will be available in 2.3.0.
 
 ```shell
 pulsar-admin topics last-message-id topic-name
diff --git a/site2/website/versioned_docs/version-2.6.3/administration-dashboard.md b/site2/website/versioned_docs/version-2.6.3/administration-dashboard.md
index f14330d..eb57a1c 100644
--- a/site2/website/versioned_docs/version-2.6.3/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.6.3/administration-dashboard.md
@@ -52,7 +52,7 @@ If the Pulsar service runs in standalone mode in `localhost`, the `SERVICE_URL`
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, you need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
@@ -60,4 +60,4 @@ $ bin/pulsar standalone --advertised-address 1.2.3.4
 
 ### Known issues
 
-Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
\ No newline at end of file
+Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
diff --git a/site2/website/versioned_docs/version-2.6.3/administration-load-balance.md b/site2/website/versioned_docs/version-2.6.3/administration-load-balance.md
index 46b1b48..dfd13dc 100644
--- a/site2/website/versioned_docs/version-2.6.3/administration-load-balance.md
+++ b/site2/website/versioned_docs/version-2.6.3/administration-load-balance.md
@@ -118,7 +118,7 @@ loadBalancerNamespaceMaximumBundles=128
 
 ### Shed load automatically
 
-The support for automatic load shedding is avaliable in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
+The support for automatic load shedding is available in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
 
 When a broker is identified as overloaded, the broker forces to "unload" a subset of the bundles, the
 ones with higher traffic, that make up for the overload percentage.
diff --git a/site2/website/versioned_docs/version-2.6.3/administration-proxy.md b/site2/website/versioned_docs/version-2.6.3/administration-proxy.md
index bc700eb..faf2a2a 100644
--- a/site2/website/versioned_docs/version-2.6.3/administration-proxy.md
+++ b/site2/website/versioned_docs/version-2.6.3/administration-proxy.md
@@ -94,7 +94,7 @@ You can configure the Pulsar proxy using the [`proxy.conf`](reference-configurat
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they are able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy rejects requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy errors out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.6.3/administration-pulsar-manager.md b/site2/website/versioned_docs/version-2.6.3/administration-pulsar-manager.md
index 53089e5..a3246de 100644
--- a/site2/website/versioned_docs/version-2.6.3/administration-pulsar-manager.md
+++ b/site2/website/versioned_docs/version-2.6.3/administration-pulsar-manager.md
@@ -127,7 +127,7 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -142,13 +142,13 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --private-key` command.
-* `PRIVATE_KEY`: private key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
-* `PUBLIC_KEY`: public key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
+* `PRIVATE_KEY`: private key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
+* `PUBLIC_KEY`: public key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
 * `$PWD/secret`: the folder where the private key and public key generated by the `bin/pulsar tokens create-key-pair` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -163,12 +163,12 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --secret-key` command.
-* `SECRET_KEY`: secret key path mounted in container, genrated by `bin/pulsar tokens create-secret-key` command.
+* `SECRET_KEY`: secret key path mounted in container, generated by `bin/pulsar tokens create-secret-key` command.
 * `$PWD/secret`: the folder where the secret key generated by the `bin/pulsar tokens create-secret-key` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
diff --git a/site2/website/versioned_docs/version-2.6.3/client-libraries-java.md b/site2/website/versioned_docs/version-2.6.3/client-libraries-java.md
index a2de4fb..a936d13 100644
--- a/site2/website/versioned_docs/version-2.6.3/client-libraries-java.md
+++ b/site2/website/versioned_docs/version-2.6.3/client-libraries-java.md
@@ -557,7 +557,7 @@ If a broker dispatches only one message at a time, consumer1 receives the follow
 ("key-4", "message-4-1")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-1", "message-1-2")
@@ -590,7 +590,7 @@ Consumer consumer2 = client.newConsumer()
 
 `Key_Shared` subscription is like `Shared` subscription, all consumers can attach to the same subscription. But it is different from `Key_Shared` subscription, messages with the same key are delivered to only one consumer in order. The possible distribution of messages between different consumers (by default we do not know in advance which keys will be assigned to a consumer, but a key will only be assigned to a consumer at the same time).
 
-consumer1 receives the follwoing information.
+consumer1 receives the following information.
 
 ```
 ("key-1", "message-1-1")
@@ -600,7 +600,7 @@ consumer1 receives the follwoing information.
 ("key-3", "message-3-2")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-2", "message-2-1")
diff --git a/site2/website/versioned_docs/version-2.6.3/concepts-messaging.md b/site2/website/versioned_docs/version-2.6.3/concepts-messaging.md
index 7defbd9..4fcfc4c 100644
--- a/site2/website/versioned_docs/version-2.6.3/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.6.3/concepts-messaging.md
@@ -455,7 +455,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.6.3/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.6.3/deploy-bare-metal.md
index c203492..c9c9a8d 100644
--- a/site2/website/versioned_docs/version-2.6.3/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.6.3/deploy-bare-metal.md
@@ -175,7 +175,7 @@ For more details of how to configure tiered storage feature, you can refer to th
 
 ## Deploy a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and want to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster, you need to deploy ZooKeeper first (before all other components). A 3-node ZooKeeper cluster is the recommended configuration. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -374,7 +374,7 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
+Once you successfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connect to the running cluster
 
diff --git a/site2/website/versioned_docs/version-2.6.3/deploy-dcos.md b/site2/website/versioned_docs/version-2.6.3/deploy-dcos.md
index c84e359..3e40da2 100644
--- a/site2/website/versioned_docs/version-2.6.3/deploy-dcos.md
+++ b/site2/website/versioned_docs/version-2.6.3/deploy-dcos.md
@@ -114,7 +114,7 @@ Click into `grafana` to get the endpoint for Grafana, which is `192.168.65.121:3
  
 ![DC/OS grafana endpoint](assets/dcos_grafana_endpoint.png)
 
-If you click that endpoint, you can access the Grafana dashbaord.
+If you click that endpoint, you can access the Grafana dashboard.
 
 ![DC/OS grafana targets](assets/dcos_grafana_dashboard.png)
 
diff --git a/site2/website/versioned_docs/version-2.6.3/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.6.3/developing-binary-protocol.md
index 3aaa5a8..161ba8c 100644
--- a/site2/website/versioned_docs/version-2.6.3/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.6.3/developing-binary-protocol.md
@@ -413,7 +413,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.6.3/functions-develop.md b/site2/website/versioned_docs/version-2.6.3/functions-develop.md
index 2e913fc..2a855b5 100644
--- a/site2/website/versioned_docs/version-2.6.3/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.6.3/functions-develop.md
@@ -807,7 +807,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.6.3/helm-overview.md b/site2/website/versioned_docs/version-2.6.3/helm-overview.md
index 177577e..c86cf71 100644
--- a/site2/website/versioned_docs/version-2.6.3/helm-overview.md
+++ b/site2/website/versioned_docs/version-2.6.3/helm-overview.md
@@ -92,10 +92,10 @@ helm delete <pulsar-release-name>
 ```
 
 For the purposes of continuity, these charts have some Kubernetes objects that cannot be removed when performing `helm delete`.
-It is recommended to *conciously* remove these items, as they affect re-deployment.
+It is recommended to *consciously* remove these items, as they affect re-deployment.
 
 * PVCs for stateful data: *consciously* remove these items.
     - ZooKeeper: This is your metadata.
     - BookKeeper: This is your data.
     - Prometheus: This is your metrics data, which can be safely removed.
-* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
\ No newline at end of file
+* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
diff --git a/site2/website/versioned_docs/version-2.6.3/reference-configuration.md b/site2/website/versioned_docs/version-2.6.3/reference-configuration.md
index face8f0..ea4e55e 100644
--- a/site2/website/versioned_docs/version-2.6.3/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.6.3/reference-configuration.md
@@ -50,7 +50,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -71,10 +71,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -192,7 +192,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |exposePreciseBacklogInPrometheus| Enable expose the precise backlog stats, set false to use published counter and consumed counter to calculate, this would be more efficient but may be inaccurate. |false|
 |bookkeeperMetadataServiceUri| Metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location. This value can be fetched using `bookkeeper shell whatisinstanceid` command in BookKeeper cluster. For example: zk+hierarchical://localhost:2181/ledgers. The metadata service uri list can also be semicolon separated values like below: zk+hierarchical://zk1:2181;zk2:2181;zk3:2181/ledgers ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -499,7 +499,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.6.3/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.6.3/reference-pulsar-admin.md
index 7e97a07..4a0fede 100644
--- a/site2/website/versioned_docs/version-2.6.3/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.6.3/reference-pulsar-admin.md
@@ -1979,7 +1979,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2360,7 +2360,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2414,7 +2414,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -2424,7 +2424,7 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 ### `extract`
 Provide the schema definition for a topic via Java class name contained in a JAR file
diff --git a/site2/website/versioned_docs/version-2.6.3/reference-terminology.md b/site2/website/versioned_docs/version-2.6.3/reference-terminology.md
index c2c7031..550bf8e 100644
--- a/site2/website/versioned_docs/version-2.6.3/reference-terminology.md
+++ b/site2/website/versioned_docs/version-2.6.3/reference-terminology.md
@@ -47,7 +47,7 @@ modes (exclusive, shared, failover and key_shared).
 
 #### Pub-Sub
 
-A messaging pattern in which [producer](#producer) proccesses publish messages on [topics](#topic) that
+A messaging pattern in which [producer](#producer) processes publish messages on [topics](#topic) that
 are then consumed (processed) by [consumer](#consumer) processes.
 
 #### Producer
diff --git a/site2/website/versioned_docs/version-2.6.3/security-athenz.md b/site2/website/versioned_docs/version-2.6.3/security-athenz.md
index 8874533..1b9b0f9 100644
--- a/site2/website/versioned_docs/version-2.6.3/security-athenz.md
+++ b/site2/website/versioned_docs/version-2.6.3/security-athenz.md
@@ -42,7 +42,7 @@ For more specific steps involving UI, refer to [Example Service Access Control S
 > ### TLS encryption 
 >
 > Note that when you are using Athenz as an authentication provider, you had better use TLS encryption 
-> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encrption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
+> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encryption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
 
 In the `conf/broker.conf` configuration file in your Pulsar installation, you need to provide the class name of the Athenz authentication provider as well as a comma-separated list of provider domain names.
 
diff --git a/site2/website/versioned_docs/version-2.6.3/security-authorization.md b/site2/website/versioned_docs/version-2.6.3/security-authorization.md
index 6461b44..f740859 100644
--- a/site2/website/versioned_docs/version-2.6.3/security-authorization.md
+++ b/site2/website/versioned_docs/version-2.6.3/security-authorization.md
@@ -37,7 +37,7 @@ Pulsar uses *Proxy roles* to enable the authentication. Proxy roles are specifie
 
 You must authorize the *proxy role* and the *original principle* to access a resource. Thus that resource can be accessible via the proxy. Administrators can take two approaches to authorize the *proxy role* and the *original principle*.
 
-The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creats a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
+The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creates a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
 
 Another approach is to make the proxy role a superuser. This allows the proxy to access all resources. The client still needs to authenticate with the proxy, and all requests made through the proxy have their role downgraded to the *original principal* of the authenticated client. However, if the proxy is compromised, a bad actor could get full access to your cluster.
 
diff --git a/site2/website/versioned_docs/version-2.6.3/security-jwt.md b/site2/website/versioned_docs/version-2.6.3/security-jwt.md
index 2c160ff..e4ea46a 100644
--- a/site2/website/versioned_docs/version-2.6.3/security-jwt.md
+++ b/site2/website/versioned_docs/version-2.6.3/security-jwt.md
@@ -258,7 +258,7 @@ brokerClientAuthenticationParameters={"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0
 # Or, alternatively, read token from file
 # brokerClientAuthenticationParameters={"file":"///path/to/proxy-token.txt"}
 
-# Whether client authorization credentials are forwared to the broker for re-authorization.
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
 # Authentication must be enabled via authenticationEnabled=true for this to take effect.
 forwardAuthorizationCredentials=true
 ```
diff --git a/site2/website/versioned_docs/version-2.6.3/security-kerberos.md b/site2/website/versioned_docs/version-2.6.3/security-kerberos.md
index 42293e0..38dd33a 100644
--- a/site2/website/versioned_docs/version-2.6.3/security-kerberos.md
+++ b/site2/website/versioned_docs/version-2.6.3/security-kerberos.md
@@ -194,7 +194,7 @@ You must ensure that the operating system user who starts pulsar client can reac
 
 #### Configure CLI tools
 
-If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to preform the following steps:
+If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to perform the following steps:
 
 Step 1. Enter the command below to configure your `client.conf`.
 ```shell
@@ -219,7 +219,7 @@ With the above configuration, client and broker can do authentication using Kerb
 
 A client that connects to Pulsar Proxy is a little different. Pulsar Proxy (as a SASL Server in Kerberos) authenticates Client (as a SASL client in Kerberos) first; and then Pulsar broker authenticates Pulsar Proxy. 
 
-Now in comparision with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
+Now in comparison with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
 
 ### Create principal for Pulsar Proxy in Kerberos
 
@@ -239,7 +239,7 @@ sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{client-keytabnam
 
 ### Add a section in JAAS configuration file for Pulsar Proxy
 
-In comparision with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
+In comparison with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
 
 Here is an example named `pulsar_jaas.conf`:
 
diff --git a/site2/website/versioned_docs/version-2.6.3/security-tls-keystore.md b/site2/website/versioned_docs/version-2.6.3/security-tls-keystore.md
index 196d330..00c8927 100644
--- a/site2/website/versioned_docs/version-2.6.3/security-tls-keystore.md
+++ b/site2/website/versioned_docs/version-2.6.3/security-tls-keystore.md
@@ -122,7 +122,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
@@ -214,7 +214,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
diff --git a/site2/website/versioned_docs/version-2.6.3/security-tls-transport.md b/site2/website/versioned_docs/version-2.6.3/security-tls-transport.md
index f052a57..59ed445 100644
--- a/site2/website/versioned_docs/version-2.6.3/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.6.3/security-tls-transport.md
@@ -79,7 +79,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.6.4/admin-api-persistent-topics.md b/site2/website/versioned_docs/version-2.6.4/admin-api-persistent-topics.md
index 961e34f..07b393c 100644
--- a/site2/website/versioned_docs/version-2.6.4/admin-api-persistent-topics.md
+++ b/site2/website/versioned_docs/version-2.6.4/admin-api-persistent-topics.md
@@ -680,7 +680,7 @@ admin.persistentTopics().deleteSubscription(topic, subscriptionName);
 
 ### Last Message Id
 
-It gives the last commited message ID for a persistent topic, and it will be available in 2.3.0.
+It gives the last committed message ID for a persistent topic, and it will be available in 2.3.0.
 
 ```shell
 pulsar-admin topics last-message-id topic-name
diff --git a/site2/website/versioned_docs/version-2.6.4/administration-dashboard.md b/site2/website/versioned_docs/version-2.6.4/administration-dashboard.md
index 4a47b3b..443c7b5 100644
--- a/site2/website/versioned_docs/version-2.6.4/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.6.4/administration-dashboard.md
@@ -52,7 +52,7 @@ If the Pulsar service runs in standalone mode in `localhost`, the `SERVICE_URL`
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, you need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
@@ -60,4 +60,4 @@ $ bin/pulsar standalone --advertised-address 1.2.3.4
 
 ### Known issues
 
-Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
\ No newline at end of file
+Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
diff --git a/site2/website/versioned_docs/version-2.6.4/administration-load-balance.md b/site2/website/versioned_docs/version-2.6.4/administration-load-balance.md
index 7aa3a6d..87d2c99 100644
--- a/site2/website/versioned_docs/version-2.6.4/administration-load-balance.md
+++ b/site2/website/versioned_docs/version-2.6.4/administration-load-balance.md
@@ -118,7 +118,7 @@ loadBalancerNamespaceMaximumBundles=128
 
 ### Shed load automatically
 
-The support for automatic load shedding is avaliable in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
+The support for automatic load shedding is available in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
 
 When a broker is identified as overloaded, the broker forces to "unload" a subset of the bundles, the
 ones with higher traffic, that make up for the overload percentage.
diff --git a/site2/website/versioned_docs/version-2.6.4/administration-proxy.md b/site2/website/versioned_docs/version-2.6.4/administration-proxy.md
index 0aeec2c..19bcf1b 100644
--- a/site2/website/versioned_docs/version-2.6.4/administration-proxy.md
+++ b/site2/website/versioned_docs/version-2.6.4/administration-proxy.md
@@ -94,7 +94,7 @@ You can configure the Pulsar proxy using the [`proxy.conf`](reference-configurat
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they are able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy rejects requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy errors out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.6.4/administration-pulsar-manager.md b/site2/website/versioned_docs/version-2.6.4/administration-pulsar-manager.md
index 000414b..50ea7db 100644
--- a/site2/website/versioned_docs/version-2.6.4/administration-pulsar-manager.md
+++ b/site2/website/versioned_docs/version-2.6.4/administration-pulsar-manager.md
@@ -127,7 +127,7 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -142,13 +142,13 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --private-key` command.
-* `PRIVATE_KEY`: private key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
-* `PUBLIC_KEY`: public key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
+* `PRIVATE_KEY`: private key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
+* `PUBLIC_KEY`: public key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
 * `$PWD/secret`: the folder where the private key and public key generated by the `bin/pulsar tokens create-key-pair` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -163,12 +163,12 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --secret-key` command.
-* `SECRET_KEY`: secret key path mounted in container, genrated by `bin/pulsar tokens create-secret-key` command.
+* `SECRET_KEY`: secret key path mounted in container, generated by `bin/pulsar tokens create-secret-key` command.
 * `$PWD/secret`: the folder where the secret key generated by the `bin/pulsar tokens create-secret-key` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
diff --git a/site2/website/versioned_docs/version-2.6.4/client-libraries-java.md b/site2/website/versioned_docs/version-2.6.4/client-libraries-java.md
index d97fb82..b3ad4d3 100644
--- a/site2/website/versioned_docs/version-2.6.4/client-libraries-java.md
+++ b/site2/website/versioned_docs/version-2.6.4/client-libraries-java.md
@@ -557,7 +557,7 @@ If a broker dispatches only one message at a time, consumer1 receives the follow
 ("key-4", "message-4-1")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-1", "message-1-2")
@@ -590,7 +590,7 @@ Consumer consumer2 = client.newConsumer()
 
 `Key_Shared` subscription is like `Shared` subscription, all consumers can attach to the same subscription. But it is different from `Key_Shared` subscription, messages with the same key are delivered to only one consumer in order. The possible distribution of messages between different consumers (by default we do not know in advance which keys will be assigned to a consumer, but a key will only be assigned to a consumer at the same time).
 
-consumer1 receives the follwoing information.
+consumer1 receives the following information.
 
 ```
 ("key-1", "message-1-1")
@@ -600,7 +600,7 @@ consumer1 receives the follwoing information.
 ("key-3", "message-3-2")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-2", "message-2-1")
@@ -866,4 +866,4 @@ PulsarClient client = PulsarClient.builder()
     .serviceUrl("pulsar://broker.example.com:6650/")
     .authentication(auth)
     .build();
-```
\ No newline at end of file
+```
diff --git a/site2/website/versioned_docs/version-2.6.4/concepts-messaging.md b/site2/website/versioned_docs/version-2.6.4/concepts-messaging.md
index 7880b67..1bcbd8e 100644
--- a/site2/website/versioned_docs/version-2.6.4/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.6.4/concepts-messaging.md
@@ -453,7 +453,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.6.4/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.6.4/deploy-bare-metal.md
index 779a583..4dcd151 100644
--- a/site2/website/versioned_docs/version-2.6.4/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.6.4/deploy-bare-metal.md
@@ -173,7 +173,7 @@ For more details of how to configure tiered storage feature, you can refer to th
 
 ## Deploy a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and want to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster, you need to deploy ZooKeeper first (before all other components). A 3-node ZooKeeper cluster is the recommended configuration. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -381,7 +381,7 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
+Once you successfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connect to the running cluster
 
diff --git a/site2/website/versioned_docs/version-2.6.4/deploy-dcos.md b/site2/website/versioned_docs/version-2.6.4/deploy-dcos.md
index 60510a9..d0a5fc1 100644
--- a/site2/website/versioned_docs/version-2.6.4/deploy-dcos.md
+++ b/site2/website/versioned_docs/version-2.6.4/deploy-dcos.md
@@ -114,7 +114,7 @@ Click into `grafana` to get the endpoint for Grafana, which is `192.168.65.121:3
  
 ![DC/OS grafana endpoint](assets/dcos_grafana_endpoint.png)
 
-If you click that endpoint, you can access the Grafana dashbaord.
+If you click that endpoint, you can access the Grafana dashboard.
 
 ![DC/OS grafana targets](assets/dcos_grafana_dashboard.png)
 
diff --git a/site2/website/versioned_docs/version-2.6.4/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.6.4/developing-binary-protocol.md
index a430dbf..6cb7856 100644
--- a/site2/website/versioned_docs/version-2.6.4/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.6.4/developing-binary-protocol.md
@@ -413,7 +413,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.6.4/functions-develop.md b/site2/website/versioned_docs/version-2.6.4/functions-develop.md
index a6998ca..55d1212 100644
--- a/site2/website/versioned_docs/version-2.6.4/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.6.4/functions-develop.md
@@ -805,7 +805,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.6.4/helm-overview.md b/site2/website/versioned_docs/version-2.6.4/helm-overview.md
index c608b04..c628ab7 100644
--- a/site2/website/versioned_docs/version-2.6.4/helm-overview.md
+++ b/site2/website/versioned_docs/version-2.6.4/helm-overview.md
@@ -92,10 +92,10 @@ helm delete <pulsar-release-name>
 ```
 
 For the purposes of continuity, these charts have some Kubernetes objects that cannot be removed when performing `helm delete`.
-It is recommended to *conciously* remove these items, as they affect re-deployment.
+It is recommended to *consciously* remove these items, as they affect re-deployment.
 
 * PVCs for stateful data: *consciously* remove these items.
     - ZooKeeper: This is your metadata.
     - BookKeeper: This is your data.
     - Prometheus: This is your metrics data, which can be safely removed.
-* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
\ No newline at end of file
+* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
diff --git a/site2/website/versioned_docs/version-2.6.4/reference-configuration.md b/site2/website/versioned_docs/version-2.6.4/reference-configuration.md
index 339cba6..462aecc 100644
--- a/site2/website/versioned_docs/version-2.6.4/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.6.4/reference-configuration.md
@@ -50,7 +50,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -71,10 +71,10 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |zkTimeout|ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue|30000|
 |serverTcpNoDelay|This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.|true|
 |openFileLimit|Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.|0|
-|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficent when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
-|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain bettern performance in lager number of ledgers with  [...]
+|pageSize|Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.|8192|
+|pageLimit|How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with f [...]
 |readOnlyModeEnabled|If all ledger directories configured are full, then support only read requests for clients. If “readOnlyModeEnabled=true” then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.|true|
-|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
+|diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
@@ -181,7 +181,7 @@ subscriptionExpirationTimeMinutes | How long to delete inactive subscriptions fr
 |maxConcurrentLookupRequest|  Max number of concurrent lookup request broker allows to throttle heavy incoming lookup traffic |50000|
 |maxConcurrentTopicLoadRequest| Max number of concurrent topic loading request broker allows to control number of zk-operations |5000|
 |authenticationEnabled| Enable authentication |false|
-|authenticationProviders| Autentication provider name list, which is comma separated list of class names  ||
+|authenticationProviders| Authentication provider name list, which is comma separated list of class names  ||
 |authorizationEnabled|  Enforce authorization |false|
 |superUserRoles|  Role names that are treated as “super-user”, meaning they will be able to do all admin operations and publish/consume from all topics ||
 |brokerClientAuthenticationPlugin|  Authentication settings of the broker itself. Used when the broker connects to other brokers, either in same or other clusters  ||
@@ -190,7 +190,7 @@ subscriptionExpirationTimeMinutes | How long to delete inactive subscriptions fr
 |exposePreciseBacklogInPrometheus| Enable expose the precise backlog stats, set false to use published counter and consumed counter to calculate, this would be more efficient but may be inaccurate. |false|
 |bookkeeperMetadataServiceUri| Metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location. This value can be fetched using `bookkeeper shell whatisinstanceid` command in BookKeeper cluster. For example: zk+hierarchical://localhost:2181/ledgers. The metadata service uri list can also be semicolon separated values like below: zk+hierarchical://zk1:2181;zk2:2181;zk3:2181/ledgers ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
@@ -501,7 +501,7 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 |brokerClientAuthenticationParameters|  The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers  ||
 |brokerClientTrustCertsFilePath|  The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers ||
 |superUserRoles|  Role names that are treated as “super-users,” meaning that they will be able to perform all admin ||
-|forwardAuthorizationCredentials| Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
+|forwardAuthorizationCredentials| Whether client authorization credentials are forwarded to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.  |false|
 |maxConcurrentInboundConnections| Max concurrent inbound connections. The proxy will reject requests beyond that. |10000|
 |maxConcurrentLookupRequests| Max concurrent outbound connections. The proxy will error out requests beyond that. |50000|
 |tlsEnabledInProxy| Whether TLS is enabled for the proxy  |false|
diff --git a/site2/website/versioned_docs/version-2.6.4/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.6.4/reference-pulsar-admin.md
index 74f22ce..4f453b0 100644
--- a/site2/website/versioned_docs/version-2.6.4/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.6.4/reference-pulsar-admin.md
@@ -1947,7 +1947,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2328,7 +2328,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2382,7 +2382,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -2392,7 +2392,7 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 ### `extract`
 Provide the schema definition for a topic via Java class name contained in a JAR file
diff --git a/site2/website/versioned_docs/version-2.6.4/reference-terminology.md b/site2/website/versioned_docs/version-2.6.4/reference-terminology.md
index 65a5ec8..c9bd868 100644
--- a/site2/website/versioned_docs/version-2.6.4/reference-terminology.md
+++ b/site2/website/versioned_docs/version-2.6.4/reference-terminology.md
@@ -47,7 +47,7 @@ modes (exclusive, shared, failover and key_shared).
 
 #### Pub-Sub
 
-A messaging pattern in which [producer](#producer) proccesses publish messages on [topics](#topic) that
+A messaging pattern in which [producer](#producer) processes publish messages on [topics](#topic) that
 are then consumed (processed) by [consumer](#consumer) processes.
 
 #### Producer
diff --git a/site2/website/versioned_docs/version-2.6.4/security-athenz.md b/site2/website/versioned_docs/version-2.6.4/security-athenz.md
index f8001b6..a07a0b7 100644
--- a/site2/website/versioned_docs/version-2.6.4/security-athenz.md
+++ b/site2/website/versioned_docs/version-2.6.4/security-athenz.md
@@ -42,7 +42,7 @@ For more specific steps involving UI, refer to [Example Service Access Control S
 > ### TLS encryption 
 >
 > Note that when you are using Athenz as an authentication provider, you had better use TLS encryption 
-> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encrption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
+> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encryption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
 
 In the `conf/broker.conf` configuration file in your Pulsar installation, you need to provide the class name of the Athenz authentication provider as well as a comma-separated list of provider domain names.
 
diff --git a/site2/website/versioned_docs/version-2.6.4/security-authorization.md b/site2/website/versioned_docs/version-2.6.4/security-authorization.md
index 0abb326..31fe1ce 100644
--- a/site2/website/versioned_docs/version-2.6.4/security-authorization.md
+++ b/site2/website/versioned_docs/version-2.6.4/security-authorization.md
@@ -37,7 +37,7 @@ Pulsar uses *Proxy roles* to enable the authentication. Proxy roles are specifie
 
 You must authorize the *proxy role* and the *original principle* to access a resource. Thus that resource can be accessible via the proxy. Administrators can take two approaches to authorize the *proxy role* and the *original principle*.
 
-The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creats a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
+The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creates a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
 
 Another approach is to make the proxy role a superuser. This allows the proxy to access all resources. The client still needs to authenticate with the proxy, and all requests made through the proxy have their role downgraded to the *original principal* of the authenticated client. However, if the proxy is compromised, a bad actor could get full access to your cluster.
 
diff --git a/site2/website/versioned_docs/version-2.6.4/security-kerberos.md b/site2/website/versioned_docs/version-2.6.4/security-kerberos.md
index 3c9c839..28591ef 100644
--- a/site2/website/versioned_docs/version-2.6.4/security-kerberos.md
+++ b/site2/website/versioned_docs/version-2.6.4/security-kerberos.md
@@ -194,7 +194,7 @@ You must ensure that the operating system user who starts pulsar client can reac
 
 #### Configure CLI tools
 
-If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to preform the following steps:
+If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to perform the following steps:
 
 Step 1. Enter the command below to configure your `client.conf`.
 ```shell
@@ -219,7 +219,7 @@ With the above configuration, client and broker can do authentication using Kerb
 
 A client that connects to Pulsar Proxy is a little different. Pulsar Proxy (as a SASL Server in Kerberos) authenticates Client (as a SASL client in Kerberos) first; and then Pulsar broker authenticates Pulsar Proxy. 
 
-Now in comparision with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
+Now in comparison with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
 
 ### Create principal for Pulsar Proxy in Kerberos
 
@@ -239,7 +239,7 @@ sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{client-keytabnam
 
 ### Add a section in JAAS configuration file for Pulsar Proxy
 
-In comparision with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
+In comparison with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
 
 Here is an example named `pulsar_jaas.conf`:
 
diff --git a/site2/website/versioned_docs/version-2.6.4/security-tls-keystore.md b/site2/website/versioned_docs/version-2.6.4/security-tls-keystore.md
index e2caa6a..d63866e 100644
--- a/site2/website/versioned_docs/version-2.6.4/security-tls-keystore.md
+++ b/site2/website/versioned_docs/version-2.6.4/security-tls-keystore.md
@@ -122,7 +122,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
@@ -214,7 +214,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
diff --git a/site2/website/versioned_docs/version-2.6.4/security-tls-transport.md b/site2/website/versioned_docs/version-2.6.4/security-tls-transport.md
index c3a9de2..35622f0 100644
--- a/site2/website/versioned_docs/version-2.6.4/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.6.4/security-tls-transport.md
@@ -79,7 +79,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.7.0/administration-dashboard.md b/site2/website/versioned_docs/version-2.7.0/administration-dashboard.md
index 30ff5aa..44c03e9 100644
--- a/site2/website/versioned_docs/version-2.7.0/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.7.0/administration-dashboard.md
@@ -52,7 +52,7 @@ If the Pulsar service runs in standalone mode in `localhost`, the `SERVICE_URL`
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, you need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
@@ -60,4 +60,4 @@ $ bin/pulsar standalone --advertised-address 1.2.3.4
 
 ### Known issues
 
-Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
\ No newline at end of file
+Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
diff --git a/site2/website/versioned_docs/version-2.7.0/administration-load-balance.md b/site2/website/versioned_docs/version-2.7.0/administration-load-balance.md
index c9b530b..1ec6d42 100644
--- a/site2/website/versioned_docs/version-2.7.0/administration-load-balance.md
+++ b/site2/website/versioned_docs/version-2.7.0/administration-load-balance.md
@@ -118,7 +118,7 @@ loadBalancerNamespaceMaximumBundles=128
 
 ### Shed load automatically
 
-The support for automatic load shedding is avaliable in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
+The support for automatic load shedding is available in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
 
 When a broker is identified as overloaded, the broker forces to "unload" a subset of the bundles, the
 ones with higher traffic, that make up for the overload percentage.
diff --git a/site2/website/versioned_docs/version-2.7.0/administration-pulsar-manager.md b/site2/website/versioned_docs/version-2.7.0/administration-pulsar-manager.md
index 35cfa2d..f93373c 100644
--- a/site2/website/versioned_docs/version-2.7.0/administration-pulsar-manager.md
+++ b/site2/website/versioned_docs/version-2.7.0/administration-pulsar-manager.md
@@ -127,7 +127,7 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -142,13 +142,13 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --private-key` command.
-* `PRIVATE_KEY`: private key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
-* `PUBLIC_KEY`: public key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
+* `PRIVATE_KEY`: private key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
+* `PUBLIC_KEY`: public key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
 * `$PWD/secret`: the folder where the private key and public key generated by the `bin/pulsar tokens create-key-pair` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -163,12 +163,12 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --secret-key` command.
-* `SECRET_KEY`: secret key path mounted in container, genrated by `bin/pulsar tokens create-secret-key` command.
+* `SECRET_KEY`: secret key path mounted in container, generated by `bin/pulsar tokens create-secret-key` command.
 * `$PWD/secret`: the folder where the secret key generated by the `bin/pulsar tokens create-secret-key` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
diff --git a/site2/website/versioned_docs/version-2.7.0/client-libraries-java.md b/site2/website/versioned_docs/version-2.7.0/client-libraries-java.md
index 418d814..2f39a9f 100644
--- a/site2/website/versioned_docs/version-2.7.0/client-libraries-java.md
+++ b/site2/website/versioned_docs/version-2.7.0/client-libraries-java.md
@@ -591,7 +591,7 @@ If a broker dispatches only one message at a time, consumer1 receives the follow
 ("key-4", "message-4-1")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-1", "message-1-2")
@@ -624,7 +624,7 @@ Consumer consumer2 = client.newConsumer()
 
 `Key_Shared` subscription is like `Shared` subscription, all consumers can attach to the same subscription. But it is different from `Key_Shared` subscription, messages with the same key are delivered to only one consumer in order. The possible distribution of messages between different consumers (by default we do not know in advance which keys will be assigned to a consumer, but a key will only be assigned to a consumer at the same time).
 
-consumer1 receives the follwoing information.
+consumer1 receives the following information.
 
 ```
 ("key-1", "message-1-1")
@@ -634,7 +634,7 @@ consumer1 receives the follwoing information.
 ("key-3", "message-3-2")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-2", "message-2-1")
diff --git a/site2/website/versioned_docs/version-2.7.0/concepts-messaging.md b/site2/website/versioned_docs/version-2.7.0/concepts-messaging.md
index bcb93e0..f920638 100644
--- a/site2/website/versioned_docs/version-2.7.0/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.7.0/concepts-messaging.md
@@ -458,7 +458,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.7.0/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.7.0/deploy-bare-metal.md
index 424f060..eb3e441 100644
--- a/site2/website/versioned_docs/version-2.7.0/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.7.0/deploy-bare-metal.md
@@ -175,7 +175,7 @@ For more details of how to configure tiered storage feature, you can refer to th
 
 ## Deploy a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and want to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster, you need to deploy ZooKeeper first (before all other components). A 3-node ZooKeeper cluster is the recommended configuration. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -385,7 +385,7 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
+Once you successfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connect to the running cluster
 
diff --git a/site2/website/versioned_docs/version-2.7.0/deploy-dcos.md b/site2/website/versioned_docs/version-2.7.0/deploy-dcos.md
index 181a817..40c8b4f 100644
--- a/site2/website/versioned_docs/version-2.7.0/deploy-dcos.md
+++ b/site2/website/versioned_docs/version-2.7.0/deploy-dcos.md
@@ -114,7 +114,7 @@ Click into `grafana` to get the endpoint for Grafana, which is `192.168.65.121:3
  
 ![DC/OS grafana endpoint](assets/dcos_grafana_endpoint.png)
 
-If you click that endpoint, you can access the Grafana dashbaord.
+If you click that endpoint, you can access the Grafana dashboard.
 
 ![DC/OS grafana targets](assets/dcos_grafana_dashboard.png)
 
diff --git a/site2/website/versioned_docs/version-2.7.0/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.7.0/developing-binary-protocol.md
index 030f5fb..5f78db2 100644
--- a/site2/website/versioned_docs/version-2.7.0/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.7.0/developing-binary-protocol.md
@@ -413,7 +413,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.7.0/functions-develop.md b/site2/website/versioned_docs/version-2.7.0/functions-develop.md
index 97cb4ff..7ed4da5 100644
--- a/site2/website/versioned_docs/version-2.7.0/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.7.0/functions-develop.md
@@ -847,7 +847,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.7.0/helm-overview.md b/site2/website/versioned_docs/version-2.7.0/helm-overview.md
index c97e510..bd08382 100644
--- a/site2/website/versioned_docs/version-2.7.0/helm-overview.md
+++ b/site2/website/versioned_docs/version-2.7.0/helm-overview.md
@@ -91,10 +91,10 @@ helm delete <pulsar-release-name>
 ```
 
 For the purposes of continuity, these charts have some Kubernetes objects that cannot be removed when performing `helm delete`.
-It is recommended to *conciously* remove these items, as they affect re-deployment.
+It is recommended to *consciously* remove these items, as they affect re-deployment.
 
 * PVCs for stateful data: *consciously* remove these items.
     - ZooKeeper: This is your metadata.
     - BookKeeper: This is your data.
     - Prometheus: This is your metrics data, which can be safely removed.
-* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
\ No newline at end of file
+* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
diff --git a/site2/website/versioned_docs/version-2.7.0/reference-configuration.md b/site2/website/versioned_docs/version-2.7.0/reference-configuration.md
index 9d793f2..949c266 100644
--- a/site2/website/versioned_docs/version-2.7.0/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.7.0/reference-configuration.md
@@ -57,7 +57,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -98,7 +98,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
-|sortedLedgerStorageEnabled|Whether sorted-ledger storage is enabled.|ture|
+|sortedLedgerStorageEnabled|Whether sorted-ledger storage is enabled.|true|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
 |numAddWorkerThreads|The number of threads that should handle write requests. if zero, the writes would be handled by netty threads directly.|0|
 |numReadWorkerThreads|The number of threads that should handle read requests. if zero, the reads would be handled by netty threads directly.|8|
@@ -243,7 +243,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |offloadersDirectory|The directory for all the offloader implementations.|./offloaders|
 |bookkeeperMetadataServiceUri| Metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location. This value can be fetched using `bookkeeper shell whatisinstanceid` command in BookKeeper cluster. For example: zk+hierarchical://localhost:2181/ledgers. The metadata service uri list can also be semicolon separated values like below: zk+hierarchical://zk1:2181;zk2:2181;zk3:2181/ledgers ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
diff --git a/site2/website/versioned_docs/version-2.7.0/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.7.0/reference-pulsar-admin.md
index b2b01b8..ff71632 100644
--- a/site2/website/versioned_docs/version-2.7.0/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.7.0/reference-pulsar-admin.md
@@ -2032,7 +2032,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2337,7 +2337,7 @@ Options
 |----|---|---|
 |`-e`, `--bookkeeper-ensemble`|Number of bookies to use for a topic|0|
 |`-w`, `--bookkeeper-write-quorum`|How many writes to make of each entry|0|
-|`-a`, `--bookkeeper-ack-quorum`|Number of acks (garanteed copies) to wait for each entry|0|
+|`-a`, `--bookkeeper-ack-quorum`|Number of acks (guaranteed copies) to wait for each entry|0|
 |`-r`, `--ml-mark-delete-max-rate`|Throttling rate of mark-delete operation (0 means no throttle)||
 
 ### `remove-persistence`
@@ -2760,7 +2760,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2814,7 +2814,7 @@ $ pulsar-admin schemas delete persistent://tenant/namespace/topic
 
 
 ### `get`
-Retrieve the schema definition assoicated with a topic (at a given version if version is supplied).
+Retrieve the schema definition associated with a topic (at a given version if version is supplied).
 
 Usage
 ```bash
@@ -2824,7 +2824,7 @@ $ pulsar-admin schemas get persistent://tenant/namespace/topic options
 Options
 |Flag|Description|Default|
 |----|---|---|
-|`--version`|The version of the schema definition to retrive for a topic.||
+|`--version`|The version of the schema definition to retrieve for a topic.||
 
 ### `extract`
 Provide the schema definition for a topic via Java class name contained in a JAR file
diff --git a/site2/website/versioned_docs/version-2.7.0/reference-terminology.md b/site2/website/versioned_docs/version-2.7.0/reference-terminology.md
index 5007090..52dd97a 100644
--- a/site2/website/versioned_docs/version-2.7.0/reference-terminology.md
+++ b/site2/website/versioned_docs/version-2.7.0/reference-terminology.md
@@ -47,7 +47,7 @@ modes (exclusive, shared, failover and key_shared).
 
 #### Pub-Sub
 
-A messaging pattern in which [producer](#producer) proccesses publish messages on [topics](#topic) that
+A messaging pattern in which [producer](#producer) processes publish messages on [topics](#topic) that
 are then consumed (processed) by [consumer](#consumer) processes.
 
 #### Producer
diff --git a/site2/website/versioned_docs/version-2.7.0/security-athenz.md b/site2/website/versioned_docs/version-2.7.0/security-athenz.md
index 019b717..184a83b 100644
--- a/site2/website/versioned_docs/version-2.7.0/security-athenz.md
+++ b/site2/website/versioned_docs/version-2.7.0/security-athenz.md
@@ -42,7 +42,7 @@ For more specific steps involving UI, refer to [Example Service Access Control S
 > ### TLS encryption 
 >
 > Note that when you are using Athenz as an authentication provider, you had better use TLS encryption 
-> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encrption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
+> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encryption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
 
 In the `conf/broker.conf` configuration file in your Pulsar installation, you need to provide the class name of the Athenz authentication provider as well as a comma-separated list of provider domain names.
 
diff --git a/site2/website/versioned_docs/version-2.7.0/security-authorization.md b/site2/website/versioned_docs/version-2.7.0/security-authorization.md
index 52ce1ec..b1afa39 100644
--- a/site2/website/versioned_docs/version-2.7.0/security-authorization.md
+++ b/site2/website/versioned_docs/version-2.7.0/security-authorization.md
@@ -38,7 +38,7 @@ Pulsar uses *Proxy roles* to enable the authentication. Proxy roles are specifie
 
 You must authorize both the *proxy role* and the *original principal* to access a resource to ensure that the resource is accessible via the proxy. Administrators can take two approaches to authorize the *proxy role* and the *original principal*.
 
-The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creats a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
+The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creates a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
 
 Another approach is to make the proxy role a superuser. This allows the proxy to access all resources. The client still needs to authenticate with the proxy, and all requests made through the proxy have their role downgraded to the *original principal* of the authenticated client. However, if the proxy is compromised, a bad actor could get full access to your cluster.
 
diff --git a/site2/website/versioned_docs/version-2.7.0/security-jwt.md b/site2/website/versioned_docs/version-2.7.0/security-jwt.md
index 8555b22..35c4adf 100644
--- a/site2/website/versioned_docs/version-2.7.0/security-jwt.md
+++ b/site2/website/versioned_docs/version-2.7.0/security-jwt.md
@@ -258,7 +258,7 @@ brokerClientAuthenticationParameters=token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0
 # Or, alternatively, read token from file
 # brokerClientAuthenticationParameters=file:///path/to/proxy-token.txt
 
-# Whether client authorization credentials are forwared to the broker for re-authorization.
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
 # Authentication must be enabled via authenticationEnabled=true for this to take effect.
 forwardAuthorizationCredentials=true
 ```
diff --git a/site2/website/versioned_docs/version-2.7.0/security-kerberos.md b/site2/website/versioned_docs/version-2.7.0/security-kerberos.md
index be4bf1c..d19a3e3 100644
--- a/site2/website/versioned_docs/version-2.7.0/security-kerberos.md
+++ b/site2/website/versioned_docs/version-2.7.0/security-kerberos.md
@@ -194,7 +194,7 @@ You must ensure that the operating system user who starts pulsar client can reac
 
 #### Configure CLI tools
 
-If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to preform the following steps:
+If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to perform the following steps:
 
 Step 1. Enter the command below to configure your `client.conf`.
 ```shell
@@ -219,7 +219,7 @@ With the above configuration, client and broker can do authentication using Kerb
 
 A client that connects to Pulsar Proxy is a little different. Pulsar Proxy (as a SASL Server in Kerberos) authenticates Client (as a SASL client in Kerberos) first; and then Pulsar broker authenticates Pulsar Proxy. 
 
-Now in comparision with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
+Now in comparison with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
 
 ### Create principal for Pulsar Proxy in Kerberos
 
@@ -239,7 +239,7 @@ sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{client-keytabnam
 
 ### Add a section in JAAS configuration file for Pulsar Proxy
 
-In comparision with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
+In comparison with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
 
 Here is an example named `pulsar_jaas.conf`:
 
diff --git a/site2/website/versioned_docs/version-2.7.0/security-tls-keystore.md b/site2/website/versioned_docs/version-2.7.0/security-tls-keystore.md
index f320a23..3d676cf 100644
--- a/site2/website/versioned_docs/version-2.7.0/security-tls-keystore.md
+++ b/site2/website/versioned_docs/version-2.7.0/security-tls-keystore.md
@@ -122,7 +122,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
@@ -214,7 +214,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
diff --git a/site2/website/versioned_docs/version-2.7.0/security-tls-transport.md b/site2/website/versioned_docs/version-2.7.0/security-tls-transport.md
index 4581efe..e0f8ddc 100644
--- a/site2/website/versioned_docs/version-2.7.0/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.7.0/security-tls-transport.md
@@ -79,7 +79,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.7.1/administration-dashboard.md b/site2/website/versioned_docs/version-2.7.1/administration-dashboard.md
index 3d1f8e3..7c16681 100644
--- a/site2/website/versioned_docs/version-2.7.1/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.7.1/administration-dashboard.md
@@ -52,7 +52,7 @@ If the Pulsar service runs in standalone mode in `localhost`, the `SERVICE_URL`
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, you need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
@@ -60,4 +60,4 @@ $ bin/pulsar standalone --advertised-address 1.2.3.4
 
 ### Known issues
 
-Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
\ No newline at end of file
+Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
diff --git a/site2/website/versioned_docs/version-2.7.1/administration-load-balance.md b/site2/website/versioned_docs/version-2.7.1/administration-load-balance.md
index ce3296e..b3aecdc 100644
--- a/site2/website/versioned_docs/version-2.7.1/administration-load-balance.md
+++ b/site2/website/versioned_docs/version-2.7.1/administration-load-balance.md
@@ -118,7 +118,7 @@ loadBalancerNamespaceMaximumBundles=128
 
 ### Shed load automatically
 
-The support for automatic load shedding is avaliable in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
+The support for automatic load shedding is available in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
 
 When a broker is identified as overloaded, the broker forces to "unload" a subset of the bundles, the
 ones with higher traffic, that make up for the overload percentage.
diff --git a/site2/website/versioned_docs/version-2.7.1/administration-pulsar-manager.md b/site2/website/versioned_docs/version-2.7.1/administration-pulsar-manager.md
index 2822e85..f557242 100644
--- a/site2/website/versioned_docs/version-2.7.1/administration-pulsar-manager.md
+++ b/site2/website/versioned_docs/version-2.7.1/administration-pulsar-manager.md
@@ -127,7 +127,7 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -142,13 +142,13 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --private-key` command.
-* `PRIVATE_KEY`: private key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
-* `PUBLIC_KEY`: public key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
+* `PRIVATE_KEY`: private key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
+* `PUBLIC_KEY`: public key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
 * `$PWD/secret`: the folder where the private key and public key generated by the `bin/pulsar tokens create-key-pair` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -163,12 +163,12 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --secret-key` command.
-* `SECRET_KEY`: secret key path mounted in container, genrated by `bin/pulsar tokens create-secret-key` command.
+* `SECRET_KEY`: secret key path mounted in container, generated by `bin/pulsar tokens create-secret-key` command.
 * `$PWD/secret`: the folder where the secret key generated by the `bin/pulsar tokens create-secret-key` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
diff --git a/site2/website/versioned_docs/version-2.7.1/client-libraries-java.md b/site2/website/versioned_docs/version-2.7.1/client-libraries-java.md
index b2f7fa0..f2f01ef 100644
--- a/site2/website/versioned_docs/version-2.7.1/client-libraries-java.md
+++ b/site2/website/versioned_docs/version-2.7.1/client-libraries-java.md
@@ -591,7 +591,7 @@ If a broker dispatches only one message at a time, consumer1 receives the follow
 ("key-4", "message-4-1")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-1", "message-1-2")
@@ -624,7 +624,7 @@ Consumer consumer2 = client.newConsumer()
 
 `Key_Shared` subscription is like `Shared` subscription, all consumers can attach to the same subscription. But it is different from `Key_Shared` subscription, messages with the same key are delivered to only one consumer in order. The possible distribution of messages between different consumers (by default we do not know in advance which keys will be assigned to a consumer, but a key will only be assigned to a consumer at the same time).
 
-consumer1 receives the follwoing information.
+consumer1 receives the following information.
 
 ```
 ("key-1", "message-1-1")
@@ -634,7 +634,7 @@ consumer1 receives the follwoing information.
 ("key-3", "message-3-2")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-2", "message-2-1")
diff --git a/site2/website/versioned_docs/version-2.7.1/concepts-messaging.md b/site2/website/versioned_docs/version-2.7.1/concepts-messaging.md
index 947e08b..cc6998f 100644
--- a/site2/website/versioned_docs/version-2.7.1/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.7.1/concepts-messaging.md
@@ -458,7 +458,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.7.1/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.7.1/deploy-bare-metal.md
index 86a9926..84d59b6 100644
--- a/site2/website/versioned_docs/version-2.7.1/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.7.1/deploy-bare-metal.md
@@ -175,7 +175,7 @@ For more details of how to configure tiered storage feature, you can refer to th
 
 ## Deploy a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and want to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster, you need to deploy ZooKeeper first (before all other components). A 3-node ZooKeeper cluster is the recommended configuration. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -385,7 +385,7 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
+Once you successfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connect to the running cluster
 
diff --git a/site2/website/versioned_docs/version-2.7.1/deploy-dcos.md b/site2/website/versioned_docs/version-2.7.1/deploy-dcos.md
index 0e3a071..02f1c17 100644
--- a/site2/website/versioned_docs/version-2.7.1/deploy-dcos.md
+++ b/site2/website/versioned_docs/version-2.7.1/deploy-dcos.md
@@ -114,7 +114,7 @@ Click into `grafana` to get the endpoint for Grafana, which is `192.168.65.121:3
  
 ![DC/OS grafana endpoint](assets/dcos_grafana_endpoint.png)
 
-If you click that endpoint, you can access the Grafana dashbaord.
+If you click that endpoint, you can access the Grafana dashboard.
 
 ![DC/OS grafana targets](assets/dcos_grafana_dashboard.png)
 
diff --git a/site2/website/versioned_docs/version-2.7.1/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.7.1/developing-binary-protocol.md
index 1fe30d8..c6acb15 100644
--- a/site2/website/versioned_docs/version-2.7.1/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.7.1/developing-binary-protocol.md
@@ -413,7 +413,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.7.1/functions-develop.md b/site2/website/versioned_docs/version-2.7.1/functions-develop.md
index a03cdde..ff4d03b 100644
--- a/site2/website/versioned_docs/version-2.7.1/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.7.1/functions-develop.md
@@ -899,7 +899,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.7.1/helm-overview.md b/site2/website/versioned_docs/version-2.7.1/helm-overview.md
index f7e3513..6861705 100644
--- a/site2/website/versioned_docs/version-2.7.1/helm-overview.md
+++ b/site2/website/versioned_docs/version-2.7.1/helm-overview.md
@@ -91,10 +91,10 @@ helm delete <pulsar-release-name>
 ```
 
 For the purposes of continuity, these charts have some Kubernetes objects that cannot be removed when performing `helm delete`.
-It is recommended to *conciously* remove these items, as they affect re-deployment.
+It is recommended to *consciously* remove these items, as they affect re-deployment.
 
 * PVCs for stateful data: *consciously* remove these items.
     - ZooKeeper: This is your metadata.
     - BookKeeper: This is your data.
     - Prometheus: This is your metrics data, which can be safely removed.
-* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
\ No newline at end of file
+* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
diff --git a/site2/website/versioned_docs/version-2.7.1/reference-configuration.md b/site2/website/versioned_docs/version-2.7.1/reference-configuration.md
index 28042b9..471b8ae 100644
--- a/site2/website/versioned_docs/version-2.7.1/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.7.1/reference-configuration.md
@@ -57,7 +57,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -98,7 +98,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
-|sortedLedgerStorageEnabled|Whether sorted-ledger storage is enabled.|ture|
+|sortedLedgerStorageEnabled|Whether sorted-ledger storage is enabled.|true|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
 |numAddWorkerThreads|The number of threads that should handle write requests. if zero, the writes would be handled by netty threads directly.|0|
 |numReadWorkerThreads|The number of threads that should handle read requests. if zero, the reads would be handled by netty threads directly.|8|
@@ -243,7 +243,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |offloadersDirectory|The directory for all the offloader implementations.|./offloaders|
 |bookkeeperMetadataServiceUri| Metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location. This value can be fetched using `bookkeeper shell whatisinstanceid` command in BookKeeper cluster. For example: zk+hierarchical://localhost:2181/ledgers. The metadata service uri list can also be semicolon separated values like below: zk+hierarchical://zk1:2181;zk2:2181;zk3:2181/ledgers ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
diff --git a/site2/website/versioned_docs/version-2.7.1/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.7.1/reference-pulsar-admin.md
index e24faee..5331804 100644
--- a/site2/website/versioned_docs/version-2.7.1/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.7.1/reference-pulsar-admin.md
@@ -2093,7 +2093,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2398,7 +2398,7 @@ Options
 |----|---|---|
 |`-e`, `--bookkeeper-ensemble`|Number of bookies to use for a topic|0|
 |`-w`, `--bookkeeper-write-quorum`|How many writes to make of each entry|0|
-|`-a`, `--bookkeeper-ack-quorum`|Number of acks (garanteed copies) to wait for each entry|0|
+|`-a`, `--bookkeeper-ack-quorum`|Number of acks (guaranteed copies) to wait for each entry|0|
 |`-r`, `--ml-mark-delete-max-rate`|Throttling rate of mark-delete operation (0 means no throttle)||
 
 ### `remove-persistence`
@@ -2850,7 +2850,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
@@ -2929,4 +2929,4 @@ Options
 |----|---|---|
 |`-c`, `--classname`|The Java class name||
 |`-j`, `--jar`|A path to the JAR file which contains the above Java class||
-|`-t`, `--type`|The type of the schema (avro or json)||
\ No newline at end of file
+|`-t`, `--type`|The type of the schema (avro or json)||
diff --git a/site2/website/versioned_docs/version-2.7.1/reference-terminology.md b/site2/website/versioned_docs/version-2.7.1/reference-terminology.md
index 5787a54..06911ac 100644
--- a/site2/website/versioned_docs/version-2.7.1/reference-terminology.md
+++ b/site2/website/versioned_docs/version-2.7.1/reference-terminology.md
@@ -47,7 +47,7 @@ modes (exclusive, shared, failover and key_shared).
 
 #### Pub-Sub
 
-A messaging pattern in which [producer](#producer) proccesses publish messages on [topics](#topic) that
+A messaging pattern in which [producer](#producer) processes publish messages on [topics](#topic) that
 are then consumed (processed) by [consumer](#consumer) processes.
 
 #### Producer
diff --git a/site2/website/versioned_docs/version-2.7.1/security-athenz.md b/site2/website/versioned_docs/version-2.7.1/security-athenz.md
index c5c7d29..62febe8 100644
--- a/site2/website/versioned_docs/version-2.7.1/security-athenz.md
+++ b/site2/website/versioned_docs/version-2.7.1/security-athenz.md
@@ -42,7 +42,7 @@ For more specific steps involving UI, refer to [Example Service Access Control S
 > ### TLS encryption 
 >
 > Note that when you are using Athenz as an authentication provider, you had better use TLS encryption 
-> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encrption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
+> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encryption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
 
 In the `conf/broker.conf` configuration file in your Pulsar installation, you need to provide the class name of the Athenz authentication provider as well as a comma-separated list of provider domain names.
 
diff --git a/site2/website/versioned_docs/version-2.7.1/security-authorization.md b/site2/website/versioned_docs/version-2.7.1/security-authorization.md
index 423e0f7..c1470ad 100644
--- a/site2/website/versioned_docs/version-2.7.1/security-authorization.md
+++ b/site2/website/versioned_docs/version-2.7.1/security-authorization.md
@@ -38,7 +38,7 @@ Pulsar uses *Proxy roles* to enable the authentication. Proxy roles are specifie
 
 You must authorize both the *proxy role* and the *original principal* to access a resource to ensure that the resource is accessible via the proxy. Administrators can take two approaches to authorize the *proxy role* and the *original principal*.
 
-The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creats a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
+The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creates a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
 
 Another approach is to make the proxy role a superuser. This allows the proxy to access all resources. The client still needs to authenticate with the proxy, and all requests made through the proxy have their role downgraded to the *original principal* of the authenticated client. However, if the proxy is compromised, a bad actor could get full access to your cluster.
 
diff --git a/site2/website/versioned_docs/version-2.7.1/security-jwt.md b/site2/website/versioned_docs/version-2.7.1/security-jwt.md
index ee27f4c..5caf573 100644
--- a/site2/website/versioned_docs/version-2.7.1/security-jwt.md
+++ b/site2/website/versioned_docs/version-2.7.1/security-jwt.md
@@ -258,7 +258,7 @@ brokerClientAuthenticationParameters={"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0
 # Or, alternatively, read token from file
 # brokerClientAuthenticationParameters={"file":"///path/to/proxy-token.txt"}
 
-# Whether client authorization credentials are forwared to the broker for re-authorization.
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
 # Authentication must be enabled via authenticationEnabled=true for this to take effect.
 forwardAuthorizationCredentials=true
 ```
diff --git a/site2/website/versioned_docs/version-2.7.1/security-kerberos.md b/site2/website/versioned_docs/version-2.7.1/security-kerberos.md
index c44d7e7..3e44890 100644
--- a/site2/website/versioned_docs/version-2.7.1/security-kerberos.md
+++ b/site2/website/versioned_docs/version-2.7.1/security-kerberos.md
@@ -194,7 +194,7 @@ You must ensure that the operating system user who starts pulsar client can reac
 
 #### Configure CLI tools
 
-If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to preform the following steps:
+If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to perform the following steps:
 
 Step 1. Enter the command below to configure your `client.conf`.
 ```shell
@@ -219,7 +219,7 @@ With the above configuration, client and broker can do authentication using Kerb
 
 A client that connects to Pulsar Proxy is a little different. Pulsar Proxy (as a SASL Server in Kerberos) authenticates Client (as a SASL client in Kerberos) first; and then Pulsar broker authenticates Pulsar Proxy. 
 
-Now in comparision with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
+Now in comparison with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
 
 ### Create principal for Pulsar Proxy in Kerberos
 
@@ -239,7 +239,7 @@ sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{client-keytabnam
 
 ### Add a section in JAAS configuration file for Pulsar Proxy
 
-In comparision with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
+In comparison with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
 
 Here is an example named `pulsar_jaas.conf`:
 
diff --git a/site2/website/versioned_docs/version-2.7.1/security-tls-keystore.md b/site2/website/versioned_docs/version-2.7.1/security-tls-keystore.md
index 0fd0d6b..4c82ac4 100644
--- a/site2/website/versioned_docs/version-2.7.1/security-tls-keystore.md
+++ b/site2/website/versioned_docs/version-2.7.1/security-tls-keystore.md
@@ -122,7 +122,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
@@ -214,7 +214,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
diff --git a/site2/website/versioned_docs/version-2.7.1/security-tls-transport.md b/site2/website/versioned_docs/version-2.7.1/security-tls-transport.md
index 3d075a7..b0a5b53 100644
--- a/site2/website/versioned_docs/version-2.7.1/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.7.1/security-tls-transport.md
@@ -79,7 +79,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.7.2/administration-dashboard.md b/site2/website/versioned_docs/version-2.7.2/administration-dashboard.md
index 3fa5a27..afad934 100644
--- a/site2/website/versioned_docs/version-2.7.2/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.7.2/administration-dashboard.md
@@ -52,7 +52,7 @@ If the Pulsar service runs in standalone mode in `localhost`, the `SERVICE_URL`
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, you need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
diff --git a/site2/website/versioned_docs/version-2.7.2/administration-load-balance.md b/site2/website/versioned_docs/version-2.7.2/administration-load-balance.md
index 1eb9046..c189a9f 100644
--- a/site2/website/versioned_docs/version-2.7.2/administration-load-balance.md
+++ b/site2/website/versioned_docs/version-2.7.2/administration-load-balance.md
@@ -118,7 +118,7 @@ loadBalancerNamespaceMaximumBundles=128
 
 ### Shed load automatically
 
-The support for automatic load shedding is avaliable in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
+The support for automatic load shedding is available in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
 
 When a broker is identified as overloaded, the broker forces to "unload" a subset of the bundles, the
 ones with higher traffic, that make up for the overload percentage.
diff --git a/site2/website/versioned_docs/version-2.7.2/administration-pulsar-manager.md b/site2/website/versioned_docs/version-2.7.2/administration-pulsar-manager.md
index c5ee944..5836636 100644
--- a/site2/website/versioned_docs/version-2.7.2/administration-pulsar-manager.md
+++ b/site2/website/versioned_docs/version-2.7.2/administration-pulsar-manager.md
@@ -127,7 +127,7 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -142,13 +142,13 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --private-key` command.
-* `PRIVATE_KEY`: private key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
-* `PUBLIC_KEY`: public key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
+* `PRIVATE_KEY`: private key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
+* `PUBLIC_KEY`: public key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
 * `$PWD/secret`: the folder where the private key and public key generated by the `bin/pulsar tokens create-key-pair` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -163,12 +163,12 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --secret-key` command.
-* `SECRET_KEY`: secret key path mounted in container, genrated by `bin/pulsar tokens create-secret-key` command.
+* `SECRET_KEY`: secret key path mounted in container, generated by `bin/pulsar tokens create-secret-key` command.
 * `$PWD/secret`: the folder where the secret key generated by the `bin/pulsar tokens create-secret-key` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
diff --git a/site2/website/versioned_docs/version-2.7.2/client-libraries-java.md b/site2/website/versioned_docs/version-2.7.2/client-libraries-java.md
index 7678e95..a44f790 100644
--- a/site2/website/versioned_docs/version-2.7.2/client-libraries-java.md
+++ b/site2/website/versioned_docs/version-2.7.2/client-libraries-java.md
@@ -591,7 +591,7 @@ If a broker dispatches only one message at a time, consumer1 receives the follow
 ("key-4", "message-4-1")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-1", "message-1-2")
@@ -624,7 +624,7 @@ Consumer consumer2 = client.newConsumer()
 
 `Key_Shared` subscription is like `Shared` subscription, all consumers can attach to the same subscription. But it is different from `Key_Shared` subscription, messages with the same key are delivered to only one consumer in order. The possible distribution of messages between different consumers (by default we do not know in advance which keys will be assigned to a consumer, but a key will only be assigned to a consumer at the same time).
 
-consumer1 receives the follwoing information.
+consumer1 receives the following information.
 
 ```
 ("key-1", "message-1-1")
@@ -634,7 +634,7 @@ consumer1 receives the follwoing information.
 ("key-3", "message-3-2")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-2", "message-2-1")
diff --git a/site2/website/versioned_docs/version-2.7.2/concepts-messaging.md b/site2/website/versioned_docs/version-2.7.2/concepts-messaging.md
index 75e867e..9a40192 100644
--- a/site2/website/versioned_docs/version-2.7.2/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.7.2/concepts-messaging.md
@@ -458,7 +458,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.7.2/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.7.2/deploy-bare-metal.md
index aa68eaf..fbfd6f7 100644
--- a/site2/website/versioned_docs/version-2.7.2/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.7.2/deploy-bare-metal.md
@@ -179,7 +179,7 @@ For more details of how to configure tiered storage feature, you can refer to th
 
 ## Deploy a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and want to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster, you need to deploy ZooKeeper first (before all other components). A 3-node ZooKeeper cluster is the recommended configuration. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -389,7 +389,7 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
+Once you successfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connect to the running cluster
 
diff --git a/site2/website/versioned_docs/version-2.7.2/deploy-dcos.md b/site2/website/versioned_docs/version-2.7.2/deploy-dcos.md
index df07f46..750e540 100644
--- a/site2/website/versioned_docs/version-2.7.2/deploy-dcos.md
+++ b/site2/website/versioned_docs/version-2.7.2/deploy-dcos.md
@@ -114,7 +114,7 @@ Click into `grafana` to get the endpoint for Grafana, which is `192.168.65.121:3
  
 ![DC/OS grafana endpoint](assets/dcos_grafana_endpoint.png)
 
-If you click that endpoint, you can access the Grafana dashbaord.
+If you click that endpoint, you can access the Grafana dashboard.
 
 ![DC/OS grafana targets](assets/dcos_grafana_dashboard.png)
 
diff --git a/site2/website/versioned_docs/version-2.7.2/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.7.2/developing-binary-protocol.md
index a68a45a..0792880 100644
--- a/site2/website/versioned_docs/version-2.7.2/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.7.2/developing-binary-protocol.md
@@ -413,7 +413,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.7.2/functions-develop.md b/site2/website/versioned_docs/version-2.7.2/functions-develop.md
index 16779f8..33e6216 100644
--- a/site2/website/versioned_docs/version-2.7.2/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.7.2/functions-develop.md
@@ -1081,7 +1081,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.7.2/helm-overview.md b/site2/website/versioned_docs/version-2.7.2/helm-overview.md
index e75a245..9e8e45b 100644
--- a/site2/website/versioned_docs/version-2.7.2/helm-overview.md
+++ b/site2/website/versioned_docs/version-2.7.2/helm-overview.md
@@ -91,7 +91,7 @@ helm delete <pulsar-release-name>
 ```
 
 For the purposes of continuity, these charts have some Kubernetes objects that cannot be removed when performing `helm delete`.
-It is recommended to *conciously* remove these items, as they affect re-deployment.
+It is recommended to *consciously* remove these items, as they affect re-deployment.
 
 * PVCs for stateful data: *consciously* remove these items.
     - ZooKeeper: This is your metadata.
diff --git a/site2/website/versioned_docs/version-2.7.2/reference-configuration.md b/site2/website/versioned_docs/version-2.7.2/reference-configuration.md
index 93e7d9c..da25dd6 100644
--- a/site2/website/versioned_docs/version-2.7.2/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.7.2/reference-configuration.md
@@ -57,7 +57,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -98,7 +98,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
-|sortedLedgerStorageEnabled|Whether sorted-ledger storage is enabled.|ture|
+|sortedLedgerStorageEnabled|Whether sorted-ledger storage is enabled.|true|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
 |numAddWorkerThreads|The number of threads that should handle write requests. if zero, the writes would be handled by netty threads directly.|0|
 |numReadWorkerThreads|The number of threads that should handle read requests. if zero, the reads would be handled by netty threads directly.|8|
@@ -243,7 +243,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |offloadersDirectory|The directory for all the offloader implementations.|./offloaders|
 |bookkeeperMetadataServiceUri| Metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location. This value can be fetched using `bookkeeper shell whatisinstanceid` command in BookKeeper cluster. For example: zk+hierarchical://localhost:2181/ledgers. The metadata service uri list can also be semicolon separated values like below: zk+hierarchical://zk1:2181;zk2:2181;zk3:2181/ledgers ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
diff --git a/site2/website/versioned_docs/version-2.7.2/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.7.2/reference-pulsar-admin.md
index ad3669a..23e14b7 100644
--- a/site2/website/versioned_docs/version-2.7.2/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.7.2/reference-pulsar-admin.md
@@ -2093,7 +2093,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2398,7 +2398,7 @@ Options
 |----|---|---|
 |`-e`, `--bookkeeper-ensemble`|Number of bookies to use for a topic|0|
 |`-w`, `--bookkeeper-write-quorum`|How many writes to make of each entry|0|
-|`-a`, `--bookkeeper-ack-quorum`|Number of acks (garanteed copies) to wait for each entry|0|
+|`-a`, `--bookkeeper-ack-quorum`|Number of acks (guaranteed copies) to wait for each entry|0|
 |`-r`, `--ml-mark-delete-max-rate`|Throttling rate of mark-delete operation (0 means no throttle)||
 
 ### `remove-persistence`
@@ -2850,7 +2850,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
diff --git a/site2/website/versioned_docs/version-2.7.2/reference-terminology.md b/site2/website/versioned_docs/version-2.7.2/reference-terminology.md
index 781d24c..0617ad5 100644
--- a/site2/website/versioned_docs/version-2.7.2/reference-terminology.md
+++ b/site2/website/versioned_docs/version-2.7.2/reference-terminology.md
@@ -47,7 +47,7 @@ modes (exclusive, shared, failover and key_shared).
 
 #### Pub-Sub
 
-A messaging pattern in which [producer](#producer) proccesses publish messages on [topics](#topic) that
+A messaging pattern in which [producer](#producer) processes publish messages on [topics](#topic) that
 are then consumed (processed) by [consumer](#consumer) processes.
 
 #### Producer
diff --git a/site2/website/versioned_docs/version-2.7.2/security-athenz.md b/site2/website/versioned_docs/version-2.7.2/security-athenz.md
index 8bac2e9..d721191 100644
--- a/site2/website/versioned_docs/version-2.7.2/security-athenz.md
+++ b/site2/website/versioned_docs/version-2.7.2/security-athenz.md
@@ -42,7 +42,7 @@ For more specific steps involving UI, refer to [Example Service Access Control S
 > ### TLS encryption 
 >
 > Note that when you are using Athenz as an authentication provider, you had better use TLS encryption 
-> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encrption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
+> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encryption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
 
 In the `conf/broker.conf` configuration file in your Pulsar installation, you need to provide the class name of the Athenz authentication provider as well as a comma-separated list of provider domain names.
 
diff --git a/site2/website/versioned_docs/version-2.7.2/security-authorization.md b/site2/website/versioned_docs/version-2.7.2/security-authorization.md
index 8e716d8..6b85808 100644
--- a/site2/website/versioned_docs/version-2.7.2/security-authorization.md
+++ b/site2/website/versioned_docs/version-2.7.2/security-authorization.md
@@ -38,7 +38,7 @@ Pulsar uses *Proxy roles* to enable the authentication. Proxy roles are specifie
 
 You must authorize both the *proxy role* and the *original principal* to access a resource to ensure that the resource is accessible via the proxy. Administrators can take two approaches to authorize the *proxy role* and the *original principal*.
 
-The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creats a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
+The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creates a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
 
 Another approach is to make the proxy role a superuser. This allows the proxy to access all resources. The client still needs to authenticate with the proxy, and all requests made through the proxy have their role downgraded to the *original principal* of the authenticated client. However, if the proxy is compromised, a bad actor could get full access to your cluster.
 
diff --git a/site2/website/versioned_docs/version-2.7.2/security-jwt.md b/site2/website/versioned_docs/version-2.7.2/security-jwt.md
index b4e1c5a..9ba84c7 100644
--- a/site2/website/versioned_docs/version-2.7.2/security-jwt.md
+++ b/site2/website/versioned_docs/version-2.7.2/security-jwt.md
@@ -258,7 +258,7 @@ brokerClientAuthenticationParameters={"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0
 # Or, alternatively, read token from file
 # brokerClientAuthenticationParameters={"file":"///path/to/proxy-token.txt"}
 
-# Whether client authorization credentials are forwared to the broker for re-authorization.
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
 # Authentication must be enabled via authenticationEnabled=true for this to take effect.
 forwardAuthorizationCredentials=true
 ```
diff --git a/site2/website/versioned_docs/version-2.7.2/security-kerberos.md b/site2/website/versioned_docs/version-2.7.2/security-kerberos.md
index 0eeef7e..684959c 100644
--- a/site2/website/versioned_docs/version-2.7.2/security-kerberos.md
+++ b/site2/website/versioned_docs/version-2.7.2/security-kerberos.md
@@ -194,7 +194,7 @@ You must ensure that the operating system user who starts pulsar client can reac
 
 #### Configure CLI tools
 
-If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to preform the following steps:
+If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to perform the following steps:
 
 Step 1. Enter the command below to configure your `client.conf`.
 ```shell
@@ -219,7 +219,7 @@ With the above configuration, client and broker can do authentication using Kerb
 
 A client that connects to Pulsar Proxy is a little different. Pulsar Proxy (as a SASL Server in Kerberos) authenticates Client (as a SASL client in Kerberos) first; and then Pulsar broker authenticates Pulsar Proxy. 
 
-Now in comparision with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
+Now in comparison with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
 
 ### Create principal for Pulsar Proxy in Kerberos
 
@@ -239,7 +239,7 @@ sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{client-keytabnam
 
 ### Add a section in JAAS configuration file for Pulsar Proxy
 
-In comparision with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
+In comparison with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
 
 Here is an example named `pulsar_jaas.conf`:
 
diff --git a/site2/website/versioned_docs/version-2.7.2/security-tls-keystore.md b/site2/website/versioned_docs/version-2.7.2/security-tls-keystore.md
index d1f1500..716f80d 100644
--- a/site2/website/versioned_docs/version-2.7.2/security-tls-keystore.md
+++ b/site2/website/versioned_docs/version-2.7.2/security-tls-keystore.md
@@ -122,7 +122,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
@@ -214,7 +214,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
diff --git a/site2/website/versioned_docs/version-2.7.2/security-tls-transport.md b/site2/website/versioned_docs/version-2.7.2/security-tls-transport.md
index 2767cb5..965a814 100644
--- a/site2/website/versioned_docs/version-2.7.2/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.7.2/security-tls-transport.md
@@ -79,7 +79,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.7.3/administration-dashboard.md b/site2/website/versioned_docs/version-2.7.3/administration-dashboard.md
index 6517d71..33a4b41 100644
--- a/site2/website/versioned_docs/version-2.7.3/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.7.3/administration-dashboard.md
@@ -52,7 +52,7 @@ If the Pulsar service runs in standalone mode in `localhost`, the `SERVICE_URL`
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, you need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
diff --git a/site2/website/versioned_docs/version-2.7.3/administration-load-balance.md b/site2/website/versioned_docs/version-2.7.3/administration-load-balance.md
index 90e2de0..0270de3 100644
--- a/site2/website/versioned_docs/version-2.7.3/administration-load-balance.md
+++ b/site2/website/versioned_docs/version-2.7.3/administration-load-balance.md
@@ -118,7 +118,7 @@ loadBalancerNamespaceMaximumBundles=128
 
 ### Shed load automatically
 
-The support for automatic load shedding is avaliable in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
+The support for automatic load shedding is available in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
 
 When a broker is identified as overloaded, the broker forces to "unload" a subset of the bundles, the
 ones with higher traffic, that make up for the overload percentage.
diff --git a/site2/website/versioned_docs/version-2.7.3/administration-pulsar-manager.md b/site2/website/versioned_docs/version-2.7.3/administration-pulsar-manager.md
index eb13ccc..ac55fe6 100644
--- a/site2/website/versioned_docs/version-2.7.3/administration-pulsar-manager.md
+++ b/site2/website/versioned_docs/version-2.7.3/administration-pulsar-manager.md
@@ -127,7 +127,7 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -142,13 +142,13 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --private-key` command.
-* `PRIVATE_KEY`: private key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
-* `PUBLIC_KEY`: public key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
+* `PRIVATE_KEY`: private key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
+* `PUBLIC_KEY`: public key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
 * `$PWD/secret`: the folder where the private key and public key generated by the `bin/pulsar tokens create-key-pair` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -163,12 +163,12 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --secret-key` command.
-* `SECRET_KEY`: secret key path mounted in container, genrated by `bin/pulsar tokens create-secret-key` command.
+* `SECRET_KEY`: secret key path mounted in container, generated by `bin/pulsar tokens create-secret-key` command.
 * `$PWD/secret`: the folder where the secret key generated by the `bin/pulsar tokens create-secret-key` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
diff --git a/site2/website/versioned_docs/version-2.7.3/client-libraries-java.md b/site2/website/versioned_docs/version-2.7.3/client-libraries-java.md
index aa333d8..00807c1 100644
--- a/site2/website/versioned_docs/version-2.7.3/client-libraries-java.md
+++ b/site2/website/versioned_docs/version-2.7.3/client-libraries-java.md
@@ -591,7 +591,7 @@ If a broker dispatches only one message at a time, consumer1 receives the follow
 ("key-4", "message-4-1")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-1", "message-1-2")
@@ -624,7 +624,7 @@ Consumer consumer2 = client.newConsumer()
 
 `Key_Shared` subscription is like `Shared` subscription, all consumers can attach to the same subscription. But it is different from `Key_Shared` subscription, messages with the same key are delivered to only one consumer in order. The possible distribution of messages between different consumers (by default we do not know in advance which keys will be assigned to a consumer, but a key will only be assigned to a consumer at the same time).
 
-consumer1 receives the follwoing information.
+consumer1 receives the following information.
 
 ```
 ("key-1", "message-1-1")
@@ -634,7 +634,7 @@ consumer1 receives the follwoing information.
 ("key-3", "message-3-2")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-2", "message-2-1")
diff --git a/site2/website/versioned_docs/version-2.7.3/concepts-messaging.md b/site2/website/versioned_docs/version-2.7.3/concepts-messaging.md
index a1285f7..f11145c 100644
--- a/site2/website/versioned_docs/version-2.7.3/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.7.3/concepts-messaging.md
@@ -458,7 +458,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.7.3/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.7.3/deploy-bare-metal.md
index a1da6ac..bf17219 100644
--- a/site2/website/versioned_docs/version-2.7.3/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.7.3/deploy-bare-metal.md
@@ -173,7 +173,7 @@ For more details of how to configure tiered storage feature, you can refer to th
 
 ## Deploy a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and want to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster, you need to deploy ZooKeeper first (before all other components). A 3-node ZooKeeper cluster is the recommended configuration. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -383,7 +383,7 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
+Once you successfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connect to the running cluster
 
diff --git a/site2/website/versioned_docs/version-2.7.3/deploy-dcos.md b/site2/website/versioned_docs/version-2.7.3/deploy-dcos.md
index 8036959..6710990 100644
--- a/site2/website/versioned_docs/version-2.7.3/deploy-dcos.md
+++ b/site2/website/versioned_docs/version-2.7.3/deploy-dcos.md
@@ -114,7 +114,7 @@ Click into `grafana` to get the endpoint for Grafana, which is `192.168.65.121:3
  
 ![DC/OS grafana endpoint](assets/dcos_grafana_endpoint.png)
 
-If you click that endpoint, you can access the Grafana dashbaord.
+If you click that endpoint, you can access the Grafana dashboard.
 
 ![DC/OS grafana targets](assets/dcos_grafana_dashboard.png)
 
diff --git a/site2/website/versioned_docs/version-2.7.3/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.7.3/developing-binary-protocol.md
index d3cc554..9c79a57 100644
--- a/site2/website/versioned_docs/version-2.7.3/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.7.3/developing-binary-protocol.md
@@ -413,7 +413,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.7.3/functions-develop.md b/site2/website/versioned_docs/version-2.7.3/functions-develop.md
index cfc0e67..6bea00e 100644
--- a/site2/website/versioned_docs/version-2.7.3/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.7.3/functions-develop.md
@@ -1081,7 +1081,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.7.3/helm-overview.md b/site2/website/versioned_docs/version-2.7.3/helm-overview.md
index 329f362..72c842d 100644
--- a/site2/website/versioned_docs/version-2.7.3/helm-overview.md
+++ b/site2/website/versioned_docs/version-2.7.3/helm-overview.md
@@ -91,7 +91,7 @@ helm delete <pulsar-release-name>
 ```
 
 For the purposes of continuity, these charts have some Kubernetes objects that cannot be removed when performing `helm delete`.
-It is recommended to *conciously* remove these items, as they affect re-deployment.
+It is recommended to *consciously* remove these items, as they affect re-deployment.
 
 * PVCs for stateful data: *consciously* remove these items.
     - ZooKeeper: This is your metadata.
diff --git a/site2/website/versioned_docs/version-2.7.3/reference-configuration.md b/site2/website/versioned_docs/version-2.7.3/reference-configuration.md
index fe33544..d12cfe2 100644
--- a/site2/website/versioned_docs/version-2.7.3/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.7.3/reference-configuration.md
@@ -57,7 +57,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -98,7 +98,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
-|sortedLedgerStorageEnabled|Whether sorted-ledger storage is enabled.|ture|
+|sortedLedgerStorageEnabled|Whether sorted-ledger storage is enabled.|true|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
 |numAddWorkerThreads|The number of threads that should handle write requests. if zero, the writes would be handled by netty threads directly.|0|
 |numReadWorkerThreads|The number of threads that should handle read requests. if zero, the reads would be handled by netty threads directly.|8|
@@ -243,7 +243,7 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |offloadersDirectory|The directory for all the offloader implementations.|./offloaders|
 |bookkeeperMetadataServiceUri| Metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location. This value can be fetched using `bookkeeper shell whatisinstanceid` command in BookKeeper cluster. For example: zk+hierarchical://localhost:2181/ledgers. The metadata service uri list can also be semicolon separated values like below: zk+hierarchical://zk1:2181;zk2:2181;zk3:2181/ledgers ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
 |bookkeeperClientSpeculativeReadTimeoutInMillis|  Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
diff --git a/site2/website/versioned_docs/version-2.7.3/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.7.3/reference-pulsar-admin.md
index f0ee42f..cfbe034 100644
--- a/site2/website/versioned_docs/version-2.7.3/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.7.3/reference-pulsar-admin.md
@@ -2092,7 +2092,7 @@ $ pulsar-admin topics terminate {persistent|non-persistent}://tenant/namespace/t
 ```
 
 ### `permissions`
-Get the permissions on a topic. Retrieve the effective permissions for a desination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
+Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
 
 Usage
 ```bash
@@ -2397,7 +2397,7 @@ Options
 |----|---|---|
 |`-e`, `--bookkeeper-ensemble`|Number of bookies to use for a topic|0|
 |`-w`, `--bookkeeper-write-quorum`|How many writes to make of each entry|0|
-|`-a`, `--bookkeeper-ack-quorum`|Number of acks (garanteed copies) to wait for each entry|0|
+|`-a`, `--bookkeeper-ack-quorum`|Number of acks (guaranteed copies) to wait for each entry|0|
 |`-r`, `--ml-mark-delete-max-rate`|Throttling rate of mark-delete operation (0 means no throttle)||
 
 ### `remove-persistence`
@@ -2849,7 +2849,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
diff --git a/site2/website/versioned_docs/version-2.7.3/reference-terminology.md b/site2/website/versioned_docs/version-2.7.3/reference-terminology.md
index a4d0282..e0b4c96 100644
--- a/site2/website/versioned_docs/version-2.7.3/reference-terminology.md
+++ b/site2/website/versioned_docs/version-2.7.3/reference-terminology.md
@@ -47,7 +47,7 @@ modes (exclusive, shared, failover and key_shared).
 
 #### Pub-Sub
 
-A messaging pattern in which [producer](#producer) proccesses publish messages on [topics](#topic) that
+A messaging pattern in which [producer](#producer) processes publish messages on [topics](#topic) that
 are then consumed (processed) by [consumer](#consumer) processes.
 
 #### Producer
diff --git a/site2/website/versioned_docs/version-2.7.3/security-athenz.md b/site2/website/versioned_docs/version-2.7.3/security-athenz.md
index 0ad561b..73afd3a 100644
--- a/site2/website/versioned_docs/version-2.7.3/security-athenz.md
+++ b/site2/website/versioned_docs/version-2.7.3/security-athenz.md
@@ -42,7 +42,7 @@ For more specific steps involving UI, refer to [Example Service Access Control S
 > ### TLS encryption 
 >
 > Note that when you are using Athenz as an authentication provider, you had better use TLS encryption 
-> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encrption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
+> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encryption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
 
 In the `conf/broker.conf` configuration file in your Pulsar installation, you need to provide the class name of the Athenz authentication provider as well as a comma-separated list of provider domain names.
 
diff --git a/site2/website/versioned_docs/version-2.7.3/security-authorization.md b/site2/website/versioned_docs/version-2.7.3/security-authorization.md
index 5427d50..978a402 100644
--- a/site2/website/versioned_docs/version-2.7.3/security-authorization.md
+++ b/site2/website/versioned_docs/version-2.7.3/security-authorization.md
@@ -38,7 +38,7 @@ Pulsar uses *Proxy roles* to enable the authentication. Proxy roles are specifie
 
 You must authorize both the *proxy role* and the *original principal* to access a resource to ensure that the resource is accessible via the proxy. Administrators can take two approaches to authorize the *proxy role* and the *original principal*.
 
-The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creats a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
+The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creates a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
 
 Another approach is to make the proxy role a superuser. This allows the proxy to access all resources. The client still needs to authenticate with the proxy, and all requests made through the proxy have their role downgraded to the *original principal* of the authenticated client. However, if the proxy is compromised, a bad actor could get full access to your cluster.
 
diff --git a/site2/website/versioned_docs/version-2.7.3/security-jwt.md b/site2/website/versioned_docs/version-2.7.3/security-jwt.md
index 216393c..ea1605a 100644
--- a/site2/website/versioned_docs/version-2.7.3/security-jwt.md
+++ b/site2/website/versioned_docs/version-2.7.3/security-jwt.md
@@ -258,7 +258,7 @@ brokerClientAuthenticationParameters={"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0
 # Or, alternatively, read token from file
 # brokerClientAuthenticationParameters={"file":"///path/to/proxy-token.txt"}
 
-# Whether client authorization credentials are forwared to the broker for re-authorization.
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
 # Authentication must be enabled via authenticationEnabled=true for this to take effect.
 forwardAuthorizationCredentials=true
 ```
diff --git a/site2/website/versioned_docs/version-2.7.3/security-kerberos.md b/site2/website/versioned_docs/version-2.7.3/security-kerberos.md
index dc61f7b..4a1003b 100644
--- a/site2/website/versioned_docs/version-2.7.3/security-kerberos.md
+++ b/site2/website/versioned_docs/version-2.7.3/security-kerberos.md
@@ -194,7 +194,7 @@ You must ensure that the operating system user who starts pulsar client can reac
 
 #### Configure CLI tools
 
-If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to preform the following steps:
+If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to perform the following steps:
 
 Step 1. Enter the command below to configure your `client.conf`.
 ```shell
@@ -219,7 +219,7 @@ With the above configuration, client and broker can do authentication using Kerb
 
 A client that connects to Pulsar Proxy is a little different. Pulsar Proxy (as a SASL Server in Kerberos) authenticates Client (as a SASL client in Kerberos) first; and then Pulsar broker authenticates Pulsar Proxy. 
 
-Now in comparision with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
+Now in comparison with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
 
 ### Create principal for Pulsar Proxy in Kerberos
 
@@ -239,7 +239,7 @@ sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{client-keytabnam
 
 ### Add a section in JAAS configuration file for Pulsar Proxy
 
-In comparision with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
+In comparison with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
 
 Here is an example named `pulsar_jaas.conf`:
 
diff --git a/site2/website/versioned_docs/version-2.7.3/security-tls-keystore.md b/site2/website/versioned_docs/version-2.7.3/security-tls-keystore.md
index b1353ea..25a4ea6 100644
--- a/site2/website/versioned_docs/version-2.7.3/security-tls-keystore.md
+++ b/site2/website/versioned_docs/version-2.7.3/security-tls-keystore.md
@@ -122,7 +122,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
@@ -214,7 +214,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
diff --git a/site2/website/versioned_docs/version-2.7.3/security-tls-transport.md b/site2/website/versioned_docs/version-2.7.3/security-tls-transport.md
index 26688a2..d5f690a 100644
--- a/site2/website/versioned_docs/version-2.7.3/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.7.3/security-tls-transport.md
@@ -79,7 +79,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.8.0/administration-dashboard.md b/site2/website/versioned_docs/version-2.8.0/administration-dashboard.md
index 99234bb..a68d3cd 100644
--- a/site2/website/versioned_docs/version-2.8.0/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.8.0/administration-dashboard.md
@@ -52,7 +52,7 @@ If the Pulsar service runs in standalone mode in `localhost`, the `SERVICE_URL`
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, you need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
@@ -60,4 +60,4 @@ $ bin/pulsar standalone --advertised-address 1.2.3.4
 
 ### Known issues
 
-Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
\ No newline at end of file
+Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
diff --git a/site2/website/versioned_docs/version-2.8.0/administration-load-balance.md b/site2/website/versioned_docs/version-2.8.0/administration-load-balance.md
index b9b6453..989eea4 100644
--- a/site2/website/versioned_docs/version-2.8.0/administration-load-balance.md
+++ b/site2/website/versioned_docs/version-2.8.0/administration-load-balance.md
@@ -118,7 +118,7 @@ loadBalancerNamespaceMaximumBundles=128
 
 ### Shed load automatically
 
-The support for automatic load shedding is avaliable in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
+The support for automatic load shedding is available in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
 
 When a broker is identified as overloaded, the broker forces to "unload" a subset of the bundles, the
 ones with higher traffic, that make up for the overload percentage.
diff --git a/site2/website/versioned_docs/version-2.8.0/administration-pulsar-manager.md b/site2/website/versioned_docs/version-2.8.0/administration-pulsar-manager.md
index 0ef5549..2fdd7f8 100644
--- a/site2/website/versioned_docs/version-2.8.0/administration-pulsar-manager.md
+++ b/site2/website/versioned_docs/version-2.8.0/administration-pulsar-manager.md
@@ -127,7 +127,7 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -142,13 +142,13 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --private-key` command.
-* `PRIVATE_KEY`: private key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
-* `PUBLIC_KEY`: public key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
+* `PRIVATE_KEY`: private key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
+* `PUBLIC_KEY`: public key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
 * `$PWD/secret`: the folder where the private key and public key generated by the `bin/pulsar tokens create-key-pair` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -163,12 +163,12 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --secret-key` command.
-* `SECRET_KEY`: secret key path mounted in container, genrated by `bin/pulsar tokens create-secret-key` command.
+* `SECRET_KEY`: secret key path mounted in container, generated by `bin/pulsar tokens create-secret-key` command.
 * `$PWD/secret`: the folder where the secret key generated by the `bin/pulsar tokens create-secret-key` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
diff --git a/site2/website/versioned_docs/version-2.8.0/client-libraries-java.md b/site2/website/versioned_docs/version-2.8.0/client-libraries-java.md
index bf8f111..e48a92c 100644
--- a/site2/website/versioned_docs/version-2.8.0/client-libraries-java.md
+++ b/site2/website/versioned_docs/version-2.8.0/client-libraries-java.md
@@ -591,7 +591,7 @@ If a broker dispatches only one message at a time, consumer1 receives the follow
 ("key-4", "message-4-1")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-1", "message-1-2")
@@ -624,7 +624,7 @@ Consumer consumer2 = client.newConsumer()
 
 `Key_Shared` subscription is like `Shared` subscription, all consumers can attach to the same subscription. But it is different from `Key_Shared` subscription, messages with the same key are delivered to only one consumer in order. The possible distribution of messages between different consumers (by default we do not know in advance which keys will be assigned to a consumer, but a key will only be assigned to a consumer at the same time).
 
-consumer1 receives the follwoing information.
+consumer1 receives the following information.
 
 ```
 ("key-1", "message-1-1")
@@ -634,7 +634,7 @@ consumer1 receives the follwoing information.
 ("key-3", "message-3-2")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-2", "message-2-1")
diff --git a/site2/website/versioned_docs/version-2.8.0/client-libraries-websocket.md b/site2/website/versioned_docs/version-2.8.0/client-libraries-websocket.md
index 282b983..9bbed2c 100644
--- a/site2/website/versioned_docs/version-2.8.0/client-libraries-websocket.md
+++ b/site2/website/versioned_docs/version-2.8.0/client-libraries-websocket.md
@@ -70,7 +70,7 @@ All exchanges via the WebSocket API use JSON.
 
 ### Authentication
 
-#### Broswer javascript WebSocket client
+#### Browser javascript WebSocket client
 
 Use the query param `token` transport the authentication token.
 
diff --git a/site2/website/versioned_docs/version-2.8.0/concepts-messaging.md b/site2/website/versioned_docs/version-2.8.0/concepts-messaging.md
index 1dfe0cf..4d188b3 100644
--- a/site2/website/versioned_docs/version-2.8.0/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.8.0/concepts-messaging.md
@@ -492,7 +492,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.8.0/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.8.0/deploy-bare-metal.md
index bcb158d..15d44d9 100644
--- a/site2/website/versioned_docs/version-2.8.0/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.8.0/deploy-bare-metal.md
@@ -179,7 +179,7 @@ For more details of how to configure tiered storage feature, you can refer to th
 
 ## Deploy a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and want to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster, you need to deploy ZooKeeper first (before all other components). A 3-node ZooKeeper cluster is the recommended configuration. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -383,7 +383,7 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
+Once you successfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connect to the running cluster
 
diff --git a/site2/website/versioned_docs/version-2.8.0/deploy-dcos.md b/site2/website/versioned_docs/version-2.8.0/deploy-dcos.md
index 221764e..e5c9b29 100644
--- a/site2/website/versioned_docs/version-2.8.0/deploy-dcos.md
+++ b/site2/website/versioned_docs/version-2.8.0/deploy-dcos.md
@@ -114,7 +114,7 @@ Click into `grafana` to get the endpoint for Grafana, which is `192.168.65.121:3
  
 ![DC/OS grafana endpoint](assets/dcos_grafana_endpoint.png)
 
-If you click that endpoint, you can access the Grafana dashbaord.
+If you click that endpoint, you can access the Grafana dashboard.
 
 ![DC/OS grafana targets](assets/dcos_grafana_dashboard.png)
 
diff --git a/site2/website/versioned_docs/version-2.8.0/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.8.0/developing-binary-protocol.md
index d0c6c65..8cd4139 100644
--- a/site2/website/versioned_docs/version-2.8.0/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.8.0/developing-binary-protocol.md
@@ -413,7 +413,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.8.0/functions-develop.md b/site2/website/versioned_docs/version-2.8.0/functions-develop.md
index b2db2d7..8b2c4cc 100644
--- a/site2/website/versioned_docs/version-2.8.0/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.8.0/functions-develop.md
@@ -1095,7 +1095,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.8.0/helm-overview.md b/site2/website/versioned_docs/version-2.8.0/helm-overview.md
index 5db9250..6af6008 100644
--- a/site2/website/versioned_docs/version-2.8.0/helm-overview.md
+++ b/site2/website/versioned_docs/version-2.8.0/helm-overview.md
@@ -91,10 +91,10 @@ helm delete <pulsar-release-name>
 ```
 
 For the purposes of continuity, these charts have some Kubernetes objects that cannot be removed when performing `helm delete`.
-It is recommended to *conciously* remove these items, as they affect re-deployment.
+It is recommended to *consciously* remove these items, as they affect re-deployment.
 
 * PVCs for stateful data: *consciously* remove these items.
     - ZooKeeper: This is your metadata.
     - BookKeeper: This is your data.
     - Prometheus: This is your metrics data, which can be safely removed.
-* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
\ No newline at end of file
+* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
diff --git a/site2/website/versioned_docs/version-2.8.0/reference-configuration.md b/site2/website/versioned_docs/version-2.8.0/reference-configuration.md
index 12e2615..f127c81 100644
--- a/site2/website/versioned_docs/version-2.8.0/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.8.0/reference-configuration.md
@@ -57,7 +57,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -98,7 +98,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
-|sortedLedgerStorageEnabled|Whether sorted-ledger storage is enabled.|ture|
+|sortedLedgerStorageEnabled|Whether sorted-ledger storage is enabled.|true|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
 |numAddWorkerThreads|The number of threads that should handle write requests. if zero, the writes would be handled by netty threads directly.|0|
 |numReadWorkerThreads|The number of threads that should handle read requests. if zero, the reads would be handled by netty threads directly.|8|
@@ -245,7 +245,7 @@ brokerServiceCompactionThresholdInBytes|If the estimated backlog size is greater
 |offloadersDirectory|The directory for all the offloader implementations.|./offloaders|
 |bookkeeperMetadataServiceUri| Metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location. This value can be fetched using `bookkeeper shell whatisinstanceid` command in BookKeeper cluster. For example: zk+hierarchical://localhost:2181/ledgers. The metadata service uri list can also be semicolon separated values like below: zk+hierarchical://zk1:2181;zk2:2181;zk3:2181/ledgers ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientNumWorkerThreads|  Number of BookKeeper client worker threads. Default is Runtime.getRuntime().availableProcessors()  ||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
diff --git a/site2/website/versioned_docs/version-2.8.0/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.8.0/reference-pulsar-admin.md
index 14375d7..886714c 100644
--- a/site2/website/versioned_docs/version-2.8.0/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.8.0/reference-pulsar-admin.md
@@ -2386,7 +2386,7 @@ Options
 |----|---|---|
 |`-e`, `--bookkeeper-ensemble`|Number of bookies to use for a topic|0|
 |`-w`, `--bookkeeper-write-quorum`|How many writes to make of each entry|0|
-|`-a`, `--bookkeeper-ack-quorum`|Number of acks (garanteed copies) to wait for each entry|0|
+|`-a`, `--bookkeeper-ack-quorum`|Number of acks (guaranteed copies) to wait for each entry|0|
 |`-r`, `--ml-mark-delete-max-rate`|Throttling rate of mark-delete operation (0 means no throttle)||
 
 ### `remove-persistence`
@@ -2583,7 +2583,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
diff --git a/site2/website/versioned_docs/version-2.8.0/reference-terminology.md b/site2/website/versioned_docs/version-2.8.0/reference-terminology.md
index 0692a46..4af7306 100644
--- a/site2/website/versioned_docs/version-2.8.0/reference-terminology.md
+++ b/site2/website/versioned_docs/version-2.8.0/reference-terminology.md
@@ -47,7 +47,7 @@ modes (exclusive, shared, failover and key_shared).
 
 #### Pub-Sub
 
-A messaging pattern in which [producer](#producer) proccesses publish messages on [topics](#topic) that
+A messaging pattern in which [producer](#producer) processes publish messages on [topics](#topic) that
 are then consumed (processed) by [consumer](#consumer) processes.
 
 #### Producer
diff --git a/site2/website/versioned_docs/version-2.8.0/security-athenz.md b/site2/website/versioned_docs/version-2.8.0/security-athenz.md
index b02fc50..abaa7ec 100644
--- a/site2/website/versioned_docs/version-2.8.0/security-athenz.md
+++ b/site2/website/versioned_docs/version-2.8.0/security-athenz.md
@@ -42,7 +42,7 @@ For more specific steps involving UI, refer to [Example Service Access Control S
 > ### TLS encryption 
 >
 > Note that when you are using Athenz as an authentication provider, you had better use TLS encryption 
-> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encrption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
+> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encryption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
 
 In the `conf/broker.conf` configuration file in your Pulsar installation, you need to provide the class name of the Athenz authentication provider as well as a comma-separated list of provider domain names.
 
diff --git a/site2/website/versioned_docs/version-2.8.0/security-authorization.md b/site2/website/versioned_docs/version-2.8.0/security-authorization.md
index 1b4510b..fb05aaa 100644
--- a/site2/website/versioned_docs/version-2.8.0/security-authorization.md
+++ b/site2/website/versioned_docs/version-2.8.0/security-authorization.md
@@ -38,7 +38,7 @@ Pulsar uses *Proxy roles* to enable the authentication. Proxy roles are specifie
 
 You must authorize both the *proxy role* and the *original principal* to access a resource to ensure that the resource is accessible via the proxy. Administrators can take two approaches to authorize the *proxy role* and the *original principal*.
 
-The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creats a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
+The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creates a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
 
 Another approach is to make the proxy role a superuser. This allows the proxy to access all resources. The client still needs to authenticate with the proxy, and all requests made through the proxy have their role downgraded to the *original principal* of the authenticated client. However, if the proxy is compromised, a bad actor could get full access to your cluster.
 
diff --git a/site2/website/versioned_docs/version-2.8.0/security-jwt.md b/site2/website/versioned_docs/version-2.8.0/security-jwt.md
index c6c862a..107f461 100644
--- a/site2/website/versioned_docs/version-2.8.0/security-jwt.md
+++ b/site2/website/versioned_docs/version-2.8.0/security-jwt.md
@@ -258,7 +258,7 @@ brokerClientAuthenticationParameters={"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0
 # Or, alternatively, read token from file
 # brokerClientAuthenticationParameters={"file":"///path/to/proxy-token.txt"}
 
-# Whether client authorization credentials are forwared to the broker for re-authorization.
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
 # Authentication must be enabled via authenticationEnabled=true for this to take effect.
 forwardAuthorizationCredentials=true
 ```
diff --git a/site2/website/versioned_docs/version-2.8.0/security-kerberos.md b/site2/website/versioned_docs/version-2.8.0/security-kerberos.md
index 00365b0..f3bd412 100644
--- a/site2/website/versioned_docs/version-2.8.0/security-kerberos.md
+++ b/site2/website/versioned_docs/version-2.8.0/security-kerberos.md
@@ -194,7 +194,7 @@ You must ensure that the operating system user who starts pulsar client can reac
 
 #### Configure CLI tools
 
-If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to preform the following steps:
+If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to perform the following steps:
 
 Step 1. Enter the command below to configure your `client.conf`.
 ```shell
@@ -219,7 +219,7 @@ With the above configuration, client and broker can do authentication using Kerb
 
 A client that connects to Pulsar Proxy is a little different. Pulsar Proxy (as a SASL Server in Kerberos) authenticates Client (as a SASL client in Kerberos) first; and then Pulsar broker authenticates Pulsar Proxy. 
 
-Now in comparision with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
+Now in comparison with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
 
 ### Create principal for Pulsar Proxy in Kerberos
 
@@ -239,7 +239,7 @@ sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{client-keytabnam
 
 ### Add a section in JAAS configuration file for Pulsar Proxy
 
-In comparision with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
+In comparison with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
 
 Here is an example named `pulsar_jaas.conf`:
 
diff --git a/site2/website/versioned_docs/version-2.8.0/security-tls-keystore.md b/site2/website/versioned_docs/version-2.8.0/security-tls-keystore.md
index ec9f347..2229550 100644
--- a/site2/website/versioned_docs/version-2.8.0/security-tls-keystore.md
+++ b/site2/website/versioned_docs/version-2.8.0/security-tls-keystore.md
@@ -122,7 +122,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
@@ -214,7 +214,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
diff --git a/site2/website/versioned_docs/version-2.8.0/security-tls-transport.md b/site2/website/versioned_docs/version-2.8.0/security-tls-transport.md
index 5244076..10ea992 100644
--- a/site2/website/versioned_docs/version-2.8.0/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.8.0/security-tls-transport.md
@@ -79,7 +79,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).
diff --git a/site2/website/versioned_docs/version-2.8.1/administration-dashboard.md b/site2/website/versioned_docs/version-2.8.1/administration-dashboard.md
index cbc2f93..16d69ed 100644
--- a/site2/website/versioned_docs/version-2.8.1/administration-dashboard.md
+++ b/site2/website/versioned_docs/version-2.8.1/administration-dashboard.md
@@ -52,7 +52,7 @@ If the Pulsar service runs in standalone mode in `localhost`, the `SERVICE_URL`
 be the IP of the machine.
 
 Similarly, given the Pulsar standalone advertises itself with localhost by default, you need to
-explicitely set the advertise address to the host IP. For example:
+explicitly set the advertise address to the host IP. For example:
 
 ```shell
 $ bin/pulsar standalone --advertised-address 1.2.3.4
@@ -60,4 +60,4 @@ $ bin/pulsar standalone --advertised-address 1.2.3.4
 
 ### Known issues
 
-Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
\ No newline at end of file
+Currently, only Pulsar Token [authentication](security-overview.md#authentication-providers) is supported.
diff --git a/site2/website/versioned_docs/version-2.8.1/administration-load-balance.md b/site2/website/versioned_docs/version-2.8.1/administration-load-balance.md
index da66710..8db9c7f 100644
--- a/site2/website/versioned_docs/version-2.8.1/administration-load-balance.md
+++ b/site2/website/versioned_docs/version-2.8.1/administration-load-balance.md
@@ -118,7 +118,7 @@ loadBalancerNamespaceMaximumBundles=128
 
 ### Shed load automatically
 
-The support for automatic load shedding is avaliable in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
+The support for automatic load shedding is available in the load manager of Pulsar. This means that whenever the system recognizes a particular broker is overloaded, the system forces some traffic to be reassigned to less loaded brokers.
 
 When a broker is identified as overloaded, the broker forces to "unload" a subset of the bundles, the
 ones with higher traffic, that make up for the overload percentage.
diff --git a/site2/website/versioned_docs/version-2.8.1/administration-pulsar-manager.md b/site2/website/versioned_docs/version-2.8.1/administration-pulsar-manager.md
index 63d0c8e..aed97df 100644
--- a/site2/website/versioned_docs/version-2.8.1/administration-pulsar-manager.md
+++ b/site2/website/versioned_docs/version-2.8.1/administration-pulsar-manager.md
@@ -127,7 +127,7 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -142,13 +142,13 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --private-key` command.
-* `PRIVATE_KEY`: private key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
-* `PUBLIC_KEY`: public key path mounted in container, genrated by `bin/pulsar tokens create-key-pair` command.
+* `PRIVATE_KEY`: private key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
+* `PUBLIC_KEY`: public key path mounted in container, generated by `bin/pulsar tokens create-key-pair` command.
 * `$PWD/secret`: the folder where the private key and public key generated by the `bin/pulsar tokens create-key-pair` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
@@ -163,12 +163,12 @@ docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e RE
 ```
 
 * `JWT_TOKEN`: the token of superuser configured for the broker. It is generated by the `bin/pulsar tokens create --secret-key` command.
-* `SECRET_KEY`: secret key path mounted in container, genrated by `bin/pulsar tokens create-secret-key` command.
+* `SECRET_KEY`: secret key path mounted in container, generated by `bin/pulsar tokens create-secret-key` command.
 * `$PWD/secret`: the folder where the secret key generated by the `bin/pulsar tokens create-secret-key` command are placed locally
 * `REDIRECT_HOST`: the IP address of the front-end server.
 * `REDIRECT_PORT`: the port of the front-end server.
 * `DRIVER_CLASS_NAME`: the driver class name of the PostgreSQL database.
-* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgresSQL database.
+* `URL`: the JDBC URL of your PostgreSQL database, such as jdbc:postgresql://127.0.0.1:5432/pulsar_manager. The docker image automatically start a local instance of the PostgreSQL database.
 * `USERNAME`: the username of PostgreSQL.
 * `PASSWORD`: the password of PostgreSQL.
 * `LOG_LEVEL`: the level of log.
diff --git a/site2/website/versioned_docs/version-2.8.1/client-libraries-java.md b/site2/website/versioned_docs/version-2.8.1/client-libraries-java.md
index 22f481e..2526380 100644
--- a/site2/website/versioned_docs/version-2.8.1/client-libraries-java.md
+++ b/site2/website/versioned_docs/version-2.8.1/client-libraries-java.md
@@ -594,7 +594,7 @@ If a broker dispatches only one message at a time, consumer1 receives the follow
 ("key-4", "message-4-1")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-1", "message-1-2")
@@ -627,7 +627,7 @@ Consumer consumer2 = client.newConsumer()
 
 `Key_Shared` subscription is like `Shared` subscription, all consumers can attach to the same subscription. But it is different from `Key_Shared` subscription, messages with the same key are delivered to only one consumer in order. The possible distribution of messages between different consumers (by default we do not know in advance which keys will be assigned to a consumer, but a key will only be assigned to a consumer at the same time).
 
-consumer1 receives the follwoing information.
+consumer1 receives the following information.
 
 ```
 ("key-1", "message-1-1")
@@ -637,7 +637,7 @@ consumer1 receives the follwoing information.
 ("key-3", "message-3-2")
 ```
 
-consumer2 receives the follwoing information.
+consumer2 receives the following information.
 
 ```
 ("key-2", "message-2-1")
diff --git a/site2/website/versioned_docs/version-2.8.1/client-libraries-websocket.md b/site2/website/versioned_docs/version-2.8.1/client-libraries-websocket.md
index 9339ae3..c9cb6e0 100644
--- a/site2/website/versioned_docs/version-2.8.1/client-libraries-websocket.md
+++ b/site2/website/versioned_docs/version-2.8.1/client-libraries-websocket.md
@@ -70,7 +70,7 @@ All exchanges via the WebSocket API use JSON.
 
 ### Authentication
 
-#### Broswer javascript WebSocket client
+#### Browser javascript WebSocket client
 
 Use the query param `token` transport the authentication token.
 
diff --git a/site2/website/versioned_docs/version-2.8.1/concepts-messaging.md b/site2/website/versioned_docs/version-2.8.1/concepts-messaging.md
index c8adb44..0277102 100644
--- a/site2/website/versioned_docs/version-2.8.1/concepts-messaging.md
+++ b/site2/website/versioned_docs/version-2.8.1/concepts-messaging.md
@@ -492,7 +492,7 @@ The diagram below illustrates both concepts:
 
 ![Message retention and expiry](assets/retention-expiry.png)
 
-With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dicates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
+With message retention, shown at the top, a <span style="color: #89b557;">retention policy</span> applied to all topics in a namespace dictates that some messages are durably stored in Pulsar even though they've already been acknowledged. Acknowledged messages that are not covered by the retention policy are <span style="color: #bb3b3e;">deleted</span>. Without a retention policy, *all* of the <span style="color: #19967d;">acknowledged messages</span> would be deleted.
 
 With message expiry, shown at the bottom, some messages are <span style="color: #bb3b3e;">deleted</span>, even though they <span style="color: #337db6;">haven't been acknowledged</span>, because they've expired according to the <span style="color: #e39441;">TTL applied to the namespace</span> (for example because a TTL of 5 minutes has been applied and the messages haven't been acknowledged but are 10 minutes old).
 
diff --git a/site2/website/versioned_docs/version-2.8.1/deploy-bare-metal.md b/site2/website/versioned_docs/version-2.8.1/deploy-bare-metal.md
index 4c27b1c..ffd80d0 100644
--- a/site2/website/versioned_docs/version-2.8.1/deploy-bare-metal.md
+++ b/site2/website/versioned_docs/version-2.8.1/deploy-bare-metal.md
@@ -179,7 +179,7 @@ For more details of how to configure tiered storage feature, you can refer to th
 
 ## Deploy a ZooKeeper cluster
 
-> If you already have an exsiting zookeeper cluster and want to use it, you can skip this section.
+> If you already have an existing zookeeper cluster and want to use it, you can skip this section.
 
 [ZooKeeper](https://zookeeper.apache.org) manages a variety of essential coordination- and configuration-related tasks for Pulsar. To deploy a Pulsar cluster, you need to deploy ZooKeeper first (before all other components). A 3-node ZooKeeper cluster is the recommended configuration. Pulsar does not make heavy use of ZooKeeper, so more lightweight machines or VMs should suffice for running ZooKeeper.
 
@@ -383,7 +383,7 @@ You can start a broker in the background using the [`pulsar-daemon`](reference-c
 $ bin/pulsar-daemon start broker
 ```
 
-Once you succesfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
+Once you successfully start up all the brokers that you intend to use, your Pulsar cluster should be ready to go!
 
 ## Connect to the running cluster
 
diff --git a/site2/website/versioned_docs/version-2.8.1/deploy-dcos.md b/site2/website/versioned_docs/version-2.8.1/deploy-dcos.md
index 0131be2..843b40a 100644
--- a/site2/website/versioned_docs/version-2.8.1/deploy-dcos.md
+++ b/site2/website/versioned_docs/version-2.8.1/deploy-dcos.md
@@ -114,7 +114,7 @@ Click into `grafana` to get the endpoint for Grafana, which is `192.168.65.121:3
  
 ![DC/OS grafana endpoint](assets/dcos_grafana_endpoint.png)
 
-If you click that endpoint, you can access the Grafana dashbaord.
+If you click that endpoint, you can access the Grafana dashboard.
 
 ![DC/OS grafana targets](assets/dcos_grafana_dashboard.png)
 
diff --git a/site2/website/versioned_docs/version-2.8.1/developing-binary-protocol.md b/site2/website/versioned_docs/version-2.8.1/developing-binary-protocol.md
index 58e9cf9..2fc88f9 100644
--- a/site2/website/versioned_docs/version-2.8.1/developing-binary-protocol.md
+++ b/site2/website/versioned_docs/version-2.8.1/developing-binary-protocol.md
@@ -413,7 +413,7 @@ messages are coming from the consumer.
 
 ##### Command ConsumerStats
 
-This command is sent by the client to retreive Subscriber and Consumer level 
+This command is sent by the client to retrieve Subscriber and Consumer level 
 stats from the broker.
 Parameters:
  * `request_id` → Id of the request, used to correlate the request 
diff --git a/site2/website/versioned_docs/version-2.8.1/functions-develop.md b/site2/website/versioned_docs/version-2.8.1/functions-develop.md
index 3ced345..69ea63d 100644
--- a/site2/website/versioned_docs/version-2.8.1/functions-develop.md
+++ b/site2/website/versioned_docs/version-2.8.1/functions-develop.md
@@ -1095,7 +1095,7 @@ Currently Pulsar Functions expose the following APIs for mutating and accessing
 
 ```java
     /**
-     * Increment the builtin distributed counter refered by key
+     * Increment the builtin distributed counter referred by key
      * @param key The name of the key
      * @param amount The amount to be incremented
      */
diff --git a/site2/website/versioned_docs/version-2.8.1/helm-overview.md b/site2/website/versioned_docs/version-2.8.1/helm-overview.md
index 6c058ed..2aee293 100644
--- a/site2/website/versioned_docs/version-2.8.1/helm-overview.md
+++ b/site2/website/versioned_docs/version-2.8.1/helm-overview.md
@@ -91,10 +91,10 @@ helm delete <pulsar-release-name>
 ```
 
 For the purposes of continuity, these charts have some Kubernetes objects that cannot be removed when performing `helm delete`.
-It is recommended to *conciously* remove these items, as they affect re-deployment.
+It is recommended to *consciously* remove these items, as they affect re-deployment.
 
 * PVCs for stateful data: *consciously* remove these items.
     - ZooKeeper: This is your metadata.
     - BookKeeper: This is your data.
     - Prometheus: This is your metrics data, which can be safely removed.
-* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
\ No newline at end of file
+* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar-helm-chart/blob/master/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.
diff --git a/site2/website/versioned_docs/version-2.8.1/reference-configuration.md b/site2/website/versioned_docs/version-2.8.1/reference-configuration.md
index 2fd6e09..3cc1432 100644
--- a/site2/website/versioned_docs/version-2.8.1/reference-configuration.md
+++ b/site2/website/versioned_docs/version-2.8.1/reference-configuration.md
@@ -57,7 +57,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |compactionRate|The rate at which compaction will read entries, in adds per second.|1000|
 |isThrottleByBytes|Throttle compaction by bytes or by entries.|false|
 |compactionRateByEntries|The rate at which compaction will read entries, in adds per second.|1000|
-|compactionRateByBytes|Set the rate at which compaction will readd entries. The unit is bytes added per second.|1000000|
+|compactionRateByBytes|Set the rate at which compaction reads entries. The unit is bytes added per second.|1000000|
 |journalMaxSizeMB|Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.|2048|
 |journalMaxBackups|The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.|5|
 |journalPreAllocSizeMB|How space to pre-allocate at a time in the journal.|16|
@@ -98,7 +98,7 @@ BookKeeper is a replicated log storage system that Pulsar uses for durable stora
 |diskUsageThreshold|For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).|0.95|
 |diskCheckInterval|Disk check interval in milli seconds, interval to check the ledger dirs usage.|10000|
 |auditorPeriodicCheckInterval|Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.|604800|
-|sortedLedgerStorageEnabled|Whether sorted-ledger storage is enabled.|ture|
+|sortedLedgerStorageEnabled|Whether sorted-ledger storage is enabled.|true|
 |auditorPeriodicBookieCheckInterval|The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.|86400|
 |numAddWorkerThreads|The number of threads that should handle write requests. if zero, the writes would be handled by netty threads directly.|0|
 |numReadWorkerThreads|The number of threads that should handle read requests. if zero, the reads would be handled by netty threads directly.|8|
@@ -245,7 +245,7 @@ brokerServiceCompactionThresholdInBytes|If the estimated backlog size is greater
 |offloadersDirectory|The directory for all the offloader implementations.|./offloaders|
 |bookkeeperMetadataServiceUri| Metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location. This value can be fetched using `bookkeeper shell whatisinstanceid` command in BookKeeper cluster. For example: zk+hierarchical://localhost:2181/ledgers. The metadata service uri list can also be semicolon separated values like below: zk+hierarchical://zk1:2181;zk2:2181;zk3:2181/ledgers ||
 |bookkeeperClientAuthenticationPlugin|  Authentication plugin to use when connecting to bookies ||
-|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementatation specifics parameters name and values  ||
+|bookkeeperClientAuthenticationParametersName|  BookKeeper auth plugin implementation specifics parameters name and values  ||
 |bookkeeperClientAuthenticationParameters|||
 |bookkeeperClientNumWorkerThreads|  Number of BookKeeper client worker threads. Default is Runtime.getRuntime().availableProcessors()  ||
 |bookkeeperClientTimeoutInSeconds|  Timeout for BK add / read operations  |30|
diff --git a/site2/website/versioned_docs/version-2.8.1/reference-pulsar-admin.md b/site2/website/versioned_docs/version-2.8.1/reference-pulsar-admin.md
index dc03e2f..5fbbe41 100644
--- a/site2/website/versioned_docs/version-2.8.1/reference-pulsar-admin.md
+++ b/site2/website/versioned_docs/version-2.8.1/reference-pulsar-admin.md
@@ -2386,7 +2386,7 @@ Options
 |----|---|---|
 |`-e`, `--bookkeeper-ensemble`|Number of bookies to use for a topic|0|
 |`-w`, `--bookkeeper-write-quorum`|How many writes to make of each entry|0|
-|`-a`, `--bookkeeper-ack-quorum`|Number of acks (garanteed copies) to wait for each entry|0|
+|`-a`, `--bookkeeper-ack-quorum`|Number of acks (guaranteed copies) to wait for each entry|0|
 |`-r`, `--ml-mark-delete-max-rate`|Throttling rate of mark-delete operation (0 means no throttle)||
 
 ### `remove-persistence`
@@ -2583,7 +2583,7 @@ Options
 
 
 ### `reset-namespace-bundle-quota`
-Reset the specifed namespace bundle's resource quota to a default value.
+Reset the specified namespace bundle's resource quota to a default value.
 
 Usage
 ```bash
diff --git a/site2/website/versioned_docs/version-2.8.1/reference-terminology.md b/site2/website/versioned_docs/version-2.8.1/reference-terminology.md
index 1cf3d7d..8edfcd7 100644
--- a/site2/website/versioned_docs/version-2.8.1/reference-terminology.md
+++ b/site2/website/versioned_docs/version-2.8.1/reference-terminology.md
@@ -47,7 +47,7 @@ modes (exclusive, shared, failover and key_shared).
 
 #### Pub-Sub
 
-A messaging pattern in which [producer](#producer) proccesses publish messages on [topics](#topic) that
+A messaging pattern in which [producer](#producer) processes publish messages on [topics](#topic) that
 are then consumed (processed) by [consumer](#consumer) processes.
 
 #### Producer
diff --git a/site2/website/versioned_docs/version-2.8.1/security-athenz.md b/site2/website/versioned_docs/version-2.8.1/security-athenz.md
index f88e0de..d59cc37 100644
--- a/site2/website/versioned_docs/version-2.8.1/security-athenz.md
+++ b/site2/website/versioned_docs/version-2.8.1/security-athenz.md
@@ -42,7 +42,7 @@ For more specific steps involving UI, refer to [Example Service Access Control S
 > ### TLS encryption 
 >
 > Note that when you are using Athenz as an authentication provider, you had better use TLS encryption 
-> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encrption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
+> as it can protect role tokens from being intercepted and reused. (for more details involving TLS encryption see [Architecture - Data Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model.md)).
 
 In the `conf/broker.conf` configuration file in your Pulsar installation, you need to provide the class name of the Athenz authentication provider as well as a comma-separated list of provider domain names.
 
diff --git a/site2/website/versioned_docs/version-2.8.1/security-authorization.md b/site2/website/versioned_docs/version-2.8.1/security-authorization.md
index abc0793..73f875d 100644
--- a/site2/website/versioned_docs/version-2.8.1/security-authorization.md
+++ b/site2/website/versioned_docs/version-2.8.1/security-authorization.md
@@ -38,7 +38,7 @@ Pulsar uses *Proxy roles* to enable the authentication. Proxy roles are specifie
 
 You must authorize both the *proxy role* and the *original principal* to access a resource to ensure that the resource is accessible via the proxy. Administrators can take two approaches to authorize the *proxy role* and the *original principal*.
 
-The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creats a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
+The more secure approach is to grant access to the proxy roles each time you grant access to a resource. For example, if you have a proxy role named `proxy1`, when the superuser creates a tenant, you should specify `proxy1` as one of the admin roles. When a role is granted permissions to produce or consume from a namespace, if that client wants to produce or consume through a proxy, you should also grant `proxy1` the same permissions.
 
 Another approach is to make the proxy role a superuser. This allows the proxy to access all resources. The client still needs to authenticate with the proxy, and all requests made through the proxy have their role downgraded to the *original principal* of the authenticated client. However, if the proxy is compromised, a bad actor could get full access to your cluster.
 
diff --git a/site2/website/versioned_docs/version-2.8.1/security-jwt.md b/site2/website/versioned_docs/version-2.8.1/security-jwt.md
index 1a96b7d..589df61 100644
--- a/site2/website/versioned_docs/version-2.8.1/security-jwt.md
+++ b/site2/website/versioned_docs/version-2.8.1/security-jwt.md
@@ -258,7 +258,7 @@ brokerClientAuthenticationParameters={"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0
 # Or, alternatively, read token from file
 # brokerClientAuthenticationParameters={"file":"///path/to/proxy-token.txt"}
 
-# Whether client authorization credentials are forwared to the broker for re-authorization.
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
 # Authentication must be enabled via authenticationEnabled=true for this to take effect.
 forwardAuthorizationCredentials=true
 ```
diff --git a/site2/website/versioned_docs/version-2.8.1/security-kerberos.md b/site2/website/versioned_docs/version-2.8.1/security-kerberos.md
index a5726e7..e597bf7 100644
--- a/site2/website/versioned_docs/version-2.8.1/security-kerberos.md
+++ b/site2/website/versioned_docs/version-2.8.1/security-kerberos.md
@@ -194,7 +194,7 @@ You must ensure that the operating system user who starts pulsar client can reac
 
 #### Configure CLI tools
 
-If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to preform the following steps:
+If you use a command-line tool (such as `bin/pulsar-client`, `bin/pulsar-perf` and `bin/pulsar-admin`), you need to perform the following steps:
 
 Step 1. Enter the command below to configure your `client.conf`.
 ```shell
@@ -219,7 +219,7 @@ With the above configuration, client and broker can do authentication using Kerb
 
 A client that connects to Pulsar Proxy is a little different. Pulsar Proxy (as a SASL Server in Kerberos) authenticates Client (as a SASL client in Kerberos) first; and then Pulsar broker authenticates Pulsar Proxy. 
 
-Now in comparision with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
+Now in comparison with the above configuration between client and broker, we show you how to configure Pulsar Proxy as follows. 
 
 ### Create principal for Pulsar Proxy in Kerberos
 
@@ -239,7 +239,7 @@ sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{client-keytabnam
 
 ### Add a section in JAAS configuration file for Pulsar Proxy
 
-In comparision with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
+In comparison with the above configuration, add a new section for Pulsar Proxy in JAAS configuration file.
 
 Here is an example named `pulsar_jaas.conf`:
 
diff --git a/site2/website/versioned_docs/version-2.8.1/security-tls-keystore.md b/site2/website/versioned_docs/version-2.8.1/security-tls-keystore.md
index 143371e..6c2996d 100644
--- a/site2/website/versioned_docs/version-2.8.1/security-tls-keystore.md
+++ b/site2/website/versioned_docs/version-2.8.1/security-tls-keystore.md
@@ -122,7 +122,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
@@ -214,7 +214,7 @@ tlsTrustStoreType=JKS
 tlsTrustStore=/var/private/tls/broker.truststore.jks
 tlsTrustStorePassword=brokerpw
 
-# interal client/admin-client config
+# internal client/admin-client config
 brokerClientTlsEnabled=true
 brokerClientTlsEnabledWithKeyStore=true
 brokerClientTlsTrustStoreType=JKS
diff --git a/site2/website/versioned_docs/version-2.8.1/security-tls-transport.md b/site2/website/versioned_docs/version-2.8.1/security-tls-transport.md
index fdee83d..271db68 100644
--- a/site2/website/versioned_docs/version-2.8.1/security-tls-transport.md
+++ b/site2/website/versioned_docs/version-2.8.1/security-tls-transport.md
@@ -79,7 +79,7 @@ The following commands ask you a few questions and then create the certificates.
 > #### Tips
 > 
 > Sometimes matching the hostname is not possible or makes no sense,
-> such as when you creat the brokers with random hostnames, or you
+> such as when you create the brokers with random hostnames, or you
 > plan to connect to the hosts via their IP. In these cases, you 
 > should configure the client to disable TLS hostname verification. For more
 > details, you can see [the host verification section in client configuration](#hostname-verification).