You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by ju...@apache.org on 2023/03/31 07:49:52 UTC

[pulsar-site] branch main updated: [improve][doc] Relocate client config links and refresh client API doc links (#487)

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

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


The following commit(s) were added to refs/heads/main by this push:
     new 926cd9e68ff [improve][doc] Relocate client config links and refresh client API doc links (#487)
926cd9e68ff is described below

commit 926cd9e68ff38c2ee89ceb7384de39b8b78cde72
Author: Jun Ma <60...@users.noreply.github.com>
AuthorDate: Fri Mar 31 15:49:45 2023 +0800

    [improve][doc] Relocate client config links and refresh client API doc links (#487)
    
    * improve client api links to directly point to API docs
    
    * replace config topics with links
    
    * Add API doc link for Go client
    
    * add API doc link for Java client
    
    * relocate Java client memory config info to reference site
    
    * Update concepts-clients.md
    
    * update referenced links
    
    * preview fix
    
    * use `@pulsar:version_reference@` to replace `next` version
    
    * restructure API overview topics
    
    * update links
    
    * Update deploy-bare-metal.md
    
    * adjust display order and heading
    
    * Update reference-rest-api-overview.md
    
    * Update sidebars.json
    
    * Update sidebars.json
    
    * Update reference-landing.md
---
 docs/admin-api-brokers.md                          |   4 +-
 docs/client-api-overview.md                        |  18 ---
 docs/client-libraries-cpp-configs.md               |  21 ---
 docs/client-libraries-cpp.md                       |  14 +-
 docs/client-libraries-dotnet-configs.md            |   7 -
 docs/client-libraries-dotnet.md                    |   5 +-
 docs/client-libraries-go-configs.md                |  21 ---
 docs/client-libraries-go.md                        |  10 +-
 docs/client-libraries-java-configs.md              | 163 ---------------------
 docs/client-libraries-java-initialize.md           |   2 +-
 docs/client-libraries-java.md                      |  10 +-
 docs/client-libraries-node-configs.md              |   2 +-
 docs/client-libraries-node.md                      |   1 +
 docs/client-libraries-python-configs.md            |  21 ---
 docs/client-libraries-python.md                    |   9 +-
 docs/client-libraries.md                           |  16 +-
 docs/concepts-clients.md                           |   4 +-
 docs/deploy-bare-metal.md                          |   2 +-
 docs/functions-deploy-cluster-encryption.md        |   2 +-
 docs/getting-started-docker.md                     |   2 +-
 docs/pulsar-api-overview.md                        |  32 +++-
 docs/reference-landing.md                          |   8 +-
 docs/reference-rest-api-overview.md                |   2 +-
 docs/standalone-docker.md                          |   2 +-
 sidebars.json                                      |  41 ++----
 static/reference/2.11.x/config/README.md           |  18 +--
 static/reference/next/client/README.md             |  29 +++-
 static/reference/next/config/README.md             |  18 +--
 .../version-2.11.x/getting-started-docker.md       |   2 +-
 .../version-2.11.x/pulsar-api-overview.md          |   2 +-
 versioned_docs/version-2.11.x/standalone-docker.md |   2 +-
 31 files changed, 137 insertions(+), 353 deletions(-)

diff --git a/docs/admin-api-brokers.md b/docs/admin-api-brokers.md
index d5612fc93b6..ed75539bb4b 100644
--- a/docs/admin-api-brokers.md
+++ b/docs/admin-api-brokers.md
@@ -17,7 +17,7 @@ This page only shows **some frequently used operations**. For the latest and com
 
 Category|Method|If you want to manage brokers...
 |---|---|---
-[Pulsar CLI](reference-cli-tools.md) |[pulsar-admin](pathname:///reference/#/@pulsar:version_origin@/pulsar-admin/), which lists all commands, flags, descriptions, and more.| See the `broker` command
+[Pulsar CLI](reference-cli-tools.md) |[pulsar-admin](pathname:///reference/#/@pulsar:version_reference@/pulsar-admin/), which lists all commands, flags, descriptions, and more.| See the `broker` command
 [Pulsar admin APIs](admin-api-overview.md)| {@inject: rest:REST API:/}, which lists all parameters, responses, samples, and more.|See the `/admin/v2/brokers` endpoint
 [Pulsar admin APIs](admin-api-overview.md)|[Java admin API](/api/admin/), which lists all classes, methods, descriptions, and more.|See the `brokers` method of the `PulsarAdmin` object
 
@@ -107,7 +107,7 @@ admin.brokers().getOwnedNamespaces(cluster,brokerUrl);
 
 You can update broker configurations using one of the following ways:
 
-- Supply [configurations](pathname:///reference/#/@pulsar:version_origin@/config/reference-configuration-broker) when starting up brokers.
+- Supply [configurations](pathname:///reference/#/@pulsar:version_reference@/config/reference-configuration-broker) when starting up brokers.
 
 - [Update configurations dynamically](#update-broker-conf-dynamically) **when running brokers**.
 
diff --git a/docs/client-api-overview.md b/docs/client-api-overview.md
deleted file mode 100644
index 3ddac30f85b..00000000000
--- a/docs/client-api-overview.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-id: client-api-overview
-title: Client API
-sidebar_label: "Overview"
----
-
-````mdx-code-block
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-````
-
-Pulsar client APIs allow you to create and configure producers, consumers, and readers; produce and consume messages; perform authentication and authorization tasks, and so on via programmable interfaces. They encapsulate and optimize Pulsar's client-broker communication protocols and add additional features using Pulsar primitives. Pulsar exposes client APIs with language bindings for [Java](client-libraries-java.md), [C++](client-libraries-cpp.md), [Python](client-libraries-python.md), [...]
-
-![Client APIs - Definition](/assets/client-api-definition.svg)
-
-## Next steps
-
-For more details about Pulsar clients, including language-specific client libraries, feature matrix, third-party clients, see [Pulsar client - Overview](client-libraries.md).
\ No newline at end of file
diff --git a/docs/client-libraries-cpp-configs.md b/docs/client-libraries-cpp-configs.md
deleted file mode 100644
index 700eca55a94..00000000000
--- a/docs/client-libraries-cpp-configs.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-id: client-libraries-cpp-configs
-title: Pulsar C++ client configurations
-sidebar_label: "C++ client"
----
-
-## Client configuration
-
-For all available configurations, see [`ClientConfiguration`](@pulsar:apidoc:cpp@/classpulsar_1_1_client_configuration.html).
-
-## Producer configuration
-
-For all available configurations, see [`ProducerConfiguration`](@pulsar:apidoc:cpp@/classpulsar_1_1_producer_configuration.html).
-
-## Consumer configuration
-
-For all available configurations, see [`ConsumerConfiguration`](@pulsar:apidoc:cpp@/classpulsar_1_1_consumer_configuration.html).
-
-## Reader configuration
-
-For all available configurations, see [`ReaderConfiguration`](@pulsar:apidoc:cpp@/classpulsar_1_1_reader_configuration.html).
diff --git a/docs/client-libraries-cpp.md b/docs/client-libraries-cpp.md
index 6cdc4b9fb49..7f583f235c4 100644
--- a/docs/client-libraries-cpp.md
+++ b/docs/client-libraries-cpp.md
@@ -21,14 +21,16 @@ You can use a Pulsar C++ client to create Pulsar [producers](concepts-clients.md
 
 ## Reference doc
 
-- [API docs](@pulsar:apidoc:cpp@)
-- [Release notes](/release-notes/client-cpp)
-- [C++ client configurations](client-libraries-cpp-configs.md)
-- [C++ client examples](https://github.com/apache/pulsar-client-cpp/tree/main/examples)
+- [C++ client API docs](@pulsar:apidoc:cpp@)
+  - [Client configurations](@pulsar:apidoc:cpp@/classpulsar_1_1_client_configuration.html)
+  - [Producer configurations](@pulsar:apidoc:cpp@/classpulsar_1_1_producer_configuration.html)
+  - [Consumer configurations](@pulsar:apidoc:cpp@/classpulsar_1_1_consumer_configuration.html)
+  - [Reader configurations](@pulsar:apidoc:cpp@/classpulsar_1_1_reader_configuration.html)
+- [Release notes](pathname:///release-notes/client-cpp)
+- [Code examples](https://github.com/apache/pulsar-client-cpp/tree/main/examples)
 - [Supported schema types](https://github.com/apache/pulsar-client-cpp/blob/main/include/pulsar/Schema.h)
 - [Client feature matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914)
 
-
 ## Changes for 3.0.0 and later versions
 
 The new version of the Pulsar C++ client starts from 3.0.0 and has been no longer consistent with Pulsar since 2.10.x. For the latest releases, see the [Download](/download/) page.
@@ -68,4 +70,4 @@ Linking to `libpulsar.a` can be difficult for beginners because the 3rd party de
 
 Before 3.0.0, there was a `libpulsarnossl.so`, which is removed now.
 
-:::
+:::
\ No newline at end of file
diff --git a/docs/client-libraries-dotnet-configs.md b/docs/client-libraries-dotnet-configs.md
deleted file mode 100644
index 0ed22f7fff6..00000000000
--- a/docs/client-libraries-dotnet-configs.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: client-libraries-dotnet-configs
-title: Pulsar C# client configurations
-sidebar_label: "C# client"
----
-
-Coming soon...
\ No newline at end of file
diff --git a/docs/client-libraries-dotnet.md b/docs/client-libraries-dotnet.md
index 47196050b61..f6e8bb36751 100644
--- a/docs/client-libraries-dotnet.md
+++ b/docs/client-libraries-dotnet.md
@@ -21,7 +21,6 @@ You can use the Pulsar C# client (DotPulsar) to create Pulsar [producers](concep
 
 ## Reference doc
 
-- [C# client configurations](client-libraries-dotnet-configs.md)
+- [Release notes](pathname:///release-notes/client-cs)
 - [DotPulsar documentation](https://github.com/apache/pulsar-dotpulsar/wiki)
-- [Client feature matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914)
-- [Release notes](/release-notes/client-cs)
\ No newline at end of file
+- [Client feature matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914)
\ No newline at end of file
diff --git a/docs/client-libraries-go-configs.md b/docs/client-libraries-go-configs.md
deleted file mode 100644
index c18390ccfdd..00000000000
--- a/docs/client-libraries-go-configs.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-id: client-libraries-go-configs
-title: Pulsar Go client configurations
-sidebar_label: "Go client"
----
-
-## Client configs
-
-For all available options, see [`ClientOptions`](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar#ClientOptions).
-
-## Producer configs
-
-For all available options, see [`ProducerOptions`](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar#ProducerOptions).
-
-## Consumer configs
-
-For all available options, see [`ConsumerOptions`](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar#ConsumerOptions).
-
-## Reader configs
-
-For all available options, see [`ReaderOptions`](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar#ReaderOptions).
\ No newline at end of file
diff --git a/docs/client-libraries-go.md b/docs/client-libraries-go.md
index 968bd4f8807..802c88a2377 100644
--- a/docs/client-libraries-go.md
+++ b/docs/client-libraries-go.md
@@ -19,10 +19,12 @@ You can use a Pulsar [Go client](https://github.com/apache/pulsar-client-go) to
 - [Work with consumers](client-libraries-consumers.md)
 - [Work with readers](client-libraries-readers.md)
 
-
 ## Reference doc
 
-- [Go client configurations](client-libraries-go-configs.md)
-- [API docs](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar)
-- [Release notes](/release-notes/client-go)
+- [Go client API docs](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar)
+  - [Client configurations](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar#ClientOptions)
+  - [Producer configurations](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar#ProducerOptions)
+  - [Consumer configurations](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar#ConsumerOptions)
+  - [Reader configurations](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar#ReaderOptions)
+- [Release notes](pathname:///release-notes/client-go)
 - [Client feature matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914)
\ No newline at end of file
diff --git a/docs/client-libraries-java-configs.md b/docs/client-libraries-java-configs.md
deleted file mode 100644
index 206ea7d8434..00000000000
--- a/docs/client-libraries-java-configs.md
+++ /dev/null
@@ -1,163 +0,0 @@
----
-id: client-libraries-java-configs
-title: Java client configs
-sidebar_label: "Java client"
----
-
-## Client configs
-
-If you create a Java client, you can use the `loadConf` configuration. The following parameters are available in `loadConf`.
-
-| Name                                      | Type          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                    [...]
-|-------------------------------------------|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
-| `serviceUrl`                              | String        | Service URL provider for Pulsar service                                                                                                                                                                                                                                                                                                                                                                                                        [...]
-| `authPluginClassName`                     | String        | Name of the authentication plugin                                                                                                                                                                                                                                                                                                                                                                                                              [...]
-| `authParams`                              | String        | Parameters for the authentication plugin <br /><br />**Example**<br /> key1:val1,key2:val2                                                                                                                                                                                                                                                                                                                                                     [...]
-| `operationTimeoutMs`                      | long          | Operation timeout                                                                                                                                                                                                                                                                                                                                                                                                                              [...]
-| `statsIntervalSeconds`                    | long          | Interval between each stats information<br /><br />Stats is activated with positive `statsInterval`<br /><br />Set `statsIntervalSeconds` to 1 second at least.                                                                                                                                                                                                                                                                                [...]
-| `numIoThreads`                            | int           | The number of threads used for handling connections to brokers                                                                                                                                                                                                                                                                                                                                                                                 [...]
-| `numListenerThreads`                      | int           | The number of threads used for handling message listeners. The listener thread pool is shared across all the consumers and readers using the "listener" model to get messages. For a given consumer, the listener is always invoked from the same thread to ensure ordering. If you want multiple threads to process a single topic, you need to create a [`shared`](concepts-messaging.md#shared) subscription and multiple consumers for thi [...]
-| `useTcpNoDelay`                           | boolean       | Whether to use TCP no-delay flag on the connection to disable Nagle algorithm                                                                                                                                                                                                                                                                                                                                                                  [...]
-| `enableTls`                               | boolean       | Whether to use TLS encryption on the connection. Note that this parameter is **deprecated**. If you want to enable TLS, use `pulsar+ssl://` in `serviceUrl` instead.                                                                                                                                                                                                                                                                           [...]
-| `tlsTrustCertsFilePath`                   | string        | Path to the trusted TLS certificate file                                                                                                                                                                                                                                                                                                                                                                                                       [...]
-| `tlsAllowInsecureConnection`              | boolean       | Whether the Pulsar client accepts untrusted TLS certificate from broker                                                                                                                                                                                                                                                                                                                                                                        [...]
-| `tlsHostnameVerificationEnable`           | boolean       | Whether to enable TLS hostname verification                                                                                                                                                                                                                                                                                                                                                                                                    [...]
-| `concurrentLookupRequest`                 | int           | The number of concurrent lookup requests allowed to send on each broker connection to prevent overload on broker                                                                                                                                                                                                                                                                                                                               [...]
-| `maxLookupRequest`                        | int           | The maximum number of lookup requests allowed on each broker connection to prevent overload on broker                                                                                                                                                                                                                                                                                                                                          [...]
-| `maxNumberOfRejectedRequestPerConnection` | int           | The maximum number of rejected requests of a broker in a certain time frame (60 seconds) after the current connection is closed and the client creates a new connection to connect to a different broker                                                                                                                                                                                                                                       [...]
-| `keepAliveIntervalSeconds`                | int           | Seconds of keeping alive interval for each client broker connection                                                                                                                                                                                                                                                                                                                                                                            [...]
-| `connectionTimeoutMs`                     | int           | Duration of waiting for a connection to a broker to be established <br /><br />If the duration passes without a response from a broker, the connection attempt is dropped                                                                                                                                                                                                                                                                      [...]
-| `requestTimeoutMs`                        | int           | Maximum duration for completing a request                                                                                                                                                                                                                                                                                                                                                                                                      [...]
-| `defaultBackoffIntervalNanos`             | int           | Default duration for a backoff interval                                                                                                                                                                                                                                                                                                                                                                                                        [...]
-| `maxBackoffIntervalNanos`                 | long          | Maximum duration for a backoff interval                                                                                                                                                                                                                                                                                                                                                                                                        [...]
-| `socks5ProxyAddress`                      | SocketAddress | SOCKS5 proxy address                                                                                                                                                                                                                                                                                                                                                                                                                           [...]
-| `socks5ProxyUsername`                     | string        | SOCKS5 proxy username                                                                                                                                                                                                                                                                                                                                                                                                                          [...]
-| `socks5ProxyPassword`                     | string        | SOCKS5 proxy password                                                                                                                                                                                                                                                                                                                                                                                                                          [...]
-| `connectionMaxIdleSeconds`                | int           | Release the connection if it is not used for more than `connectionMaxIdleSeconds` seconds.If `connectionMaxIdleSeconds` < 0, disabled the feature that auto release the idle connection                                                                                                                                                                                                                                                        [...]
-
-In addition to client-level configuration, you can also apply [producer](#producer-configs) and [consumer](#consumer-configs) specific configurations.
-
-For a full list of configurable parameters, check out the Javadoc for the [PulsarClient](/api/client/org/apache/pulsar/client/api/PulsarClient) class.
-
-## Producer configs
-
-If you instantiate a `Producer` object by specifying only a topic name as the example above, the default configuration of producer is used.
-
-If you create a producer, you can use the `loadConf` configuration. The following parameters are available in `loadConf`.
-
-| Name                                 | Type                        | Description                                                                                                                                                                                                                                                                                                                                                                                                                           [...]
-|--------------------------------------|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
-| `topicName`                          | string                      | Topic name                                                                                                                                                                                                                                                                                                                                                                                                                            [...]
-| `producerName`                       | string                      | Producer name                                                                                                                                                                                                                                                                                                                                                                                                                         [...]
-| `sendTimeoutMs`                      | long                        | Message send timeout in ms.<br />If a message is not acknowledged by a server before the `sendTimeout` expires, an error occurs.                                                                                                                                                                                                                                                                                                      [...]
-| `blockIfQueueFull`                   | boolean                     | If it is set to `true`, when the outgoing message queue is full, the `Send` and `SendAsync` methods of producer block, rather than failing and throwing errors. <br />If it is set to `false`, when the outgoing message queue is full, the `Send` and `SendAsync` methods of producer fail and `ProducerQueueIsFullError` exceptions occur.<br /><br />The `MaxPendingMessages` parameter determines the size of the outgoing messag [...]
-| `maxPendingMessages`                 | int                         | The maximum size of a queue holding pending messages.<br /><br />For example, a message waiting to receive an acknowledgment from a [broker](reference-terminology.md#broker). <br /><br />By default, when the queue is full, all calls to the `Send` and `SendAsync` methods fail **unless** you set `BlockIfQueueFull` to `true`.                                                                                                  [...]
-| `maxPendingMessagesAcrossPartitions` | int                         | Deprecated, use `memoryLimit` instead. The maximum number of pending messages across partitions. <br /><br />Use the setting to lower the max pending messages for each partition ({@link #setMaxPendingMessages(int)}) if the total number exceeds the configured value and maxPendingMessagesAcrossPartitions needs to be >= maxPendingMessages.                                                                                    [...]
-| `messageRoutingMode`                 | MessageRoutingMode          | Message routing logic for producers on [partitioned topics](concepts-messaging.md#partitioned-topics).<br /> Apply the logic only when setting no key on messages. <br />Available options are as follows: <br /><li>`pulsar.RoundRobinDistribution`: round robin</li><li>`pulsar.UseSinglePartition`: publish all messages to a single partition</li><li>`pulsar.CustomPartition`: a custom partitioning scheme</li>                 [...]
-| `hashingScheme`                      | HashingScheme               | Hashing function determining the partition where you publish a particular message (**partitioned topics only**).<br />Available options are as follows:<br /><li> `pulsar.JavastringHash`: the equivalent of `string.hashCode()` in Java</li><li> `pulsar.Murmur3_32Hash`: applies the [Murmur3](https://en.wikipedia.org/wiki/MurmurHash) hashing function</li><li>`pulsar.BoostHash`: applies the hashing function from C++'s [Boos [...]
-| `cryptoFailureAction`                | ProducerCryptoFailureAction | Producer should take action when encryption fails.<br /><li>**FAIL**: if encryption fails, unencrypted messages fail to send.</li><li> **SEND**: if encryption fails, unencrypted messages are sent.</li>                                                                                                                                                                                                                             [...]
-| `batchingMaxPublishDelayMicros`      | long                        | Batching time period of sending messages.                                                                                                                                                                                                                                                                                                                                                                                             [...]
-| `batchingMaxMessages`                | int                         | The maximum number of messages permitted in a batch.                                                                                                                                                                                                                                                                                                                                                                                  [...]
-| `batchingEnabled`                    | boolean                     | Enable batching of messages.                                                                                                                                                                                                                                                                                                                                                                                                          [...]
-| `chunkingEnabled`                    | boolean                     | Enable chunking of messages.                                                                                                                                                                                                                                                                                                                                                                                                          [...]
-| `compressionType`                    | CompressionType             | Message data compression type used by a producer. <br />Available options:<li>[`LZ4`](https://github.com/lz4/lz4)</li><li>[`ZLIB`](https://zlib.net/)<br /></li><li>[`ZSTD`](https://facebook.github.io/zstd/)</li><li>[`SNAPPY`](https://google.github.io/snappy/)</li>                                                                                                                                                              [...]
-| `initialSubscriptionName`            | string                      | Use this configuration to automatically create an initial subscription when creating a topic. If this field is not set, the initial subscription is not created.                                                                                                                                                                                                                                                                      [...]
-
-You can configure parameters if you do not want to use the default configuration.
-
-For a full list, see the Javadoc for the {@inject: javadoc:ProducerBuilder:/client/org/apache/pulsar/client/api/ProducerBuilder} class. The following is an example.
-
-```java
-Producer<byte[]> producer = client.newProducer()
-    .topic("my-topic")
-    .batchingMaxPublishDelay(10, TimeUnit.MILLISECONDS)
-    .sendTimeout(10, TimeUnit.SECONDS)
-    .blockIfQueueFull(true)
-    .create();
-```
-
-## Consumer configs
-
-If you instantiate a `Consumer` object by specifying only a topic and subscription name as in the example above, the consumer uses the default configuration.
-
-When you create a consumer, you can use the `loadConf` configuration. The following parameters are available in `loadConf`.
-
-| Name                                         | Type                        | Description                                                                                                                                                                                                                                                                                                                                                                                                                   [...]
-|----------------------------------------------|-----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ [...]
-| `topicNames`                                 | Set&lt;String&gt;           | Topic name                                                                                                                                                                                                                                                                                                                                                                                                                    [...]
-| `topicsPattern`                              | Pattern                     | Topic pattern	                                                                                                                                                                                                                                                                                                                                                                                                                [...]
-| `subscriptionName`                           | String                      | Subscription name                                                                                                                                                                                                                                                                                                                                                                                                             [...]
-| `subscriptionType`                           | SubscriptionType            | Subscription type <br/> Four subscription types are available:<li>Exclusive</li><li>Failover</li><li>Shared</li><li>Key_Shared</li>                                                                                                                                                                                                                                                                                           [...]
-| `receiverQueueSize`                          | int                         | Size of a consumer's receiver queue. <br /><br />For example, the number of messages accumulated by a consumer before an application calls `Receive`. <br /><br />A value higher than the default value increases consumer throughput, though at the expense of more memory utilization.                                                                                                                                      [...]
-| `acknowledgementsGroupTimeMicros`            | long                        | Group a consumer acknowledgment for a specified time.<br /><br />By default, a consumer uses 100ms grouping time to send out acknowledgments to a broker.<br /><br />Setting a group time of 0 sends out acknowledgments immediately. <br /><br />A longer ack group time is more efficient at the expense of a slight increase in message re-deliveries after a failure.                                                     [...]
-| `negativeAckRedeliveryDelayMicros`           | long                        | Delay to wait before redelivering messages that failed to be processed.<br /><br /> When an application uses {@link Consumer#negativeAcknowledge(Message)}, failed messages are redelivered after a fixed timeout.                                                                                                                                                                                                            [...]
-| `maxTotalReceiverQueueSizeAcrossPartitions`  | int                         | The max total receiver queue size across partitions.<br /><br />This setting reduces the receiver queue size for individual partitions if the total receiver queue size exceeds this value.                                                                                                                                                                                                                                   [...]
-| `consumerName`                               | String                      | Consumer name                                                                                                                                                                                                                                                                                                                                                                                                                 [...]
-| `ackTimeoutMillis`                           | long                        | Timeout of unacked messages                                                                                                                                                                                                                                                                                                                                                                                                   [...]
-| `tickDurationMillis`                         | long                        | Granularity of the ack-timeout redelivery.<br /><br />Using an higher `tickDurationMillis` reduces the memory overhead to track messages when setting ack-timeout to a bigger value (for example, 1 hour).                                                                                                                                                                                                                    [...]
-| `priorityLevel`                              | int                         | Priority level for a consumer to which a broker gives more priority while dispatching messages in Shared subscription type. It can be set at the consumer level so all topics being consumed will have the same priority level or each topic being consumed can be given a different priority level.<br /><br />The broker follows descending priorities. For example, 0=max-priority, 1, 2,...<br /><br />In Shared subscrip [...]
-| `cryptoFailureAction`                        | ConsumerCryptoFailureAction | Consumer should take action when it receives a message that can not be decrypted.<br /><li>**FAIL**: this is the default option to fail messages until crypto succeeds.</li><li> **DISCARD**:silently acknowledge and not deliver message to an application.</li><li>**CONSUME**: deliver encrypted messages to applications. It is the application's responsibility to decrypt the message.</li><br />The decompression of m [...]
-| `properties`                                 | SortedMap<String, String>   | A name or value property of this consumer.<br /><br />`properties` is application defined metadata attached to a consumer. <br /><br />When getting a topic stats, associate this metadata with the consumer stats for easier identification.                                                                                                                                                                                 [...]
-| `readCompacted`                              | boolean                     | If enabling `readCompacted`, a consumer reads messages from a compacted topic rather than reading a full message backlog of a topic.<br /><br /> A consumer only sees the latest value for each key in the compacted topic, up until reaching the point in the topic message when compacting backlog. Beyond that point, send messages as normal.<br /><br />Only enabling `readCompacted` on subscriptions to persistent top [...]
-| `subscriptionInitialPosition`                | SubscriptionInitialPosition | Initial position at which to set cursor when subscribing to a topic at first time.                                                                                                                                                                                                                                                                                                                                            [...]
-| `patternAutoDiscoveryPeriod`                 | int                         | Topic auto discovery period when using a pattern for topic's consumer.<br /><br />The default and minimum value is 1 minute.                                                                                                                                                                                                                                                                                                  [...]
-| `regexSubscriptionMode`                      | RegexSubscriptionMode       | When subscribing to a topic using a regular expression, you can pick a certain type of topics.<br /><br /><li>**PersistentOnly**: only subscribe to persistent topics.</li><li>**NonPersistentOnly**: only subscribe to non-persistent topics.</li><li>**AllTopics**: subscribe to both persistent and non-persistent topics.</li>                                                                                            [...]
-| `deadLetterPolicy`                           | DeadLetterPolicy            | Dead letter policy for consumers.<br /><br />By default, some messages are probably redelivered many times, even to the extent that it never stops.<br /><br />By using the dead letter mechanism, messages have the max redelivery count. **When exceeding the maximum number of redeliveries, messages are sent to the Dead Letter Topic and acknowledged automatically**.<br /><br />You can enable the dead letter mechan [...]
-| `autoUpdatePartitions`                       | boolean                     | If `autoUpdatePartitions` is enabled, a consumer subscribes to partition increasement automatically.<br /><br />**Note**: this is only for partitioned consumers.                                                                                                                                                                                                                                                             [...]
-| `replicateSubscriptionState`                 | boolean                     | If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.                                                                                                                                                                                                                                                                                                                    [...]
-| `negativeAckRedeliveryBackoff`               | RedeliveryBackoff           | Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for a consumer.                                                                                                                                                                                                                                                                                                                     [...]
-| `ackTimeoutRedeliveryBackoff`                | RedeliveryBackoff           | Interface for custom message is ackTimeout policy. You can specify `RedeliveryBackoff` for a consumer.                                                                                                                                                                                                                                                                                                                        [...]
-| `autoAckOldestChunkedMessageOnQueueFull`     | boolean                     | Whether to automatically acknowledge pending chunked messages when the threashold of `maxPendingChunkedMessage` is reached. If set to `false`, these messages will be redelivered by their broker.                                                                                                                                                                                                                            [...]
-| `maxPendingChunkedMessage`                   | int                         | The maximum size of a queue holding pending chunked messages. When the threshold is reached, the consumer drops pending messages to optimize memory utilization.                                                                                                                                                                                                                                                              [...]
-| `expireTimeOfIncompleteChunkedMessageMillis` | long                        | The time interval to expire incomplete chunks if a consumer fails to receive all the chunks in the specified time period. The default value is 1 minute.                                                                                                                                                                                                                                                                      [...]
-| `ackReceiptEnabled`                          | boolean                     | If `ackReceiptEnabled` is enabled, ACK returns a receipt. The client got the ack receipt means the broker has processed the ack request, but if without transaction, the broker does not guarantee persistence of acknowledgments, which means the messages still have a chance to be redelivered after the broker crashes. With the transaction, the client can only get the receipt after the acknowledgments have been per [...]
-
-You can configure parameters if you do not want to use the default configuration. For a full list, see the Javadoc for the {@inject: javadoc:ConsumerBuilder:/client/org/apache/pulsar/client/api/ConsumerBuilder} class.
-
-The following is an example.
-
-```java
-Consumer consumer = client.newConsumer()
-        .topic("my-topic")
-        .subscriptionName("my-subscription")
-        .ackTimeout(10, TimeUnit.SECONDS)
-        .subscriptionType(SubscriptionType.Exclusive)
-        .subscribe();
-```
-
-## Reader configs
-
-When you create a reader, you can use the `loadConf` configuration. The following parameters are available in `loadConf`.
-
-| Name                     | Type                        | Description                                                                                                                                                                                                                                                                                                                                                                                                                                       [...]
-|--------------------------|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
-| `topicName`              | String                      | Topic name.                                                                                                                                                                                                                                                                                                                                                                                                                                       [...]
-| `receiverQueueSize`      | int                         | Size of a consumer's receiver queue.<br /><br />For example, the number of messages that can be accumulated by a consumer before an application calls `Receive`.<br /><br />A value higher than the default value increases consumer throughput, though at the expense of more memory utilization.                                                                                                                                                [...]
-| `readerListener`         | ReaderListener&lt;T&gt;     | A listener that is called for message received.                                                                                                                                                                                                                                                                                                                                                                                                   [...]
-| `readerName`             | String                      | Reader name.                                                                                                                                                                                                                                                                                                                                                                                                                                      [...]
-| `subscriptionName`       | String                      | Subscription name                                                                                                                                                                                                                                                                                                                                                                                                                                 [...]
-| `subscriptionRolePrefix` | String                      | Prefix of subscription role.                                                                                                                                                                                                                                                                                                                                                                                                                      [...]
-| `cryptoKeyReader`        | CryptoKeyReader             | Interface that abstracts the access to a key store.                                                                                                                                                                                                                                                                                                                                                                                               [...]
-| `cryptoFailureAction`    | ConsumerCryptoFailureAction | Consumer should take action when it receives a message that can not be decrypted.<br /><li>**FAIL**: this is the default option to fail messages until crypto succeeds.</li><li> **DISCARD**: silently acknowledge and not deliver message to an application.</li><li>**CONSUME**: deliver encrypted messages to applications. It is the application's responsibility to decrypt the message.</li><br />The message decompression fails. <br /><b [...]
-| `readCompacted`          | boolean                     | If enabling `readCompacted`, a consumer reads messages from a compacted topic rather than a full message backlog of a topic.<br /><br /> A consumer only sees the latest value for each key in the compacted topic, up until reaching the point in the topic message when compacting backlog. Beyond that point, send messages as normal.<br /><br />`readCompacted` can only be enabled on subscriptions to persistent topics, which have a sing [...]
-| `resetIncludeHead`       | boolean                     | If set to true, the first message to be returned is the one specified by `messageId`.<br /><br />If set to false, the first message to be returned is the one next to the message specified by `messageId`.                                                                                                                                                                                                                                       [...]
-
-## Client memory allocator configs
-
-You can set the client memory allocator configurations through Java properties.<br />
-
-| Property                                | Type   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                             [...]
-|-----------------------------------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
-| `pulsar.allocator.pooled`               | String | If set to `true`, the client uses a direct memory pool. <br /> If set to `false`, the client uses a heap memory without pool                                                                                                                                                                                                                                                                                                                            [...]
-| `pulsar.allocator.exit_on_oom`          | String | Whether to exit the JVM when OOM happens                                                                                                                                                                                                                                                                                                                                                                                                                [...]
-| `pulsar.allocator.leak_detection`       | String | The leak detection policy for Pulsar ByteBuf allocator. <li> **Disabled**: No leak detection and no overhead. </li> <li> **Simple**: Instruments 1% of the allocated buffer to track for leaks. </li> <li> **Advanced**: Instruments 1% of the allocated buffer to track for leaks, reporting stack traces of places where the buffer is used. </li> <li> **Paranoid**: Instruments 100% of the allocated buffer to track for leaks, reporting stack tr [...]
-| `pulsar.allocator.out_of_memory_policy` | String | When an OOM occurs, the client throws an exception or fallbacks to heap                                                                                                                                                                                                                                                                                                                                                                                 [...]
-
-**Example**
-
-```conf
-Dpulsar.allocator.pooled=true
-Dpulsar.allocator.exit_on_oom=false
-Dpulsar.allocator.leak_detection=Disabled
-Dpulsar.allocator.out_of_memory_policy=ThrowException
-```
diff --git a/docs/client-libraries-java-initialize.md b/docs/client-libraries-java-initialize.md
index a6104277732..03456b99644 100644
--- a/docs/client-libraries-java-initialize.md
+++ b/docs/client-libraries-java-initialize.md
@@ -27,4 +27,4 @@ If you run a cluster in [standalone mode](getting-started-standalone.md), the br
 
 :::
 
-For detailed client configurations, see the [reference doc](client-libraries-java-configs.md#client-configurations).
\ No newline at end of file
+For detailed client configurations, see the [reference doc](pathname:///reference/#/@pulsar:version_reference@/client/).
\ No newline at end of file
diff --git a/docs/client-libraries-java.md b/docs/client-libraries-java.md
index 312925e9d6c..549e018f1bd 100644
--- a/docs/client-libraries-java.md
+++ b/docs/client-libraries-java.md
@@ -29,12 +29,12 @@ The following table outlines the API packages and reference docs for Pulsar Java
 
 Package | Description | Maven Artifact
 :-------|:------------|:--------------
-[`org.apache.pulsar.client.api`](/api/client) | [Java client API](/api/client/) | [org.apache.pulsar:pulsar-client:@pulsar:version@](http://search.maven.org/#artifactdetails%7Corg.apache.pulsar%7Cpulsar-client%7C@pulsar:version@%7Cjar)
-[`org.apache.pulsar.client.admin`](/api/admin) | [Java admin API](admin-api-overview.md) | [org.apache.pulsar:pulsar-client-admin:@pulsar:version@](http://search.maven.org/#artifactdetails%7Corg.apache.pulsar%7Cpulsar-client-admin%7C@pulsar:version@%7Cjar)
+[`org.apache.pulsar.client.api`](/api/client) | Java client API. <br/> See [Client API overview](pulsar-api-overview.md#pulsar-client-apis) for more reference. | [org.apache.pulsar:pulsar-client:@pulsar:version@](http://search.maven.org/#artifactdetails%7Corg.apache.pulsar%7Cpulsar-client%7C@pulsar:version@%7Cjar)
+[`org.apache.pulsar.client.admin`](/api/admin) | Java admin API. <br/> See [Admin API overview](admin-api-overview.md) for more reference. | [org.apache.pulsar:pulsar-client-admin:@pulsar:version@](http://search.maven.org/#artifactdetails%7Corg.apache.pulsar%7Cpulsar-client-admin%7C@pulsar:version@%7Cjar)
 `org.apache.pulsar.client.all` | Include both `pulsar-client` and `pulsar-client-admin`.<br /> Both `pulsar-client` and `pulsar-client-admin` are independently shaded packages. Consequently, the applications using both `pulsar-client` and `pulsar-client-admin` have redundant shaded classes. It would be troublesome if you introduce new dependencies but forget to update shading rules. <br /> In this case, you can use `pulsar-client-all`, which shades dependencies only one time and reduces  [...]
 
 #### More reference
 
-- [Java client configurations](client-libraries-java-configs.md)
-- [Release notes](/release-notes/client-java)
-- [Client feature matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914)
+- [Java client configurations](pathname:///reference/#/@pulsar:version_reference@/client/)
+- [Release notes](pathname:///release-notes/client-java)
+- [Client feature matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914)
\ No newline at end of file
diff --git a/docs/client-libraries-node-configs.md b/docs/client-libraries-node-configs.md
index aef8ed7f219..96a69e19542 100644
--- a/docs/client-libraries-node-configs.md
+++ b/docs/client-libraries-node-configs.md
@@ -1,7 +1,7 @@
 ---
 id: client-libraries-node-configs
 title: Pulsar Node.js client configurations
-sidebar_label: "Node.js client"
+sidebar_label: "Configs"
 ---
 
 
diff --git a/docs/client-libraries-node.md b/docs/client-libraries-node.md
index de04dd1a330..923ae85a639 100644
--- a/docs/client-libraries-node.md
+++ b/docs/client-libraries-node.md
@@ -22,5 +22,6 @@ You can use a Pulsar Node.js client to create Pulsar [producers](concepts-client
 ## Reference doc
 
 - [Node.js client configurations](client-libraries-node-configs.md)
+- [Release notes](pathname://release-notes/client-node/)
 - [Client feature matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914)
 - [Type definitions](https://github.com/apache/pulsar-client-node/blob/master/index.d.ts) used in TypeScript (for 1.3.0 or later versions).
\ No newline at end of file
diff --git a/docs/client-libraries-python-configs.md b/docs/client-libraries-python-configs.md
deleted file mode 100644
index 8436e83a4b0..00000000000
--- a/docs/client-libraries-python-configs.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-id: client-libraries-python-configs
-title: Pulsar Python client configurations
-sidebar_label: "Python client"
----
-
-## Client configuration
-
-For all available configurations, see [`the constructor of the pulsar client`](@pulsar:apidoc:python@/pulsar.Client.html#__init__).
-
-## Producer configuration
-
-For all available configurations, see [`client.create_producer`](@pulsar:apidoc:python@/pulsar.Client.html#create_producer).
-
-## Consumer configuration
-
-For all available configurations, see [`client.subscribe`](@pulsar:apidoc:python@/pulsar.Client.html#subscribe).
-
-## Reader configuration
-
-For all available configurations, see [`client.create_reader`](@pulsar:apidoc:python@/pulsar.Client.html#create_reader).
diff --git a/docs/client-libraries-python.md b/docs/client-libraries-python.md
index 6cdcddd6442..4fc639e48d1 100644
--- a/docs/client-libraries-python.md
+++ b/docs/client-libraries-python.md
@@ -21,7 +21,10 @@ You can use a Pulsar Python client to create Pulsar [producers](concepts-clients
 
 ## Reference doc
 
-- [Python client configurations](client-libraries-python-configs.md)
-- [API docs](@pulsar:apidoc:python@)
-- [Release notes](/release-notes/client-python)
+- [Python client API docs](@pulsar:apidoc:python@)
+  - [Client configurations](@pulsar:apidoc:python@/pulsar.Client.html#__init__)
+  - [Producer configurations](@pulsar:apidoc:python@/pulsar.Client.html#create_producer)
+  - [Consumer configurations](@pulsar:apidoc:python@/pulsar.Client.html#subscribe)
+  - [Reader configurations](@pulsar:apidoc:python@/pulsar.Client.html#create_reader)
+- [Release notes](pathname:///release-notes/client-python)
 - [Client feature matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914)
\ No newline at end of file
diff --git a/docs/client-libraries.md b/docs/client-libraries.md
index 10a8284df9b..13dcab809f0 100644
--- a/docs/client-libraries.md
+++ b/docs/client-libraries.md
@@ -8,14 +8,14 @@ sidebar_label: "Overview"
 
 Pulsar supports the following language-specific client libraries:
 
-| Language  | Documentation                                                                  | Release note                                          | Code repo                                                             |
-|-----------|--------------------------------------------------------------------------------|-------------------------------------------------------|-----------------------------------------------------------------------|
-| Java      | [User doc](client-libraries-java.md)   <br/> [API doc](/api/client/)           | [Standalone](pathname:///release-notes/client-java)   | [Bundled](https://github.com/apache/pulsar/tree/master/pulsar-client) |
-| C++       | [User doc](client-libraries-cpp.md)    <br/> [API doc](@pulsar:apidoc:cpp@)    | [Standalone](pathname:///release-notes/client-cpp)    | [Standalone](https://github.com/apache/pulsar-client-cpp)             |
-| Python    | [User doc](client-libraries-python.md) <br/> [API doc](@pulsar:apidoc:python@) | [Standalone](pathname:///release-notes/client-python) | [Standalone](https://github.com/apache/pulsar-client-python)          |
-| Go client | [User doc](client-libraries-go.md)                                             | [Standalone](pathname:///release-notes/client-go)     | [Standalone](https://github.com/apache/pulsar-client-go)              |
-| Node.js   | [User doc](client-libraries-node.md)                                           | [Standalone](pathname:///release-notes/client-node)   | [Standalone](https://github.com/apache/pulsar-client-node)            |
-| C#        | [User doc](client-libraries-dotnet.md)                                         | [Standalone](pathname:///release-notes/client-cs)     | [Standalone](https://github.com/apache/pulsar-dotpulsar)              |
+| Language  | Documentation                                                                                                      | Release note                                          | Code repo                                                             |
+|-----------|--------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|-----------------------------------------------------------------------|
+| Java      | [User doc](client-libraries-java.md)   <br/> [API doc](/api/client/)                                               | [Standalone](pathname:///release-notes/client-java)   | [Bundled](https://github.com/apache/pulsar/tree/master/pulsar-client) |
+| C++       | [User doc](client-libraries-cpp.md)    <br/> [API doc](@pulsar:apidoc:cpp@)                                        | [Standalone](pathname:///release-notes/client-cpp)    | [Standalone](https://github.com/apache/pulsar-client-cpp)             |
+| Python    | [User doc](client-libraries-python.md) <br/> [API doc](@pulsar:apidoc:python@)                                     | [Standalone](pathname:///release-notes/client-python) | [Standalone](https://github.com/apache/pulsar-client-python)          |
+| Go client | [User doc](client-libraries-go.md)   <br/> [API doc](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar) | [Standalone](pathname:///release-notes/client-go)     | [Standalone](https://github.com/apache/pulsar-client-go)              |
+| Node.js   | [User doc](client-libraries-node.md)                                                                               | [Standalone](pathname:///release-notes/client-node)   | [Standalone](https://github.com/apache/pulsar-client-node)            |
+| C#        | [User doc](client-libraries-dotnet.md)                                                                             | [Standalone](pathname:///release-notes/client-cs)     | [Standalone](https://github.com/apache/pulsar-dotpulsar)              |
 
 :::tip
 
diff --git a/docs/concepts-clients.md b/docs/concepts-clients.md
index 3524c123451..a8c20b47896 100644
--- a/docs/concepts-clients.md
+++ b/docs/concepts-clients.md
@@ -48,7 +48,7 @@ For more information, see [PIP 68: Exclusive Producer](https://github.com/apache
 
 :::
 
-You can set producer access mode through Java Client API. For more information, see `ProducerAccessMode` in [ProducerBuilder.java](https://github.com/apache/pulsar/blob/fc5768ca3bbf92815d142fe30e6bfad70a1b4fc6/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/ProducerBuilder.java) file.
+You can set producer access mode through [Java Client API](/api/client/). For more information, see `ProducerAccessMode` in [ProducerBuilder.java](https://github.com/apache/pulsar/blob/fc5768ca3bbf92815d142fe30e6bfad70a1b4fc6/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/ProducerBuilder.java) file.
 
 
 ## Consumer
@@ -57,7 +57,7 @@ A consumer is a process that attaches to a topic via a subscription and then rec
 
 ![Consumer](/assets/consumer.svg)
 
-A consumer sends a [flow permit request](developing-binary-protocol.md#flow-control) to a broker to get messages. There is a queue at the consumer side to receive messages pushed from the broker. You can configure the queue size with the [`receiverQueueSize`](client-libraries-java-configs.md#consumer-configs) parameter. The default size is `1000`). Each time `consumer.receive()` is called, a message is dequeued from the buffer.
+A consumer sends a [flow permit request](developing-binary-protocol.md#flow-control) to a broker to get messages. There is a queue at the consumer side to receive messages pushed from the broker. You can configure the queue size with the [`receiverQueueSize`](pathname:///reference/#/@pulsar:version_reference@/client/client-configuration-consumer?id=receiverqueuesize) parameter. The default size is `1000`). Each time `consumer.receive()` is called, a message is dequeued from the buffer.
 
 ### Receive mode
 
diff --git a/docs/deploy-bare-metal.md b/docs/deploy-bare-metal.md
index bfa2a644742..a09b11f1482 100644
--- a/docs/deploy-bare-metal.md
+++ b/docs/deploy-bare-metal.md
@@ -345,7 +345,7 @@ Pulsar brokers are the last thing you need to deploy in your Pulsar cluster. Bro
 
 ### Configure Brokers
 
-You can configure BookKeeper bookies using the `conf/broker.conf` configuration file. The most important element of broker configuration is ensuring that each broker is aware of the ZooKeeper cluster that you have deployed. Ensure that the [`metadataStoreUrl`](reference-configuration.md#broker) and [`configurationMetadataStoreUrl`](reference-configuration.md#broker) parameters are correct. In this case, since you only have 1 cluster and no configuration store setup, the `configurationMet [...]
+You can configure brokers using the `conf/broker.conf` configuration file. The most important element of broker configuration is ensuring that each broker is aware of the ZooKeeper cluster that you have deployed. Ensure that the [`metadataStoreUrl`](reference-configuration.md#broker) and [`configurationMetadataStoreUrl`](reference-configuration.md#broker) parameters are correct. In this case, since you only have 1 cluster and no configuration store setup, the `configurationMetadataStoreU [...]
 
 ```properties
 metadataStoreUrl=zk:zk1.us-west.example.com:2181,zk2.us-west.example.com:2181,zk3.us-west.example.com:2181
diff --git a/docs/functions-deploy-cluster-encryption.md b/docs/functions-deploy-cluster-encryption.md
index 89a409dc634..28da8013b98 100644
--- a/docs/functions-deploy-cluster-encryption.md
+++ b/docs/functions-deploy-cluster-encryption.md
@@ -23,4 +23,4 @@ public class CryptoConfig {
 - `producerCryptoFailureAction` defines the action that a producer takes if it fails to encrypt the data. Available options are `FAIL` or `SEND`.
 - `consumerCryptoFailureAction` defines the action that a consumer takes if it fails to decrypt the recieved data. Available options are `FAIL`, `DISCARD`, or `CONSUME`.
 
-For more information about these options, refer to [producer configurations](client-libraries-java-configs.md#producer-configs) and [consumer configurations](client-libraries-java-configs.md#consumer-configs).
+For more information about these options, refer to [producer configurations](pathname:///reference/#/@pulsar:version_reference@/client/client-configuration-producer) and [consumer configurations](pathname:///reference/#/@pulsar:version_reference@/client/client-configuration-consumer).
diff --git a/docs/getting-started-docker.md b/docs/getting-started-docker.md
index f36958e7763..f668f19b3d3 100644
--- a/docs/getting-started-docker.md
+++ b/docs/getting-started-docker.md
@@ -54,7 +54,7 @@ If you're running a local standalone cluster, you can use one of these root URLs
 * `pulsar://localhost:6650`
 * `http://localhost:8080`
 
-The following example guides you to get started with Pulsar by using the [Python client API](client-libraries-python.md).
+The following example guides you to get started with Pulsar by using the [Python client API](@pulsar:apidoc:python@).
 
 Install the Pulsar Python client library directly from [PyPI](https://pypi.org/project/pulsar-client/):
 
diff --git a/docs/pulsar-api-overview.md b/docs/pulsar-api-overview.md
index bd9969fc5b2..839055fc48e 100644
--- a/docs/pulsar-api-overview.md
+++ b/docs/pulsar-api-overview.md
@@ -1,7 +1,7 @@
 ---
 id: pulsar-api-overview
-title: Pulsar API
-sidebar_label: "Overview"
+title: Pulsar APIs
+sidebar_label: "Pulsar APIs"
 ---
 
 ````mdx-code-block
@@ -9,17 +9,33 @@ import Tabs from '@theme/Tabs';
 import TabItem from '@theme/TabItem';
 ````
 
-Pulsar is a messaging and streaming platform that scales across organizations of all sizes. Pulsar APIs are the core building blocks of Pulsar, which allow you to interact with Pulsar or administer Pulsar clusters. Pulsar APIs consist of the following types:
 
-- [Pulsar client APIs](client-api-overview.md)
+Pulsar is a messaging and streaming platform that scales across organizations of all sizes. 
 
-- [Pulsar admin APIs](admin-api-overview.md)
+As the core building blocks of Pulsar, Pulsar APIs allow you to:
+- build applications with Pulsar using client APIs
+- administer Pulsar clusters using admin APIs
 
 ![Pulsar APIs - Definition](/assets/pulsar-api-definition.svg)
 
-## When to use Pulsar APIs
+## Pulsar client APIs
 
-Pulsar client APIs and Pulsar admin APIs serve two different purposes in the Pulsar API design. You can use Pulsar client APIs to build applications with Pulsar and use Pulsar admin APIs to manage Pulsar clusters.
+Pulsar client APIs encapsulate and optimize Pulsar's client-broker communication protocols and add additional features using Pulsar primitives. 
+
+With Pulsar client APIs, you can:
+- create and configure producers, consumers, and readers
+- produce and consume messages
+- perform authentication and authorization tasks 
+
+![Client APIs - Definition](/assets/client-api-definition.svg)
+
+Pulsar exposes client APIs with language bindings. For more details about Pulsar clients, including language-specific client libraries, feature matrix, third-party clients, see [Pulsar client - Overview](client-libraries.md).
+
+## Pulsar admin APIs
+
+See [Pulsar admin API - Overview](admin-api-overview.md).
+
+## Comparison
 
 Here is a simple comparison between Pulsar client APIs and Pulsar admin APIs.
 
@@ -29,5 +45,5 @@ Audiences|Developers|DevOps
 Goals|Build applications with Pulsar|Administer Pulsar clusters
 Use cases|Pulsar client APIs help you create applications that rely on real-time data. <br/><br/> For example, you can build a financial application to handle fraud alerts or an eCommerce application that creates recommendations based on user activities.| Pulsar administration APIs let you administer the entire Pulsar instance, including clusters, tenants, namespaces, and topics, from a single endpoint. <br/><br/> For example, you can configure security and compliance, or get information [...]
 Key features|- Process data with producers, consumers, readers, and TableView <br/><br/> - Secure data with authentication and authorization <br/><br/> - Protect data with transactions and schema <br/><br/> - Stabilize data with cluster-level auto failover | - Configure authentication and authorization <br/><br/> - Set data retention and resource isolation policies <br/><br/> - Facilitate workflow of application development<br/><br/> - Troubleshoot Pulsar
-Interfaces | - [Java client API](client-libraries-java.md) <br/><br/> - [C++ client API](client-libraries-cpp.md) <br/><br/> - [Python client API](client-libraries-python.md) <br/><br/> -  [Go client API](client-libraries-go.md) <br/><br/> - [Node.js client API](client-libraries-node.md) <br/><br/> - [WebSocket client API](client-libraries-websocket.md) <br/><br/> - [C# client API](client-libraries-dotnet.md) | - [Java admin API](admin-api-overview.md) <br/><br/> - [REST API](reference-r [...]
+Interfaces | - [Java client API](/api/client/) <br/><br/> - [C++ client API](@pulsar:apidoc:cpp@) <br/><br/> - [Python client API](@pulsar:apidoc:python@) <br/><br/> -  [Go client API](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar) <br/><br/> - [Node.js client API](client-libraries-node.md) <br/><br/> - [WebSocket client API](client-libraries-websocket.md#api-reference) <br/><br/> - [C# client API](client-libraries-dotnet.md) | - [Java admin API](admin-api-overview.md) <br [...]
 
diff --git a/docs/reference-landing.md b/docs/reference-landing.md
index 2a04ba9c93d..95b31dec5b2 100644
--- a/docs/reference-landing.md
+++ b/docs/reference-landing.md
@@ -6,10 +6,10 @@ sidebar_label: "Reference"
 
 This reference section provides an overview of Apache Pulsar's key concepts, terminology, and features. You'll find more detailed information in the resources listed below. Happy streaming!
 
-- [Glossary](reference-terminology.md)
+- [Pulsar APIs](pulsar-api-overview.md)
+  - [REST APIs](reference-rest-api-overview.md)
+- [Terminology](reference-terminology.md)
 - [Pulsar CLI tools](reference-cli-tools.md)
 - [Pulsar configuration](reference-configuration.md)
 - [Pulsar metrics](reference-metrics.md)
-
-
-
+- [Pulsar release notes](/release-notes/)
\ No newline at end of file
diff --git a/docs/reference-rest-api-overview.md b/docs/reference-rest-api-overview.md
index 6402ef5fc15..ee6d7d8c134 100644
--- a/docs/reference-rest-api-overview.md
+++ b/docs/reference-rest-api-overview.md
@@ -1,7 +1,7 @@
 ---
 id: reference-rest-api-overview
 title: Pulsar REST APIs
-sidebar_label: "Pulsar REST APIs"
+sidebar_label: "REST APIs"
 ---
 
 A REST API (also known as RESTful API, REpresentational State Transfer Application Programming Interface) is a set of definitions and protocols for building and integrating application software, using HTTP requests to GET, PUT, POST, and DELETE data following the REST standards. In essence, REST API is a set of remote calls using standard methods to request and return data in a specific format between two systems.
diff --git a/docs/standalone-docker.md b/docs/standalone-docker.md
index 7acbc58938a..32f303b799f 100644
--- a/docs/standalone-docker.md
+++ b/docs/standalone-docker.md
@@ -49,7 +49,7 @@ use one of these root URLs to interact with your cluster:
 * `pulsar://localhost:6650`
 * `http://localhost:8080`
 
-The following example will guide you to get started with Pulsar quickly by using the [Python client API](client-libraries-python.md).
+The following example will guide you to get started with Pulsar quickly by using the [Python client API](@pulsar:apidoc:python@).
 
 Install the Pulsar Python client library directly from [PyPI](https://pypi.org/project/pulsar-client/):
 
diff --git a/sidebars.json b/sidebars.json
index 540537e4389..8e4234b1917 100644
--- a/sidebars.json
+++ b/sidebars.json
@@ -373,7 +373,8 @@
               "items": [
                 "client-libraries-node-setup",
                 "client-libraries-node-initialize",
-                "client-libraries-node-use" 
+                "client-libraries-node-use",
+                "client-libraries-node-configs" 
               ]
             },
             {
@@ -405,35 +406,9 @@
             "client-libraries-schema",
             "client-libraries-cluster-level-failover"
           ]
-        },
-        {
-          "type": "category",
-          "label": "Config reference",
-          "items": [
-            "client-libraries-java-configs",
-            "client-libraries-cpp-configs",
-            "client-libraries-go-configs",
-            "client-libraries-python-configs",
-            "client-libraries-node-configs",
-            "client-libraries-dotnet-configs"
-          ]
         }
       ]
     },
-    {
-      "type": "category",
-      "label": "Pulsar API",
-      "items": [
-        "pulsar-api-overview"
-      ]
-    },
-    {
-      "type": "category",
-      "label": "Client API",
-      "items": [
-        "client-api-overview"
-      ]
-    },
     {
       "type": "category",
       "label": "Admin API",
@@ -517,11 +492,21 @@
         "id": "reference-landing"
       },
       "items": [
+        {
+          "type": "category",
+          "label": "Pulsar APIs",
+          "link": {
+            "type": "doc",
+            "id": "pulsar-api-overview"
+          },
+          "items": [
+            "reference-rest-api-overview"
+          ]
+        },
         "reference-terminology",
         "reference-cli-tools",
         "reference-configuration",
         "reference-metrics",
-        "reference-rest-api-overview",
         {
           "type": "link",
           "href": "/release-notes/",
diff --git a/static/reference/2.11.x/config/README.md b/static/reference/2.11.x/config/README.md
index a8d9ec8ae84..941f2437e68 100644
--- a/static/reference/2.11.x/config/README.md
+++ b/static/reference/2.11.x/config/README.md
@@ -4,15 +4,15 @@ Pulsar offers several command-line tools that you can use for managing Pulsar in
 
 You can manage Pulsar configurations through configuration files in the [`conf`](https://github.com/apache/pulsar/tree/master/conf) directory of a Pulsar installation.
 
-- [BookKeeper](/next/config/reference-configuration-bookkeeper)
-- [Broker](/next/config/reference-configuration-broker)
-- [Client](/next/config/reference-configuration-client)
-- [Log4j](/next/config/reference-configuration-log4j)
-- [Log4j shell](/next/config/reference-configuration-log4j-shell)
-- [Standalone](/next/config/reference-configuration-standalone)
-- [WebSocket](/next/config/reference-configuration-websocket)
-- [Pulsar proxy](/next/config/reference-configuration-pulsar-proxy)
-- [ZooKeeper](/next/config/reference-configuration-zookeeper)
+- [BookKeeper](/@pulsar:version_reference@/config/reference-configuration-bookkeeper)
+- [Broker](/@pulsar:version_reference@/config/reference-configuration-broker)
+- [Client](/@pulsar:version_reference@/config/reference-configuration-client)
+- [Log4j](/@pulsar:version_reference@/config/reference-configuration-log4j)
+- [Log4j shell](/@pulsar:version_reference@/config/reference-configuration-log4j-shell)
+- [Standalone](/@pulsar:version_reference@/config/reference-configuration-standalone)
+- [WebSocket](/@pulsar:version_reference@/config/reference-configuration-websocket)
+- [Pulsar proxy](/@pulsar:version_reference@/config/reference-configuration-pulsar-proxy)
+- [ZooKeeper](/@pulsar:version_reference@/config/reference-configuration-zookeeper)
 
 ### Override client configurations
 
diff --git a/static/reference/next/client/README.md b/static/reference/next/client/README.md
index 323b61c38b5..718f7ad84b7 100644
--- a/static/reference/next/client/README.md
+++ b/static/reference/next/client/README.md
@@ -1 +1,28 @@
-> Docs for Pulsar Java Client Configuration.
+## Client Configurations
+
+If you create a Java client, producer, consumer, or reader, you can use the `loadConf` configurations.
+
+- [Client configurations](/@pulsar:version_reference@/client/client-configuration-client)
+- [Producer configurations](/@pulsar:version_reference@/client/client-configuration-producer)
+- [Consumer configurations](/@pulsar:version_reference@/client/client-configuration-consumer)
+- [Reader configurations](/@pulsar:version_reference@/client/client-configuration-reader)
+
+### Set client memory allocator configs using Java system properties
+
+You can set the client memory allocator configurations through Java properties.<br />
+
+| Property | Type | <div style="width: 110pt"> Description </div> | Default | Available values |
+|---|---|---|---|---|
+|`pulsar.allocator.pooled` | String | If set to `true`, the client uses a direct memory pool. <br /> If set to `false`, the client uses a heap memory without pool. | true | <li> true </li> <li> false </li> |
+|`pulsar.allocator.exit_on_oom` | String | Whether to exit the JVM when OOM happens. | false |  <li> true </li> <li> false </li>|
+|`pulsar.allocator.leak_detection` | String | The leak detection policy for Pulsar bytebuf allocator. <li> **Disabled**: No leak detection and no overhead. </li> <li> **Simple**: Instruments 1% of the allocated buffer to track for leaks. </li> <li> **Advanced**: Instruments 1% of the allocated buffer to track for leaks, reporting stack traces of places where the buffer is used. </li> <li> **Paranoid**: Instruments 100% of the allocated buffer to track for leaks, reporting stack traces of [...]
+|`pulsar.allocator.out_of_memory_policy` | String | When an OOM occurs, the client throws an exception or fallbacks to heap. | FallbackToHeap | <li> ThrowException </li> <li> FallbackToHeap </li>|
+
+**Example**
+
+```conf
+Dpulsar.allocator.pooled=true
+Dpulsar.allocator.exit_on_oom=false
+Dpulsar.allocator.leak_detection=Disabled
+Dpulsar.allocator.out_of_memory_policy=ThrowException
+```
\ No newline at end of file
diff --git a/static/reference/next/config/README.md b/static/reference/next/config/README.md
index ad972bcd507..07c4274b948 100644
--- a/static/reference/next/config/README.md
+++ b/static/reference/next/config/README.md
@@ -2,15 +2,15 @@
 
 You can manage Pulsar configurations through configuration files in the [`conf`](https://github.com/apache/pulsar/tree/master/conf) directory of a Pulsar installation.
 
-- [BookKeeper](/next/config/reference-configuration-bookkeeper)
-- [Broker](/next/config/reference-configuration-broker)
-- [Client](/next/config/reference-configuration-client)
-- [Log4j](/next/config/reference-configuration-log4j)
-- [Log4j shell](/next/config/reference-configuration-log4j-shell)
-- [Standalone](/next/config/reference-configuration-standalone)
-- [WebSocket](/next/config/reference-configuration-websocket)
-- [Pulsar proxy](/next/config/reference-configuration-pulsar-proxy)
-- [ZooKeeper](/next/config/reference-configuration-zookeeper)
+- [BookKeeper](/@pulsar:version_reference@/config/reference-configuration-bookkeeper)
+- [Broker](/@pulsar:version_reference@/config/reference-configuration-broker)
+- [Client](/@pulsar:version_reference@/config/reference-configuration-client)
+- [Log4j](/@pulsar:version_reference@/config/reference-configuration-log4j)
+- [Log4j shell](/@pulsar:version_reference@/config/reference-configuration-log4j-shell)
+- [Standalone](/@pulsar:version_reference@/config/reference-configuration-standalone)
+- [WebSocket](/@pulsar:version_reference@/config/reference-configuration-websocket)
+- [Pulsar proxy](/@pulsar:version_reference@/config/reference-configuration-pulsar-proxy)
+- [ZooKeeper](/@pulsar:version_reference@/config/reference-configuration-zookeeper)
 
 ### Override client configurations
 
diff --git a/versioned_docs/version-2.11.x/getting-started-docker.md b/versioned_docs/version-2.11.x/getting-started-docker.md
index 32a623a609d..ddc2b403426 100644
--- a/versioned_docs/version-2.11.x/getting-started-docker.md
+++ b/versioned_docs/version-2.11.x/getting-started-docker.md
@@ -54,7 +54,7 @@ If you're running a local standalone cluster, you can use one of these root URLs
 * `pulsar://localhost:6650`
 * `http://localhost:8080`
 
-The following example guides you to get started with Pulsar by using the [Python client API](client-libraries-python.md).
+The following example guides you to get started with Pulsar by using the [Python client API](@pulsar:apidoc:python@).
 
 Install the Pulsar Python client library directly from [PyPI](https://pypi.org/project/pulsar-client/):
 
diff --git a/versioned_docs/version-2.11.x/pulsar-api-overview.md b/versioned_docs/version-2.11.x/pulsar-api-overview.md
index bd9969fc5b2..a04b5b50ed9 100644
--- a/versioned_docs/version-2.11.x/pulsar-api-overview.md
+++ b/versioned_docs/version-2.11.x/pulsar-api-overview.md
@@ -29,5 +29,5 @@ Audiences|Developers|DevOps
 Goals|Build applications with Pulsar|Administer Pulsar clusters
 Use cases|Pulsar client APIs help you create applications that rely on real-time data. <br/><br/> For example, you can build a financial application to handle fraud alerts or an eCommerce application that creates recommendations based on user activities.| Pulsar administration APIs let you administer the entire Pulsar instance, including clusters, tenants, namespaces, and topics, from a single endpoint. <br/><br/> For example, you can configure security and compliance, or get information [...]
 Key features|- Process data with producers, consumers, readers, and TableView <br/><br/> - Secure data with authentication and authorization <br/><br/> - Protect data with transactions and schema <br/><br/> - Stabilize data with cluster-level auto failover | - Configure authentication and authorization <br/><br/> - Set data retention and resource isolation policies <br/><br/> - Facilitate workflow of application development<br/><br/> - Troubleshoot Pulsar
-Interfaces | - [Java client API](client-libraries-java.md) <br/><br/> - [C++ client API](client-libraries-cpp.md) <br/><br/> - [Python client API](client-libraries-python.md) <br/><br/> -  [Go client API](client-libraries-go.md) <br/><br/> - [Node.js client API](client-libraries-node.md) <br/><br/> - [WebSocket client API](client-libraries-websocket.md) <br/><br/> - [C# client API](client-libraries-dotnet.md) | - [Java admin API](admin-api-overview.md) <br/><br/> - [REST API](reference-r [...]
+Interfaces | - [Java client API](/api/client/) <br/><br/> - [C++ client API](@pulsar:apidoc:cpp@) <br/><br/> - [Python client API](@pulsar:apidoc:python@) <br/><br/> -  [Go client API](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar) <br/><br/> - [Node.js client API](client-libraries-node.md) <br/><br/> - [WebSocket client API](client-libraries-websocket.md#api-reference) <br/><br/> - [C# client API](client-libraries-dotnet.md) | - [Java admin API](admin-api-overview.md) <br [...]
 
diff --git a/versioned_docs/version-2.11.x/standalone-docker.md b/versioned_docs/version-2.11.x/standalone-docker.md
index 7acbc58938a..32f303b799f 100644
--- a/versioned_docs/version-2.11.x/standalone-docker.md
+++ b/versioned_docs/version-2.11.x/standalone-docker.md
@@ -49,7 +49,7 @@ use one of these root URLs to interact with your cluster:
 * `pulsar://localhost:6650`
 * `http://localhost:8080`
 
-The following example will guide you to get started with Pulsar quickly by using the [Python client API](client-libraries-python.md).
+The following example will guide you to get started with Pulsar quickly by using the [Python client API](@pulsar:apidoc:python@).
 
 Install the Pulsar Python client library directly from [PyPI](https://pypi.org/project/pulsar-client/):