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

popduke pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bifromq-sites.git

commit 2178ea665a2e9639abe3f67facf36f4b918928b3
Author: Yonny Hao <[email protected]>
AuthorDate: Tue Dec 2 14:11:57 2025 +0800

    update configmanual/sysprops/settings pages
---
 .../admin_guide/configuration/bifromq_sys_props.md |  56 ++---
 .../configuration/config_file_manual.md            | 275 ++++++++++++++-------
 docs/get_started/quick_install.md                  |   3 +-
 docs/plugin/setting_provider/1_tenantsetting.md    |  72 +++---
 4 files changed, 255 insertions(+), 151 deletions(-)

diff --git a/docs/admin_guide/configuration/bifromq_sys_props.md 
b/docs/admin_guide/configuration/bifromq_sys_props.md
index e7cddef9..275ebb80 100644
--- a/docs/admin_guide/configuration/bifromq_sys_props.md
+++ b/docs/admin_guide/configuration/bifromq_sys_props.md
@@ -9,31 +9,31 @@ For example, setting `-Dmqtt_utf8_sanity_check=false` 
disables the check for MQT
 
 Below is a table listing the system properties supported by the current 
version:
 
-| Property Key                                  | Default Value         | 
Description                                                                     
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| --------------------------------------------- | --------------------- | 
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 [...]
-| `client_redirect_check_interval_seconds`      | 600                   | The 
client redirection check interval in seconds                                    
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `cluster_domain_resolve_timeout_seconds`      | 120                   | This 
parameter specifies the timeout duration for DNS resolution when constructing a 
cluster using the "clusterConfig.clusterDomainName". The process involves 
resolving the cluster domain to discover seed nodes that can join the cluster. 
A successful resolution is marked by obtaining a non-empty set of IP addresses. 
This parameter controls the maximum amount of time allowed for this DNS 
resolution to complete succe [...]
-| `control_plane_burst_latency_ms`              | 5000L                 | The 
max latency in milliseconds tolerated for the control plane burst.              
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `data_plane_burst_latency_ms`                 | 5000L                 | The 
max latency in milliseconds tolerated for the data plane burst.                 
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `dist_server_dist_worker_call_queues`         | CPU cores             | 
Number of dist worker call queues.                                              
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `dist_worker_inline_fanout_threshold`         | 1000                  | The 
threshold of the fanout to be executed in calling thread                        
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `dist_worker_fanout_parallelism`              | Max(2, CPU cores)     | 
Parallelism level for fanout operations.                                        
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `dist_worker_fanout_split_threshold`          | 100000                | 
Threshold for splitting fanout operations when fanout split hinter enabled.     
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `dist_worker_load_estimation_window_seconds`  | 5L                    | Time 
window in seconds for load estimation when fanout split hinter enabled.         
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
-| `dist_worker_match_parallelism`               | Max(2, CPU cores / 2) | 
Parallelism level for match operations.                                         
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `dist_worker_max_cached_subs_per_tenant`      | 200_000L              | 
Maximum cached subscriptions per tenant.                                        
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `dist_worker_topic_match_expiry_seconds`      | 5                     | 
Expiry time in seconds for topic matches.                                       
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `inbox_check_queues_per_range`                | 1                     | 
Number of check queues per range.                                               
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `inbox_deliverers`                            | 100                   | 
Number of inbox deliverers.                                                     
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `inbox_fetch_queues_per_range`                | Max(1, CPU cores / 4) | 
Number of fetch queues per range.                                               
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `inbox_store_load_estimation_window_seconds`  | 5L                    | Time 
window in seconds for load estimation in inbox store.                           
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
-| `ingress_slowdown_direct_memory_usage`        | 0.95                  | 
Threshold for slowing down the acceptance of ingress traffic based on direct 
memory usage. When the direct memory usage exceeds this threshold, the system 
will begin to slow down incoming traffic to manage resource consumption 
effectively.                                                                    
                                                                                
                                [...]
-| `ingress_slowdown_heap_memory_usage`          | 0.9                   | 
Threshold for slowing down the acceptance of ingress traffic based on heap 
memory usage. When the heap memory usage exceeds this threshold, the system 
will initiate measures to slow down incoming traffic to prevent memory 
overload.                                                                       
                                                                                
                                     [...]
-| `mqtt_utf8_sanity_check`                      | false                 | 
Enables/disables UTF8 sanity checks according to MQTT-1.5.3.                    
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `max_mqtt3_client_id_length`                  | 65535                 | 
Maximum client ID length for MQTT 3 clients.                                    
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `max_mqtt5_client_id_length`                  | 65535                 | 
Maximum client ID length for MQTT 5 clients.                                    
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `max_slowdown_timeout_seconds`                | 5                     | 
Maximum duration (in seconds) that the slowdown mechanism is allowed to operate 
before further backpressure protection measures are taken. This ensures that if 
the slowdown is not sufficient to manage resource usage, additional steps will 
be implemented to protect the system.                                           
                                                                                
                    [...]
-| `mqtt_deliverers_per_server`                  | CPU cores             | 
Number of MQTT deliverers per server.                                           
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `persistent_session_detach_timeout_second`    | 7200                  | The 
timeout seconds to consider persistent session is probably detached from mqtt 
client.                                                                         
                                                                                
                                                                                
                                                                                
                 [...]
-| `retain_store_load_estimation_window_seconds` | 5L                    | Time 
window in seconds for load estimation in retain store.                          
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
-| `session_register_num`                        | 1000                  | 
Number of concurrent session registers.                                         
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
+| Property Key                               | Default Value         | 
Description                                                                     
                                                           |
+| ------------------------------------------ | --------------------- | 
------------------------------------------------------------------------------------------------------------------------------------------
 |
+| `client_redirect_check_interval_seconds`   | 600                   | The 
client redirection check interval in seconds.                                   
                                                       |
+| `cluster_domain_resolve_timeout_seconds`   | 120L                  | Timeout 
for resolving the cluster domain to discover seed nodes.                        
                                                   |
+| `control_plane_burst_latency_ms`           | 5000L                 | The max 
latency in milliseconds tolerated for the control plane burst.                  
                                                   |
+| `data_plane_burst_latency_ms`              | 5000L                 | The max 
latency in milliseconds tolerated for the data plane burst.                     
                                                   |
+| `dist_server_dist_worker_call_queues`      | CPU cores             | Number 
of dist worker call queues.                                                     
                                                    |
+| `dist_worker_inline_fanout_threshold`      | 1000                  | The 
threshold of the fanout to be executed in the calling thread.                   
                                                       |
+| `dist_worker_fanout_parallelism`           | Max(2, CPU cores / 8) | 
Parallelism level for fanout operations.                                        
                                                           |
+| `dist_worker_cache_fanout_check_seconds`   | 5                     | 
Interval seconds for checking cached routes against fanout related settings.    
                                                           |
+| `dist_worker_match_parallelism`            | Max(2, CPU cores / 2) | 
Parallelism level for match operations.                                         
                                                           |
+| `dist_worker_max_cached_subs_per_tenant`   | 200_000L              | Maximum 
cached subscriptions per tenant.                                                
                                                   |
+| `dist_worker_topic_match_expiry_seconds`   | 60                    | Expiry 
time in seconds for topic matches.                                              
                                                    |
+| `inbox_check_queues_per_range`             | 1                     | Number 
of check queues per range.                                                      
                                                    |
+| `inbox_deliverers`                         | 100                   | Number 
of inbox deliverers.                                                            
                                                    |
+| `inbox_fetch_queues_per_range`             | Max(1, CPU cores / 4) | Number 
of fetch queues per range.                                                      
                                                    |
+| `inbox_meta_cache_expiry_second`           | 300                   | Timeout 
in seconds before cached inbox metadata expires.                                
                                                   |
+| `ingress_slowdown_direct_memory_usage`     | 0.8                   | 
Threshold for slowing down ingress traffic based on direct memory usage.        
                                                           |
+| `ingress_slowdown_heap_memory_usage`       | 0.9                   | 
Threshold for slowing down ingress traffic based on heap memory usage.          
                                                           |
+| `mqtt_utf8_sanity_check`                   | false                 | 
Enables/disables UTF8 sanity checks according to MQTT-1.5.3.                    
                                                           |
+| `max_mqtt3_client_id_length`               | 65535                 | Maximum 
client ID length for MQTT 3 clients.                                            
                                                   |
+| `max_mqtt5_client_id_length`               | 65535                 | Maximum 
client ID length for MQTT 5 clients.                                            
                                                   |
+| `max_slowdown_timeout_seconds`             | 5                     | Maximum 
duration (in seconds) that the slowdown mechanism is allowed to operate before 
further backpressure protection measures are taken. |
+| `mqtt_deliverers_per_server`               | CPU cores             | Number 
of MQTT deliverers per server.                                                  
                                                    |
+| `persistent_session_detach_timeout_second` | 7200                  | The 
timeout seconds to consider persistent session is probably detached from mqtt 
client.                                                  |
+| `session_register_num`                     | 10                    | Number 
of concurrent session registers.                                                
                                                    |
+| `maxActiveDedupChannels`                   | 1024                  | Maximum 
active deduplication channels per session.                                      
                                                   |
+| `maxActiveDedupTopicsPerChannel`           | 10                    | Maximum 
active deduplication topics per channel.                                        
                                                   |
diff --git a/docs/admin_guide/configuration/config_file_manual.md 
b/docs/admin_guide/configuration/config_file_manual.md
index 602e6377..83cf3311 100644
--- a/docs/admin_guide/configuration/config_file_manual.md
+++ b/docs/admin_guide/configuration/config_file_manual.md
@@ -10,80 +10,170 @@ The complete configuration file is defined by a set of 
configuration objects, wi
 
 ## StandaloneConfig
 
-| Configuration Name                                                   | Value 
Type             | Default Value              | Description                     
                                                                                
                                                                                
                                                                                
                                                                              |
-| -------------------------------------------------------------------- | 
---------------------- | -------------------------- | 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 |
-| `authProviderFQN`                                                    | 
String                 | null                       | Fully qualified class 
name of the custom Auth Provider implementation. If not configured, 
authentication and authorization will not be performed.                         
                                                                                
                                                                                
                    |
-| `clientBalancerFQN`                                                  | 
String                 | null                       | Fully qualified class 
name of the custom Client Balancer implementation. If not configured, no active 
redirection happens.                                                            
                                                                                
                                                                                
        |
-| `resourceThrottlerFQN`                                               | 
String                 | null                       | Fully qualified class 
name of the custom Resource Throttler implementation. If not configured, 
resource limiting will not be performed.                                        
                                                                                
                                                                                
               |
-| `settingProviderFQN`                                                 | 
String                 | null                       | Fully qualified class 
name of the custom Setting Provider implementation. If not configured, default 
initial values defined in Settings will be used.                                
                                                                                
                                                                                
         |
-| `clusterConfig.env`                                                  | 
String                 | "Test"                     | Cluster environment name. 
Cluster nodes with different environment names are isolated from each other. 
Cannot be null or an empty string.                                              
                                                                                
                                                                                
       |
-| `clusterConfig.host`                                                 | 
String                 |                            | Communication address of 
the node as a cluster node. If not configured, the actual value is determined 
by the following rules: If the value of `mqttServerConfig.tcpListener.host` is 
not "0.0.0.0", use that value; otherwise, if `rpcServerConfig.host` is 
configured, use that value; otherwise, use the SiteLocal address resolved from 
NetworkInterface. |
-| `clusterConfig.port`                                                 | 
Integer                | 0                          | Communication port number 
of the node as a cluster node. `0` means automatically selecting an unused port 
number. It is recommended to configure a specific port number for nodes with 
the `bootstrap role` to simplify the configuration process.                     
                                                                                
       |
-| `clusterConfig.seedEndpoints`                                        | 
String                 | null                       | Addresses of seed nodes 
to join the cluster, in the form of `ip:port` addresses separated by `,`. It is 
recommended that nodes other than the `bootstrap role` configure the bootstrap 
node address to simplify the configuration process.                             
                                                                                
       |
-| `clusterConfig.clusterDomainName`                                    | 
String                 | null                       | Cluster domain name. 
Specifying the domain name here can further simplify the configuration process 
for cluster nodes when the cluster nodes are registered to a fixed domain name. 
BifroMQ will resolve this domain name to obtain the address of the cluster 
contact nodes.                                                                  
               |
-| `mqttServerConfig.connTimeoutSec`                                    | 
Integer                | 20                         | The tolerable timeout 
duration from establishing a TCP connection to completing the MQTT connection 
operation. If this limit is exceeded, the server will proactively disconnect.   
                                                                                
                                                                                
          |
-| `mqttServerConfig.maxConnPerSec`                                     | 
Integer                | 2000                       | The maximum rate of MQTT 
connection operations accepted per second. Connections exceeding this limit 
will be limited by the token bucket and subsequently disconnected.              
                                                                                
                                                                                
         |
-| `mqttServerConfig.maxDisconnPerSec`                                  | 
Integer                | 1000                       | The maximum rate of 
disconnecting connections per second when the node is gracefully shutting down. 
                                                                                
                                                                                
                                                                                
          |
-| `mqttServerConfig.maxMsgByteSize`                                    | 
Integer                | 262144                     | This parameter is an 
initial setting for establishing a connection and effectively limits the size 
of the MQTT Connect Packet. If a Connect Packet, including the Will Message, 
exceeds this size, the connection will be rejected.                             
                                                                                
              |
-| `mqttServerConfig.maxConnBandwidth`                                  | 
Integer                | 524288                     | The maximum bandwidth 
allowed for a single connection, calculated separately for inbound and outbound 
traffic.                                                                        
                                                                                
                                                                                
        |
-| `mqttServerConfig.defaultKeepAliveSec`                               | 
Integer                | 300                        | The default keep-alive 
duration for connections. When clients do not actively set this, this value is 
used.                                                                           
                                                                                
                                                                                
        |
-| `mqttServerConfig.bossELGThreads`                                    | 
Integer                | 1                          | The number of threads for 
accepting TCP connection requests.                                              
                                                                                
                                                                                
                                                                                
    |
-| `mqttServerConfig.workerELGThreads`                                  | 
Integer                | max(processor cores/2, 2)  | The number of worker 
threads for processing MQTT protocol signaling.                                 
                                                                                
                                                                                
                                                                                
         |
-| `mqttServerConfig.tcpListener.enable`                                | 
Boolean                | true                       | Whether to enable MQTT 
over TCP connection method.                                                     
                                                                                
                                                                                
                                                                                
       |
-| `mqttServerConfig.tcpListener.host`                                  | 
String                 | "0.0.0.0"                  | Communication address for 
MQTT over TCP connection method.                                                
                                                                                
                                                                                
                                                                                
    |
-| `mqttServerConfig.tcpListener.port`                                  | 
Integer                | 1883                       | Communication port for 
MQTT over TCP connection method.                                                
                                                                                
                                                                                
                                                                                
       |
-| `mqttServerConfig.tlsListener.enable`                                | 
Boolean                | false                      | Whether to enable MQTT 
over TLS connection method.                                                     
                                                                                
                                                                                
                                                                                
       |
-| `mqttServerConfig.tlsListener.host`                                  | 
String                 | "0.0.0.0"                  | Communication address for 
MQTT over TLS connection method.                                                
                                                                                
                                                                                
                                                                                
    |
-| `mqttServerConfig.tlsListener.port`                                  | 
Integer                | 1884                       | Communication port for 
MQTT over TLS connection method.                                                
                                                                                
                                                                                
                                                                                
       |
-| `mqttServerConfig.tlsListener.sslConfig`                             | 
ServerSSLContextConfig | null                       | SSL configuration for 
MQTT over TLS connection method. Refer to the settings of the 
ServerSSLContextConfig object.                                                  
                                                                                
                                                                                
                          |
-| `mqttServerConfig.wsListener.enable`                                 | 
Boolean                | true                       | Whether to enable MQTT 
over WebSocket connection method.                                               
                                                                                
                                                                                
                                                                                
       |
-| `mqttServerConfig.wsListener.host`                                   | 
String                 | "0.0.0.0"                  | Communication address for 
MQTT over WebSocket connection method.                                          
                                                                                
                                                                                
                                                                                
    |
-| `mqttServerConfig.wsListener.port`                                   | 
Integer                | 8080                       | Communication port for 
MQTT over WebSocket connection method.                                          
                                                                                
                                                                                
                                                                                
       |
-| `mqttServerConfig.wsListener.wsPath`                                 | 
String                 | "/mqtt"                    | Access path for MQTT over 
WebSocket connection method.                                                    
                                                                                
                                                                                
                                                                                
    |
-| `mqttServerConfig.wssListener.enable`                                | 
Boolean                | false                      | Whether to enable MQTT 
over WebSocket Secure connection method.                                        
                                                                                
                                                                                
                                                                                
       |
-| `mqttServerConfig.wssListener.host`                                  | 
String                 | "0.0.0.0"                  | Communication address for 
MQTT over WebSocket Secure connection method.                                   
                                                                                
                                                                                
                                                                                
    |
-| `mqttServerConfig.wssListener.port`                                  | 
Integer                | 8443                       | Communication port for 
MQTT over WebSocket Secure connection method.                                   
                                                                                
                                                                                
                                                                                
       |
-| `mqttServerConfig.wssListener.wsPath`                                | 
String                 | "/mqtt"                    | Access path for MQTT over 
WebSocket Secure connection method.                                             
                                                                                
                                                                                
                                                                                
    |
-| `mqttServerConfig.wssListener.sslConfig`                             | 
ServerSSLContextConfig | null                       | SSL configuration for 
MQTT over WebSocket Secure connection method. Refer to the settings of the 
ServerSSLContextConfig object.                                                  
                                                                                
                                                                                
             |
-| `rpcClientConfig.workerThreads` , `baseKVClientConfig.workerThreads` | 
Integer                | processor cores            | The number of worker 
threads when communicating between nodes as a client via RPC.                   
                                                                                
                                                                                
                                                                                
         |
-| `rpcClientConfig.enableSSL`,`baseKVClientConfig.enableSSL`           | 
SSLContextConfig       | false                      | Enable SSL at client 
side.                                                                           
                                                                                
                                                                                
                                                                                
         |
-| `rpcClientConfig.sslConfig`,`baseKVClientConfig.sslConfig`           | 
SSLContextConfig       | null                       | SSL configuration when 
Secure RPC is enabled. Refer to the settings of the SSLContextConfig object.    
                                                                                
                                                                                
                                                                                
       |
-| `rpcServerConfig.host`,`baseKVServerConfig.host`                     | 
String                 |                            | See the rule description 
for ClusterConfig.host.                                                         
                                                                                
                                                                                
                                                                                
     |
-| `rpcServerConfig.port`,`baseKVServerConfig.port`                     | 
Integer                | 0                          | See the rule description 
for ClusterConfig.port.                                                         
                                                                                
                                                                                
                                                                                
     |
-| `rpcServerConfig.workerThreads`,`baseKVServerConfig.workerThreads`   | 
Integer                | 2                          | The number of worker 
threads when communicating between nodes as a server via RPC.                   
                                                                                
                                                                                
                                                                                
         |
-| `rpcServerConfig.enableSSL`,`baseKVServerConfig.enableSSL`           | 
ServerSSLContextConfig | false                      | Enable SSL at server side 
                                                                                
                                                                                
                                                                                
                                                                                
    |
-| `rpcServerConfig.sslConfig`,`baseKVServerConfig.sslConfig`           | 
ServerSSLContextConfig | null                       | SSL configuration when 
Secure RPC is enabled. Refer to the settings of the ServerSSLContextConfig 
object.                                                                         
                                                                                
                                                                                
            |
-| `stateStoreConfig.queryThreads`                                      | 
Integer                | min(available cores/2, 2)  | The number of threads for 
the built-in state storage service to execute query type requests.              
                                                                                
                                                                                
                                                                                
    |
-| `stateStoreConfig.tickerThreads`                                     | 
Integer                | min(available cores/20, 1) | The number of threads for 
the built-in state storage service to perform periodic tick operations.         
                                                                                
                                                                                
                                                                                
    |
-| `stateStoreConfig.bgWorkerThreads`                                   | 
Integer                | min(available cores/4, 1)  | The number of threads for 
the built-in state storage service to perform background operations.            
                                                                                
                                                                                
                                                                                
    |
-| `stateStoreConfig.distWorkerConfig.queryPipelinePerStore`            | 
Integer                | 1000                       | The number of 
queryPipelines for the Dist Worker state storage service.                       
                                                                                
                                                                                
                                                                                
                |
-| `stateStoreConfig.distWorkerConfig.compactWALThreshold`              | 
Integer                | 2500                       | The maximum number of 
logs before a compaction operation is performed in the Dist Worker state 
storage service.                                                                
                                                                                
                                                                                
               |
-| `stateStoreConfig.distWorkerConfig.dataEngineConfig`                 | 
StorageEngineConfig    |                            | Data storage engine 
configuration for the Dist Worker state storage service. Refer to the settings 
of the StorageEngineConfig object.                                              
                                                                                
                                                                                
           |
-| `stateStoreConfig.distWorkerConfig.walEngineConfig`                  | 
StorageEngineConfig    |                            | WAL storage engine 
configuration for the Dist Worker state storage service. Refer to the settings 
of the StorageEngineConfig object.                                              
                                                                                
                                                                                
            |
-| `stateStoreConfig.distWorkerConfig.balanceConfig`                    | 
BalancerOptions        |                            | Balancer configuration 
for the Dist Worker state storage service. Refer to the settings of the 
BalancerOptions object.                                                         
                                                                                
                                                                                
               |
-| `inboxStoreConfig.queryPipelinePerStore`                             | 
Integer                | 100                        | The number of 
queryPipelines for the Inbox Store state storage service.                       
                                                                                
                                                                                
                                                                                
                |
-| `inboxStoreConfig.compactWALThreshold`                               | 
Integer                | 2500                       | The maximum number of 
logs before a compaction operation is performed in the Inbox Store state 
storage service.                                                                
                                                                                
                                                                                
               |
-| `inboxStoreConfig.gcIntervalSeconds`                                 | 
Integer                | 600                        | The interval (in seconds) 
for recycling expired Session data in the Inbox Store.                          
                                                                                
                                                                                
                                                                                
    |
-| `inboxStoreConfig.dataEngineConfig`                                  | 
StorageEngineConfig    |                            | Data storage engine 
configuration for the Inbox Store state storage service. Refer to the settings 
of the StorageEngineConfig object.                                              
                                                                                
                                                                                
           |
-| `inboxStoreConfig.walEngineConfig`                                   | 
StorageEngineConfig    |                            | WAL storage engine 
configuration for the Inbox Store state storage service. Refer to the settings 
of the StorageEngineConfig object.                                              
                                                                                
                                                                                
            |
-| `inboxStoreConfig.balanceConfig`                                     | 
BalancerOptions        |                            | Balancer configuration 
for the Inbox Store state storage service. Refer to the settings of the 
BalancerOptions object.                                                         
                                                                                
                                                                                
               |
-| `retainStoreConfig.queryPipelinePerStore`                            | 
Integer                | 100                        | The number of 
queryPipelines for the Retain Store state storage service.                      
                                                                                
                                                                                
                                                                                
                |
-| `retainStoreConfig.compactWALThreshold`                              | 
Integer                | 2500                       | The maximum number of 
logs before a compaction operation is performed in the Retain Store state 
storage service.                                                                
                                                                                
                                                                                
              |
-| `retainStoreConfig.gcIntervalSeconds`                                | 
Integer                | 600                        | The interval (in seconds) 
for recycling expired data in the Retain Store.                                 
                                                                                
                                                                                
                                                                                
    |
-| `retainStoreConfig.dataEngineConfig`                                 | 
StorageEngineConfig    |                            | Data storage engine 
configuration for the Retain Store state storage service. Refer to the settings 
of the StorageEngineConfig object.                                              
                                                                                
                                                                                
          |
-| `retainStoreConfig.walEngineConfig`                                  | 
StorageEngineConfig    |                            | WAL storage engine 
configuration for the Retain Store state storage service. Refer to the settings 
of the StorageEngineConfig object.                                              
                                                                                
                                                                                
           |
-| `retainStoreConfig.balanceConfig`                                    | 
BalancerOptions        |                            | Balancer configuration 
for the Retain Store state storage service. Refer to the settings of the 
BalancerOptions object.                                                         
                                                                                
                                                                                
              |
-| `apiServerConfig.enable`                                             | 
Boolean                | true                       | Whether to enable HTTP 
API access.                                                                     
                                                                                
                                                                                
                                                                                
       |
-| `apiServerConfig.host`                                               | 
String                 | null                       | Access address for the 
HTTP API. If not configured, the same rule as ClusterConfig.host is used to 
determine the address.                                                          
                                                                                
                                                                                
           |
-| `apiServerConfig.httpPort`                                           | 
Integer                | 8091                       | Access port for the HTTP 
API.                                                                            
                                                                                
                                                                                
                                                                                
     |
-| `apiServerConfig.apiBossThreads`                                     | 
Integer                | 1                          | The number of threads for 
handling HTTP API TCP connection requests.                                      
                                                                                
                                                                                
                                                                                
    |
-| `apiServerConfig.apiWorkerThreads`                                   | 
Integer                | 2                          | The number of worker 
threads for processing HTTP API requests.                                       
                                                                                
                                                                                
                                                                                
         |
-| `apiServerConfig.httpsListenerConfig.enable`                         | 
Boolean                | false                      | Whether to enable HTTPS 
API access.                                                                     
                                                                                
                                                                                
                                                                                
      |
-| `apiServerConfig.httpsListenerConfig.host`                           | 
String                 | null                       | Access address for the 
HTTPS API. If not configured, the same rule as ClusterConfig.host is used to 
determine the address.                                                          
                                                                                
                                                                                
          |
-| `apiServerConfig.httpsListenerConfig.port`                           | 
Integer                | 8090                       | Access port for the HTTPS 
API.                                                                            
                                                                                
                                                                                
                                                                                
    |
-| `apiServerConfig.httpsListenerConfig.sslConfig`                      | 
ServerSSLContextConfig | null                       | SSL configuration for the 
HTTPS API. Refer to the settings of the ServerSSLContextConfig object.          
                                                                                
                                                                                
                                                                                
    |
-
-## SSLContextConfig && ServerSSLContextConfig
+| Configuration Name           | Value Type | Default Value                    
                                                  | Description                 
                                                                                
                                          |
+| ---------------------------- | ---------- | 
----------------------------------------------------------------------------------
 | 
-----------------------------------------------------------------------------------------------------------------------------------------------------
 |
+| `authProviderFQN`            | String     | null                             
                                                  | Fully qualified class name 
of the custom Auth Provider implementation. If not configured, authentication 
and authorization will not be performed.     |
+| `clientBalancerFQN`          | String     | null                             
                                                  | Fully qualified class name 
of the custom Client Balancer implementation. If not configured, no active 
redirection happens.                            |
+| `resourceThrottlerFQN`       | String     | null                             
                                                  | Fully qualified class name 
of the custom Resource Throttler implementation. If not configured, resource 
limiting will not be performed.               |
+| `settingProviderFQN`         | String     | null                             
                                                  | Fully qualified class name 
of the custom Setting Provider implementation. If not configured, default 
initial values defined in Settings will be used. |
+| `bgTaskThreads`              | Integer    | max(available processor cores/4, 
1)                                                | Threads reserved for the 
starter's background task executor.                                             
                                             |
+| `clusterConfig.*`            | Object     | See 
[ClusterConfig](#clusterconfig-clusterconfig)                                  
| Cluster join and addressing options.                                          
                                                                        |
+| `rpcConfig.*`                | Object     | See 
[RPCConfig](#rpcconfig-rpcconfig)                                              
| RPC client/server options.                                                    
                                                                        |
+| `mqttServiceConfig.*`        | Object     | See 
[MQTTServiceConfig](#mqttserviceconfig-mqttserviceconfig)                      
| MQTT service settings.                                                        
                                                                        |
+| `distServiceConfig.*`        | Object     | See 
[DistServiceConfig](#distserviceconfig-distserviceconfig)                      
| Dist service settings.                                                        
                                                                        |
+| `inboxServiceConfig.*`       | Object     | See 
[InboxServiceConfig](#inboxserviceconfig-inboxserviceconfig)                   
| Inbox service settings.                                                       
                                                                        |
+| `retainServiceConfig.*`      | Object     | See 
[RetainServiceConfig](#retainserviceconfig-retainserviceconfig)                
| Retain service settings.                                                      
                                                                        |
+| `sessionDictServiceConfig.*` | Object     | See 
[SessionDictServiceConfig](#sessiondictserviceconfig-sessiondictserviceconfig) 
| Session dictionary service settings.                                          
                                                                        |
+| `apiServerConfig.*`          | Object     | See 
[APIServerConfig](#apiserverconfig-apiserverconfig)                            
| API server settings.                                                          
                                                                        |
+
+### ClusterConfig (`clusterConfig.*`)
+
+| Configuration Name                | Value Type | Default Value | Description 
                                                                                
                                                                                
                                                         |
+| --------------------------------- | ---------- | ------------- | 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 |
+| `clusterConfig.env`               | String     | ""            | Cluster 
environment name. Cluster nodes with different environment names are isolated 
from each other. Cannot be null or empty.                                       
                                                               |
+| `clusterConfig.host`              | String     | null          | 
Communication address of the node as a cluster node. Resolution order: if 
`mqttServiceConfig.server.tcpListener.host` is not "0.0.0.0", use it; else if 
`rpcConfig.host` is set, use it; else use the SiteLocal address of the host. |
+| `clusterConfig.port`              | Integer    | 0             | 
Communication port number of the node as a cluster node. `0` selects a free 
port. For bootstrap nodes, configure a fixed port.                              
                                                                         |
+| `clusterConfig.seedEndpoints`     | String     | null          | Seed node 
addresses to join the cluster, formatted as `ip:port` and separated by commas. 
Non-bootstrap nodes should point to a bootstrap node.                           
                                                            |
+| `clusterConfig.clusterDomainName` | String     | null          | Cluster 
domain name. If set, BifroMQ resolves the domain to find cluster contact nodes, 
simplifying fixed-domain deployments.                                           
                                                             |
+
+### RPCConfig (`rpcConfig.*`)
+
+| Configuration Name                 | Value Type                              
                                | Default Value                       | 
Description                                                                     
                    |
+| ---------------------------------- | 
----------------------------------------------------------------------- | 
----------------------------------- | 
---------------------------------------------------------------------------------------------------
 |
+| `rpcConfig.host`                   | String                                  
                                | null                                | Host 
used for intra-cluster RPC. If null, follows the same host resolution rule as 
`clusterConfig`. |
+| `rpcConfig.port`                   | Integer                                 
                                | 0                                   | RPC 
server port. `0` lets the system pick a free port.                              
                |
+| `rpcConfig.enableSSL`              | Boolean                                 
                                | false                               | Whether 
to enable TLS for RPC.                                                          
            |
+| `rpcConfig.clientEventLoopThreads` | Integer                                 
                                | max(4, available processor cores/8) | Netty 
client event-loop threads for RPC clients.                                      
              |
+| `rpcConfig.serverEventLoopThreads` | Integer                                 
                                | max(4, available processor cores/8) | Netty 
server event-loop threads for RPC servers.                                      
              |
+| `rpcConfig.clientSSLConfig`        | See 
[SSLContextConfig](#sslcontextconfig--serversslcontextconfig)       | null      
                          | TLS settings for RPC clients (used when `enableSSL` 
is true).                                       |
+| `rpcConfig.serverSSLConfig`        | See 
[ServerSSLContextConfig](#sslcontextconfig--serversslcontextconfig) | null      
                          | TLS settings for RPC servers (used when `enableSSL` 
is true).                                       |
+
+### MQTTServiceConfig (`mqttServiceConfig.*`)
+
+| Configuration Name                                          | Value Type     
                                                         | Default Value        
               | Description                                                    
                        |
+| ----------------------------------------------------------- | 
----------------------------------------------------------------------- | 
----------------------------------- | 
--------------------------------------------------------------------------------------
 |
+| `mqttServiceConfig.client.workerThreads`                    | Integer        
                                                         | 0                    
               | Worker threads for MQTT internal clients (0 = use caller 
thread).                      |
+| `mqttServiceConfig.server.enable`                           | Boolean        
                                                         | true                 
               | Whether to enable the MQTT server.                             
                        |
+| `mqttServiceConfig.server.connTimeoutSec`                   | Integer        
                                                         | 20                   
               | Timeout from TCP connect to MQTT CONNECT completion; exceeded 
connections are closed.  |
+| `mqttServiceConfig.server.maxConnPerSec`                    | Integer        
                                                         | 2000                 
               | Max MQTT connect operations per second; excess connections are 
throttled/disconnected. |
+| `mqttServiceConfig.server.maxDisconnPerSec`                 | Integer        
                                                         | 1000                 
               | Max disconnect operations per second during graceful shutdown. 
                        |
+| `mqttServiceConfig.server.maxMsgByteSize`                   | Integer        
                                                         | 262144               
               | Max MQTT CONNECT packet size (including Will); larger packets 
are rejected.            |
+| `mqttServiceConfig.server.maxConnBandwidth`                 | Integer        
                                                         | 524288               
               | Max per-connection bandwidth (inbound/outbound), in bytes per 
second.                  |
+| `mqttServiceConfig.server.bossELGThreads`                   | Integer        
                                                         | 1                    
               | Netty boss threads for accepting MQTT TCP connections.         
                        |
+| `mqttServiceConfig.server.workerELGThreads`                 | Integer        
                                                         | max(available 
processor cores/2, 2) | Netty worker threads for MQTT protocol processing.      
                               |
+| `mqttServiceConfig.server.userPropsCustomizerFactoryConfig` | `Map<String, 
Struct>`                                                   | {}                 
                 | Customizer factory settings for MQTT 5 user properties.      
                          |
+| `mqttServiceConfig.server.tcpListener.enable`               | Boolean        
                                                         | true                 
               | Enable MQTT over TCP.                                          
                        |
+| `mqttServiceConfig.server.tcpListener.host`                 | String         
                                                         | "0.0.0.0"            
               | Listen address for MQTT over TCP.                              
                        |
+| `mqttServiceConfig.server.tcpListener.port`                 | Integer        
                                                         | 1883                 
               | Listen port for MQTT over TCP.                                 
                        |
+| `mqttServiceConfig.server.tlsListener.enable`               | Boolean        
                                                         | false                
               | Enable MQTT over TLS.                                          
                        |
+| `mqttServiceConfig.server.tlsListener.host`                 | String         
                                                         | null                 
               | Listen address for MQTT over TLS (defaults to resolved host 
when null).                |
+| `mqttServiceConfig.server.tlsListener.port`                 | Integer        
                                                         | 1884                 
               | Listen port for MQTT over TLS.                                 
                        |
+| `mqttServiceConfig.server.tlsListener.sslConfig`            | See 
[ServerSSLContextConfig](#sslcontextconfig--serversslcontextconfig) | null      
                          | TLS settings for MQTT over TLS.                     
                                   |
+| `mqttServiceConfig.server.wsListener.enable`                | Boolean        
                                                         | true                 
               | Enable MQTT over WebSocket.                                    
                        |
+| `mqttServiceConfig.server.wsListener.host`                  | String         
                                                         | null                 
               | Listen address for MQTT over WebSocket (defaults to resolved 
host when null).          |
+| `mqttServiceConfig.server.wsListener.port`                  | Integer        
                                                         | 8080                 
               | Listen port for MQTT over WebSocket.                           
                        |
+| `mqttServiceConfig.server.wsListener.wsPath`                | String         
                                                         | "/mqtt"              
               | WebSocket path for MQTT over WebSocket.                        
                        |
+| `mqttServiceConfig.server.wssListener.enable`               | Boolean        
                                                         | false                
               | Enable MQTT over WebSocket Secure.                             
                        |
+| `mqttServiceConfig.server.wssListener.host`                 | String         
                                                         | null                 
               | Listen address for MQTT over WebSocket Secure (defaults to 
resolved host when null).   |
+| `mqttServiceConfig.server.wssListener.port`                 | Integer        
                                                         | 8443                 
               | Listen port for MQTT over WebSocket Secure.                    
                        |
+| `mqttServiceConfig.server.wssListener.wsPath`               | String         
                                                         | "/mqtt"              
               | WebSocket path for MQTT over WebSocket Secure.                 
                        |
+| `mqttServiceConfig.server.wssListener.sslConfig`            | See 
[ServerSSLContextConfig](#sslcontextconfig--serversslcontextconfig) | null      
                          | TLS settings for MQTT over WebSocket Secure.        
                                   |
+
+### DistServiceConfig (`distServiceConfig.*`)
+
+| Configuration Name                                     | Value Type          
                            | Default Value                                 | 
Description                                                                     
      |
+| ------------------------------------------------------ | 
----------------------------------------------- | 
--------------------------------------------- | 
-------------------------------------------------------------------------------------
 |
+| `distServiceConfig.client.workerThreads`               | Integer             
                            | 0                                             | 
Worker threads for Dist client.                                                 
      |
+| `distServiceConfig.server.enable`                      | Boolean             
                            | true                                          | 
Whether to enable Dist server.                                                  
      |
+| `distServiceConfig.server.workerThreads`               | Integer             
                            | max(2, available processor cores/4)           | 
Dist server worker threads (0 = run on caller thread).                          
      |
+| `distServiceConfig.server.attributes`                  | 
`Map<String,String>`                            | {}                            
                | Custom attributes attached to Dist server nodes.              
                        |
+| `distServiceConfig.server.defaultGroups`               | `Set<String>`       
                            | []                                            | 
Default groups served by this Dist server.                                      
      |
+| `distServiceConfig.workerClient.workerThreads`         | Integer             
                            | max(2, available processor cores/4)           | 
Worker client threads for Dist worker communication.                            
      |
+| `distServiceConfig.workerClient.queryPipelinePerStore` | Integer             
                            | 1000                                          | 
Query pipelines per Dist store.                                                 
      |
+| `distServiceConfig.worker.enable`                      | Boolean             
                            | true                                          | 
Whether to enable Dist worker.                                                  
      |
+| `distServiceConfig.worker.workerThreads`               | Integer             
                            | 0                                             | 
Dist worker threads (0 = use caller thread).                                    
      |
+| `distServiceConfig.worker.tickerThreads`               | Integer             
                            | max(1, available processor cores/20)          | 
Background ticker threads.                                                      
      |
+| `distServiceConfig.worker.maxWALFetchSize`             | Integer             
                            | 10MB                                          | 
Max WAL fetch size in bytes.                                                    
      |
+| `distServiceConfig.worker.compactWALThreshold`         | Integer             
                            | 256MB                                         | 
WAL compaction threshold in bytes.                                              
      |
+| `distServiceConfig.worker.minGCIntervalSeconds`        | Integer             
                            | 30                                            | 
Minimum GC interval in seconds.                                                 
      |
+| `distServiceConfig.worker.maxGCIntervalSeconds`        | Integer             
                            | 86400                                         | 
Maximum GC interval in seconds.                                                 
      |
+| `distServiceConfig.worker.dataEngineConfig`            | See 
[StorageEngineConfig](#storageengineconfig) | rocksdb with default settings for 
data engine | Data store engine settings for Dist worker.                       
                    |
+| `distServiceConfig.worker.walEngineConfig`             | See 
[StorageEngineConfig](#storageengineconfig) | rocksdb with default settings for 
wal engine  | WAL store engine settings for Dist worker.                        
                    |
+| `distServiceConfig.worker.balanceConfig`               | See 
[BalancerOptions](#balanceroptions)         | Default balancers for dist worker 
            | Balancer settings for Dist worker.                                
                    |
+| `distServiceConfig.worker.splitHinterConfig`           | See 
[SplitHinterOptions](#splithinteroptions)   | Default split hinters for dist 
worker         | Split hinter settings for Dist worker. See 
[SplitHinterOptions](#splithinteroptions). |
+| `distServiceConfig.worker.attributes`                  | 
`Map<String,String>`                            | \{\}                          
                | Custom attributes attached to Dist worker.                    
                        |
+
+### InboxServiceConfig (`inboxServiceConfig.*`)
+
+| Configuration Name                                     | Value Type          
                            | Default Value                                 | 
Description                                                                     
      |
+| ------------------------------------------------------ | 
----------------------------------------------- | 
--------------------------------------------- | 
-------------------------------------------------------------------------------------
 |
+| `inboxServiceConfig.client.workerThreads`              | Integer             
                            | 0                                             | 
Worker threads for Inbox client.                                                
      |
+| `inboxServiceConfig.server.enable`                     | Boolean             
                            | true                                          | 
Whether to enable Inbox server.                                                 
      |
+| `inboxServiceConfig.server.workerThreads`              | Integer             
                            | max(2, available processor cores/4)           | 
Inbox server worker threads.                                                    
      |
+| `inboxServiceConfig.server.attributes`                 | 
`Map<String,String>`                            | {}                            
                | Custom attributes attached to Inbox server.                   
                        |
+| `inboxServiceConfig.server.defaultGroups`              | `Set<String>`       
                            | []                                            | 
Default groups served by this Inbox server.                                     
      |
+| `inboxServiceConfig.storeClient.workerThreads`         | Integer             
                            | max(2, available processor cores/4)           | 
Inbox store client worker threads.                                              
      |
+| `inboxServiceConfig.storeClient.queryPipelinePerStore` | Integer             
                            | 1000                                          | 
Query pipelines per Inbox store.                                                
      |
+| `inboxServiceConfig.store.enable`                      | Boolean             
                            | true                                          | 
Whether to enable Inbox store.                                                  
      |
+| `inboxServiceConfig.store.workerThreads`               | Integer             
                            | 0                                             | 
Inbox store worker threads.                                                     
      |
+| `inboxServiceConfig.store.tickerThreads`               | Integer             
                            | max(1, available processor cores/20)          | 
Inbox store ticker threads.                                                     
      |
+| `inboxServiceConfig.store.maxWALFetchSize`             | Integer             
                            | -1                                            | 
Max WAL fetch size in bytes (-1 means no limit).                                
      |
+| `inboxServiceConfig.store.compactWALThreshold`         | Integer             
                            | 256MB                                         | 
WAL compaction threshold in bytes.                                              
      |
+| `inboxServiceConfig.store.expireRateLimit`             | Integer             
                            | 1000                                          | 
Max expired Session cleanup rate per second.                                    
      |
+| `inboxServiceConfig.store.minGCIntervalSeconds`        | Integer             
                            | 30                                            | 
Minimum GC interval in seconds.                                                 
      |
+| `inboxServiceConfig.store.maxGCIntervalSeconds`        | Integer             
                            | 86400                                         | 
Maximum GC interval in seconds.                                                 
      |
+| `inboxServiceConfig.store.dataEngineConfig`            | See 
[StorageEngineConfig](#storageengineconfig) | rocksdb with default settings for 
data engine | Data store engine settings for Inbox store.                       
                    |
+| `inboxServiceConfig.store.walEngineConfig`             | See 
[StorageEngineConfig](#storageengineconfig) | rocksdb with default settings for 
wal engine  | WAL store engine settings for Inbox store.                        
                    |
+| `inboxServiceConfig.store.balanceConfig`               | See 
[BalancerOptions](#balanceroptions)         | Default balancers for inbox store 
            | Balancer settings for Inbox store.                                
                    |
+| `inboxServiceConfig.store.splitHinterConfig`           | See 
[SplitHinterOptions](#splithinteroptions)   | Default split hinter for inbox 
store          | Split hinter settings for Inbox store. See 
[SplitHinterOptions](#splithinteroptions). |
+| `inboxServiceConfig.store.attributes`                  | 
`Map<String,String>`                            | \{\}                          
                | Custom attributes attached to Inbox store.                    
                        |
+
+### RetainServiceConfig (`retainServiceConfig.*`)
+
+| Configuration Name                                      | Value Type         
                             | Default Value                                 | 
Description                                                                     
       |
+| ------------------------------------------------------- | 
----------------------------------------------- | 
--------------------------------------------- | 
--------------------------------------------------------------------------------------
 |
+| `retainServiceConfig.client.workerThreads`              | Integer            
                             | 0                                             | 
Worker threads for Retain client.                                               
       |
+| `retainServiceConfig.server.enable`                     | Boolean            
                             | true                                          | 
Whether to enable Retain server.                                                
       |
+| `retainServiceConfig.server.workerThreads`              | Integer            
                             | max(2, available processor cores/4)           | 
Retain server worker threads.                                                   
       |
+| `retainServiceConfig.server.attributes`                 | 
`Map<String,String>`                            | {}                            
                | Custom attributes attached to Retain server.                  
                         |
+| `retainServiceConfig.server.defaultGroups`              | `Set<String>`      
                             | []                                            | 
Default groups served by this Retain server.                                    
       |
+| `retainServiceConfig.storeClient.workerThreads`         | Integer            
                             | max(2, available processor cores/4)           | 
Retain store client worker threads.                                             
       |
+| `retainServiceConfig.storeClient.queryPipelinePerStore` | Integer            
                             | 1000                                          | 
Query pipelines per Retain store.                                               
       |
+| `retainServiceConfig.store.enable`                      | Boolean            
                             | true                                          | 
Whether to enable Retain store.                                                 
       |
+| `retainServiceConfig.store.workerThreads`               | Integer            
                             | 0                                             | 
Retain store worker threads.                                                    
       |
+| `retainServiceConfig.store.tickerThreads`               | Integer            
                             | max(1, available processor cores/20)          | 
Retain store ticker threads.                                                    
       |
+| `retainServiceConfig.store.maxWALFetchSize`             | Integer            
                             | 50MB                                          | 
Max WAL fetch size in bytes.                                                    
       |
+| `retainServiceConfig.store.compactWALThreshold`         | Integer            
                             | 256MB                                         | 
WAL compaction threshold in bytes.                                              
       |
+| `retainServiceConfig.store.gcIntervalSeconds`           | Integer            
                             | 600                                           | 
GC interval in seconds.                                                         
       |
+| `retainServiceConfig.store.dataEngineConfig`            | See 
[StorageEngineConfig](#storageengineconfig) | rocksdb with default settings for 
data engine | Data store engine settings for Retain store.                      
                     |
+| `retainServiceConfig.store.walEngineConfig`             | See 
[StorageEngineConfig](#storageengineconfig) | rocksdb with default settings for 
wal engine  | WAL store engine settings for Retain store.                       
                     |
+| `retainServiceConfig.store.balanceConfig`               | See 
[BalancerOptions](#balanceroptions)         | Default balancers for retain 
store            | Balancer settings for Retain store.                          
                          |
+| `retainServiceConfig.store.splitHinterConfig`           | See 
[SplitHinterOptions](#splithinteroptions)   | Default split hinter for retain 
store         | Split hinter settings for Retain store. See 
[SplitHinterOptions](#splithinteroptions). |
+| `retainServiceConfig.store.attributes`                  | 
`Map<String,String>`                            | \{\}                          
                | Custom attributes attached to Retain store.                   
                         |
+
+### SessionDictServiceConfig (`sessionDictServiceConfig.*`)
+
+| Configuration Name                              | Value Type           | 
Default Value | Description                                                |
+| ----------------------------------------------- | -------------------- | 
------------- | ---------------------------------------------------------- |
+| `sessionDictServiceConfig.client.workerThreads` | Integer              | 0   
          | Worker threads for SessionDict client.                     |
+| `sessionDictServiceConfig.server.enable`        | Boolean              | 
true          | Whether to enable SessionDict server.                      |
+| `sessionDictServiceConfig.server.workerThreads` | Integer              | 0   
          | SessionDict server worker threads (0 = use caller thread). |
+| `sessionDictServiceConfig.server.attributes`    | `Map<String,String>` | 
\{\}          | Custom attributes attached to SessionDict server.          |
+| `sessionDictServiceConfig.server.defaultGroups` | `Set<String>`        | []  
          | Default groups served by this SessionDict server.          |
+
+### APIServerConfig (`apiServerConfig.*`)
+
+| Configuration Name                 | Value Type                              
                                | Default Value | Description                   
                                      |
+| ---------------------------------- | 
----------------------------------------------------------------------- | 
------------- | 
------------------------------------------------------------------- |
+| `apiServerConfig.enable`           | Boolean                                 
                                | true          | Whether to enable HTTP API 
access.                                  |
+| `apiServerConfig.host`             | String                                  
                                | null          | API listen address; if null, 
follows the same host resolution rule. |
+| `apiServerConfig.httpPort`         | Integer                                 
                                | 8091          | HTTP API port.                
                                      |
+| `apiServerConfig.maxContentLength` | Integer                                 
                                | 262144        | Max request body size in 
bytes.                                     |
+| `apiServerConfig.workerThreads`    | Integer                                 
                                | 2             | Worker threads handling HTTP 
API requests.                          |
+| `apiServerConfig.enableSSL`        | Boolean                                 
                                | false         | Whether to enable HTTPS for 
the API.                                |
+| `apiServerConfig.sslConfig`        | See 
[ServerSSLContextConfig](#sslcontextconfig--serversslcontextconfig) | null      
    | TLS settings for the API server when HTTPS is enabled.              |
+
+## SSLContextConfig & ServerSSLContextConfig
 
 SSLContextConfig is used to configure the SSL connection parameters for the 
client, while ServerSSLContextConfig is used to configure the SSL connection 
parameters for the server.
 
@@ -98,25 +188,32 @@ If you leave SSLContextConfig or ServerSSLContextConfig 
set to null while the co
 
 ## StorageEngineConfig
 
-StorageEngineConfig is used to set the configuration parameters for the data 
engine and WAL engine of the built-in state service.
+StorageEngineConfig is used to set the configuration parameters for the data 
engine and WAL engine of the built-in stateful service. The shape of `props` 
depends on the engine type; defaults are applied per service in code.
 
-| Configuration Name        | Value Type | Description                         
                                                                                
                                                                                
                                                                                
      |
-| ------------------------- | ---------- | 
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 |
-| `type`                    | String     | Specifies the type of data engine 
used in the built-in storage service. Options include: rocksdb: Provides 
persistence functionality, allowing state to be recovered after a restart; 
memory: No persistence, data will be lost after a restart.                      
                    |
-| `dataPathRoot`            | String     | Effective when type is set to 
rocksdb. Specifies the directory to store data files. If configured as an 
absolute path, it will be directly loaded; if configured as a relative path, it 
will try to load from the directory specified by the `DATA_DIR` and `user.dir` 
system parameters. |
-| `compactMinTombstoneKeys` | Integer    | Effective when type is set to 
rocksdb. The number of Tombstone keys that trigger a compaction operation.      
                                                                                
                                                                                
            |
-| `compactTombstonePercent` | Double     | Effective when type is set to 
rocksdb. When the number of deleted keys in a specific Range exceeds 
compactMinTombstoneKeys, and the proportion of deleted keys to the total 
exceeds compactTombstonePercent, a compaction operation will be performed on 
this range.                      |
-| `asyncWALFlush`           | Boolean    | Applicable only to the WAL engine, 
whether to enable asynchronous FlushWAL data to disk.                           
                                                                                
                                                                                
       |
-| `fsyncWAL`                | Boolean    | Applicable only to the WAL engine. 
Whether to perform an fsync operation after writing to the WAL. If this flag is 
true, writing speed will be slower. If this flag is false, and the machine 
crashes, some recent writes may be lost.                                        
            |
+| Configuration Name | Value Type            | Default Value             | 
Description                                                                     
                           |
+| ------------------ | --------------------- | ------------------------- | 
----------------------------------------------------------------------------------------------------------
 |
+| `type`             | String                | `rocksdb`                 | 
Storage engine type. `rocksdb` enables persistence; `memory` keeps state in 
memory only (lost on restart). |
+| `props` (rocksdb)  | `Map<String, Object>` | Service-specific defaults | 
Additional selectively exposed RocksDB options. Tune only if you understand 
RocksDB well.                  |
+| `props` (memory)   | `Map<String, Object>` | \{\}                      | No 
options for `memory` currently, normally for testing purpose                    
                        |
 
 ## BalancerOptions
 
-BalancerOptions is used to set the configuration parameters for the Balancer 
of the built-in state service.
+BalancerOptions is used to set the configuration parameters for the Balancer 
of the built-in stateful service.
+
+| Configuration Name     | Value Type            | Default Value               
         | Description                                                          
                                                                                
  |
+| ---------------------- | --------------------- | 
------------------------------------ | 
------------------------------------------------------------------------------------------------------------------------------------------------------
 |
+| `bootstrapDelayInMS`   | Long                  | 15000                       
         | Delay before the balancer starts; helps avoid rebalancing during 
initial bootstrap.                                                              
      |
+| `zombieProbeDelayInMS` | Long                  | 15000                       
         | Interval for probing zombie (stale) replicas.                        
                                                                                
  |
+| `retryDelayInMS`       | Long                  | 5000                        
         | Delay between rebalance retries.                                     
                                                                                
  |
+| `balancers`            | `Map<String, Struct>` | Service-specific defaults 
(see code) | Map of balancer implementation FQNs to their config. Multiple 
balancers can be enabled; defaults are set in each service (Dist/Inbox/Retain) 
per code. |
+
+## SplitHinterOptions
+
+SplitHinterOptions configures how ranges are split for built-in stateful 
services.
 
-| Configuration Name     | Value Type     | Default Value | Description        
                                                                                
                                                                |
-| ---------------------- | -------------- | ------------- | 
------------------------------------------------------------------------------------------------------------------------------------------------------------------
 |
-| `scheduleIntervalInMs` | Long           | 5000          | The interval at 
which the Balancer attempts to balance the load.                                
                                                                   |
-| `balancers`            | List of String |               | The fully 
qualified names of the balancer implementations that are enabled. Different 
balancer implementations can be set for different built-in storage services. |
+| Configuration Name | Value Type            | Default Value                   
     | Description                                                              
                   |
+| ------------------ | --------------------- | 
------------------------------------ | 
-------------------------------------------------------------------------------------------
 |
+| `hinters`          | `Map<String, Struct>` | Service-specific defaults (see 
code) | A map of split hinter implementation FQNs to their config. Multiple 
hinters can be enabled. |
 
-Note: Adjusting the parameters related to StorageEngineConfig and 
BalancerOptions requires an in-depth understanding of the storage engine 
implementation of BifroMQ. Improper configuration may lead to abnormal behavior 
of the state storage
+Note: Adjusting the parameters related to StorageEngineConfig, 
BalancerOptions, and SplitHinterOptions requires an in-depth understanding of 
the storage engine implementation of BifroMQ. Improper configuration may lead 
to abnormal behavior of the state storage
 service.
diff --git a/docs/get_started/quick_install.md 
b/docs/get_started/quick_install.md
index 8e86ac68..9bcb8812 100644
--- a/docs/get_started/quick_install.md
+++ b/docs/get_started/quick_install.md
@@ -8,7 +8,7 @@ title: "Quick Install & Verify"
 For a rapid setup, Docker is recommended:
 
 ```bash
-docker run -d --name bifromq -p 1883:1883 bifromq/bifromq:latest
+docker run -d --name bifromq -p 1883:1883 apache/bifromq:4.0.0-incubating
 ```
 
 For further installation alternatives and comprehensive details, refer to 
[Installation](../installation/intro.md).
@@ -23,7 +23,6 @@ Below are the steps to quickly verify the basic MQTT 
functionality of BifroMQ us
    ![new connection screenshot](./images/newconn.jpg)
 
 3. Fill in the required fields:
-
    - **Name**: Any descriptive name of your choice.
    - **ClientID**: Can be set manually or generated randomly. Must consist of 
"a–z", "0–9", "\_", "-", ≤128 bytes, UTF8 encoded, and unique.
    - **Host**: The connection address, including protocol prefix:
diff --git a/docs/plugin/setting_provider/1_tenantsetting.md 
b/docs/plugin/setting_provider/1_tenantsetting.md
index c4bdbaaa..7b998e62 100644
--- a/docs/plugin/setting_provider/1_tenantsetting.md
+++ b/docs/plugin/setting_provider/1_tenantsetting.md
@@ -20,35 +20,43 @@ deployments.
 
 ## Supported Settings
 
-| Name                             | Type    | Initial Value | Description     
                                                |
-|----------------------------------|---------|---------------|-----------------------------------------------------------------|
-| `MQTT3Enabled`                   | Boolean | true          | Enables or 
disables MQTT version 3.1 support.                   |
-| `MQTT4Enabled`                   | Boolean | true          | Enables or 
disables MQTT version 3.1.1 support.                 |
-| `MQTT5Enabled`                   | Boolean | true          | Enables or 
disables MQTT version 5.0 support.                   |
-| `DebugModeEnabled`               | Boolean | false         | Enables or 
disables debug mode.                                 |
-| `ForceTransient`                 | Boolean | false         | Forces 
transient mode for connections.                          |
-| `ByPassPermCheckError`           | Boolean | true          | Bypasses 
permission check errors.                               |
-| `PayloadFormatValidationEnabled` | Boolean | true          | Enables or 
disables payload format validation.                  |
-| `RetainEnabled`                  | Boolean | true          | Enables or 
disables message retain feature.                     |
-| `WildcardSubscriptionEnabled`    | Boolean | true          | Enables or 
disables wildcard subscriptions.                     |
-| `SubscriptionIdentifierEnabled`  | Boolean | true          | Enables or 
disables subscription identifiers.                   |
-| `SharedSubscriptionEnabled`      | Boolean | true          | Enables or 
disables shared subscriptions.                       |
-| `MaximumQoS`                     | Integer | 2             | Sets the 
maximum QoS level. Valid values: 0, 1, 2.              |
-| `MaxTopicLevelLength`            | Integer | 40            | Maximum length 
of each topic level.                             |
-| `MaxTopicLevels`                 | Integer | 16            | Maximum number 
of topic levels.                                 |
-| `MaxTopicLength`                 | Integer | 255           | Maximum total 
length of a topic.                                |
-| `MaxTopicAlias`                  | Integer | 10            | Maximum number 
of topic aliases.                                |
-| `MaxSharedGroupMembers`          | Integer | 200           | Maximum members 
in a shared subscription group.                 |
-| `MaxTopicFiltersPerInbox`        | Integer | 100           | Maximum topic 
filters per inbox.                                |
-| `MsgPubPerSec`                   | Integer | 200           | Maximum number 
of messages published per second per connection. |
-| `ReceivingMaximum`               | Integer | 200           | Maximum number 
of receiving messages per second per connection. |
-| `InBoundBandWidth`               | Long    | 512 * 1024L   | Maximum inbound 
bandwidth in bytes per connection.              |
-| `OutBoundBandWidth`              | Long    | 512 * 1024L   | Maximum 
outbound bandwidth in bytes per connection.             |
-| `MaxUserPayloadBytes`            | Integer | 256 * 1024    | Maximum user 
payload size in bytes.                             |
-| `MaxResendTimes`                 | Integer | 3             | Maximum times a 
message can be resent when qos is 1 or 2.       |
-| `ResendTimeoutSeconds`           | Integer | 10            | Timeout in 
seconds before a message is considered for resend.   |
-| `MaxTopicFiltersPerSub`          | Integer | 10            | Maximum topic 
filters per subscription.                         |
-| `MaxSessionExpirySeconds`        | Integer | 24 * 60 * 60  | Maximum session 
expiry time in seconds.                         |
-| `SessionInboxSize`               | Integer | 1000          | Maximum size of 
session inbox.                                  |
-| `QoS0DropOldest`                 | Boolean | false         | Whether to drop 
the oldest QoS 0 messages first.                |
-| `RetainMessageMatchLimit`        | Integer | 10            | Limit for 
retained message matches.                             |
\ No newline at end of file
+| Name                              | Type    | Initial Value       | 
Description                                                                     
                    |
+|-----------------------------------|---------|---------------------|-----------------------------------------------------------------------------------------------------|
+| `MQTT3Enabled`                    | Boolean | true                | Enables 
or disables MQTT v3.1 support.                                                  
            |
+| `MQTT4Enabled`                    | Boolean | true                | Enables 
or disables MQTT v3.1.1 support.                                                
            |
+| `MQTT5Enabled`                    | Boolean | true                | Enables 
or disables MQTT v5.0 support.                                                  
            |
+| `NoLWTWhenServerShuttingDown`     | Boolean | true                | 
Suppresses Last Will delivery when the server is shutting down.                 
                    |
+| `DebugModeEnabled`                | Boolean | false               | Enables 
or disables debug mode.                                                         
            |
+| `ForceTransient`                  | Boolean | false               | Forces 
transient mode for connections.                                                 
             |
+| `ByPassPermCheckError`            | Boolean | true                | Bypasses 
permission check errors.                                                        
           |
+| `PayloadFormatValidationEnabled`  | Boolean | true                | Enables 
or disables payload format validation.                                          
            |
+| `RetainEnabled`                   | Boolean | true                | Enables 
or disables message retain feature.                                             
            |
+| `WildcardSubscriptionEnabled`     | Boolean | true                | Enables 
or disables wildcard subscriptions.                                             
            |
+| `SubscriptionIdentifierEnabled`   | Boolean | true                | Enables 
or disables subscription identifiers.                                           
            |
+| `SharedSubscriptionEnabled`       | Boolean | true                | Enables 
or disables shared subscriptions.                                               
            |
+| `MaximumQoS`                      | Integer | 2                   | Maximum 
QoS level. Valid values: 0, 1, 2.                                               
            |
+| `MaxTopicLevelLength`             | Integer | 40                  | Maximum 
length of each topic level (> 0).                                               
            |
+| `MaxTopicLevels`                  | Integer | 16                  | Maximum 
number of topic levels (> 0).                                                   
            |
+| `MaxTopicLength`                  | Integer | 255                 | Maximum 
total topic length (< 65536).                                                   
            |
+| `MaxTopicAlias`                   | Integer | 10                  | Maximum 
number of topic aliases (< 65536).                                              
            |
+| `MaxSharedGroupMembers`           | Integer | 200                 | Maximum 
members in a shared subscription group (> 0).                                   
            |
+| `MaxTopicFiltersPerInbox`         | Integer | 100                 | Maximum 
topic filters per inbox (> 0).                                                  
            |
+| `MsgPubPerSec`                    | Integer | 200                 | Maximum 
publishes per second per connection (> 0, ≤ 1000).                              
            |
+| `ReceivingMaximum`                | Integer | 200                 | Maximum 
in-flight QoS 1/2 messages per connection (> 0, ≤ 65535).                       
            |
+| `InBoundBandWidth`                | Long    | 512 * 1024L         | Maximum 
inbound bandwidth per connection in bytes (≥ 0).                                
            |
+| `OutBoundBandWidth`               | Long    | 512 * 1024L         | Maximum 
outbound bandwidth per connection in bytes (≥ 0).                               
            |
+| `MaxLastWillBytes`                | Integer | 128                 | Maximum 
Last Will payload size in bytes (> 0, ≤ 250 * 1024 * 1024).                     
            |
+| `MaxUserPayloadBytes`             | Integer | 256 * 1024          | Maximum 
user payload size in bytes (> 0, ≤ 256 * 1024 * 1024).                          
            |
+| `MinSendPerSec`                   | Integer | 8                   | Minimum 
allowed publishes per second per connection (> 0).                              
            |
+| `MaxResendTimes`                  | Integer | 3                   | Maximum 
resend attempts for QoS 1/2 messages (≥ 0).                                     
            |
+| `ResendTimeoutSeconds`            | Integer | 10                  | Timeout 
in seconds before a message is considered for resend (> 0).                     
            |
+| `MaxTopicFiltersPerSub`           | Integer | 10                  | Maximum 
topic filters per subscription (> 0, ≤ 100).                                    
            |
+| `MaxGroupFanout`                  | Integer | 100                 | Maximum 
fanout for group deliveries (> 0).                                              
            |
+| `MaxPersistentFanout`             | Integer | Integer.MAX_VALUE   | Maximum 
persistent fanout concurrency (> 0).                                            
            |
+| `MaxPersistentFanoutBytes`        | Long    | Long.MAX_VALUE      | Maximum 
bytes allowed for persistent fanout (> 0).                                      
            |
+| `MaxSessionExpirySeconds`         | Integer | 24 * 60 * 60        | Maximum 
session expiry time in seconds (> 0, ≤ 0xFFFFFFFF).                             
            |
+| `MinSessionExpirySeconds`         | Integer | 60                  | Minimum 
session expiry time in seconds (> 0, ≤ MaxSessionExpirySeconds).                
            |
+| `MinKeepAliveSeconds`             | Integer | 60                  | Minimum 
keep alive in seconds (> 0, < 65535).                                           
            |
+| `SessionInboxSize`                | Integer | 1000                | Maximum 
size of session inbox (> 0, ≤ 65535).                                           
            |
+| `QoS0DropOldest`                  | Boolean | false               | Whether 
to drop the oldest QoS 0 messages first.                                        
            |
+| `RetainMessageMatchLimit`         | Integer | 10                  | Limit 
for retained message matches (≥ 0).                                             
              |

Reply via email to