# Cluster Configuration Properties

> For the complete documentation index, see [llms.txt](https://docs.redpanda.com/llms.txt). Component-specific: [streaming-full.txt](https://docs.redpanda.com/streaming-full.txt)

---
title: Cluster Configuration Properties
latest-redpanda-tag: v26.1.9
latest-console-tag: v3.7.3
latest-operator-version: v26.1.4
# EOL = End-of-Life (support lifecycle status)
page-is-nearing-eol: "false"
page-is-past-eol: "false"
page-eol-date: March 31, 2027
latest-connect-version: 4.93.0
docname: properties/cluster-properties
page-component-name: streaming
page-version: "26.1"
page-component-version: "26.1"
page-component-title: Streaming
page-relative-src-path: properties/cluster-properties.adoc
page-edit-url: https://github.com/redpanda-data/docs/edit/main/modules/reference/pages/properties/cluster-properties.adoc
description: Reference of cluster configuration properties.
page-git-created-date: "2024-05-23"
page-git-modified-date: "2026-03-31"
support-status: supported
---

<!-- Source: https://docs.redpanda.com/streaming/current/reference/properties/cluster-properties.md -->

Cluster properties are configuration settings that control the behavior of a Redpanda cluster at a global level. Configuring cluster properties allows you to adapt Redpanda to specific workloads, optimize resource usage, and enable or disable features.

For information on how to edit cluster properties, see [Configure Cluster Properties](https://docs.redpanda.com/streaming/current/manage/cluster-maintenance/cluster-property-configuration/) or [Configure Redpanda in Kubernetes](https://docs.redpanda.com/streaming/current/manage/kubernetes/k-configure-helm-chart/).

> 📝 **NOTE**
>
> Some cluster properties require that you restart the cluster for any updates to take effect. See the specific property details to identify whether or not a restart is required.

## [](#cluster-configuration)Cluster configuration

### [](#abort_index_segment_size)abort_index_segment_size

Capacity (in number of txns) of an abort index segment.

Each partition tracks the aborted transaction offset ranges to help service client requests. If the number of transactions increases beyond this threshold, they are flushed to disk to ease memory pressure. Then they’re loaded on demand. This configuration controls the maximum number of aborted transactions before they are flushed to disk.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | 50000 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#abort_timed_out_transactions_interval_ms)abort_timed_out_transactions_interval_ms

Interval, in milliseconds, at which Redpanda looks for inactive transactions and aborts them.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 10000 (10 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#admin_api_require_auth)admin_api_require_auth

Whether Admin API clients must provide HTTP basic authentication headers.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#aggregate_metrics)aggregate_metrics

Enable aggregation of metrics returned by the [`/metrics`](https://docs.redpanda.com/streaming/current/reference/internal-metrics-reference/) endpoint. Aggregation can simplify monitoring by providing summarized data instead of raw, per-instance metrics. Metric aggregation is performed by summing the values of samples by labels and is done when it makes sense by the shard and/or partition labels.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Related topics | /metrics |

### [](#alive_timeout_ms)alive_timeout_ms

The amount of time since the last broker status heartbeat. After this time, a broker is considered offline and not alive.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 5000 (5 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#append_chunk_size)append_chunk_size

Size of direct write operations to disk in bytes. A larger chunk size can improve performance for write-heavy workloads, but increase latency for these writes as more data is collected before each write operation. A smaller chunk size can decrease write latency, but potentially increase the number of disk I/O operations.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 16384 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 32768 |

### [](#audit_client_max_buffer_size)audit_client_max_buffer_size

Defines the number of bytes allocated by the internal audit client for audit messages. When changing this, you must disable audit logging and then re-enable it for the change to take effect. Consider increasing this if your system generates a very large number of audit records in a short amount of time.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 16777216 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#audit_enabled)audit_enabled

Enables or disables audit logging. When you set this to true, Redpanda checks for an existing topic named `_redpanda.audit_log`. If none is found, Redpanda automatically creates one for you.

> 📝 **NOTE: Enterprise license required**
>
> Enterprise license required
>
> The following values require an Enterprise license: `true`
>
> For license details, see [Redpanda Licensing](https://docs.redpanda.com/streaming/current/get-started/licensing/).

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#audit_enabled_event_types)audit_enabled_event_types

List of strings in JSON style identifying the event types to include in the audit log. This may include any of the following: `management, produce, consume, describe, heartbeat, authenticate, schema_registry, admin`.

| Property | Value |
| --- | --- |
| Type | array |
| Default | [management, authenticate, admin] |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | ["management", "describe"] |

### [](#audit_excluded_principals)audit_excluded_principals

List of user principals to exclude from auditing.

| Property | Value |
| --- | --- |
| Type | array |
| Default | [] |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | ["User:principal1","User:principal2"] |

### [](#audit_excluded_topics)audit_excluded_topics

List of topics to exclude from auditing.

| Property | Value |
| --- | --- |
| Type | array |
| Default | [] |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | ["topic1","topic2"] |

### [](#audit_failure_policy)audit_failure_policy

Defines the policy for rejecting audit log messages when the audit log queue is full. If set to 'permit', then new audit messages are dropped and the operation is permitted. If set to 'reject', then the operation is rejected.

| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | reject, permit |
| Default | reject |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#audit_log_num_partitions)audit_log_num_partitions

Defines the number of partitions used by a newly-created audit topic. This configuration applies only to the audit log topic and may be different from the cluster or other topic configurations. This cannot be altered for existing audit log topics.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-2147483648, 2147483647] |
| Default | 12 |
| Nullable | No |
| Unit | Number of partitions per topic |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#audit_log_replication_factor)audit_log_replication_factor

Defines the replication factor for a newly-created audit log topic. This configuration applies only to the audit log topic and may be different from the cluster or other topic configurations. This cannot be altered for existing audit log topics. Setting this value is optional. If a value is not provided, Redpanda will use the value specified for `internal_topic_replication_factor`.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-32768, 32767] |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#audit_queue_drain_interval_ms)audit_queue_drain_interval_ms

Interval, in milliseconds, at which Redpanda flushes the queued audit log messages to the audit log topic. Longer intervals may help prevent duplicate messages, especially in high throughput scenarios, but they also increase the risk of data loss during shutdowns where the queue is lost.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 500 (500 milliseconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#audit_queue_max_buffer_size_per_shard)audit_queue_max_buffer_size_per_shard

Defines the maximum amount of memory in bytes used by the audit buffer in each shard. Once this size is reached, requests to log additional audit messages will return a non-retryable error. Limiting the buffer size per shard helps prevent any single shard from consuming excessive memory due to audit log messages.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 1048576 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#audit_use_rpc)audit_use_rpc

Use Redpanda’s internal communication system to write audit logs. When disabled, Redpanda uses a Kafka client to write audit logs instead.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#auto_create_topics_enabled)auto_create_topics_enabled

Allow automatic topic creation. To prevent excess topics, this property is not supported on Redpanda Cloud BYOC and Dedicated clusters. You should explicitly manage topic creation for these Redpanda Cloud clusters.

If you produce to a topic that doesn’t exist, the topic will be created with defaults if this property is enabled.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#cloud_topics_allow_materialization_failure)cloud_topics_allow_materialization_failure

**Introduced in v26.1.1**

When enabled, the reconciler tolerates missing L0 extent objects (404 errors) during materialization. Failed extents are skipped, producing L1 state with empty offset ranges where deleted data was. Use this to recover partitions after accidental deletion of live extent objects.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_compaction_interval_ms)cloud_topics_compaction_interval_ms

**Introduced in v26.1.1**

How often to trigger background compaction for cloud topics.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 30000 (30 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_compaction_key_map_memory)cloud_topics_compaction_key_map_memory

**Introduced in v26.1.1**

Maximum number of bytes that may be used on each shard by cloud topics compaction key-offset maps.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 18446744073709552000 |
| Default | 134217728 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 134217728 |

### [](#cloud_topics_compaction_max_object_size)cloud_topics_compaction_max_object_size

**Introduced in v26.1.1**

Maximum size in bytes for L1 objects produced by cloud topics compaction.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 134217728 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_disable_level_zero_gc_for_tests)cloud_topics_disable_level_zero_gc_for_tests

**Introduced in v26.1.1**

Disables the level-zero garbage collector in cloud topics. This property exists to simplify testing and shouldn’t be set in production.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_disable_metastore_flush_loop_for_tests)cloud_topics_disable_metastore_flush_loop_for_tests

**Introduced in v26.1.1**

Disables the metastore flush loop in cloud topics. The property exists to simplify testing of read replicas and shouldn’t be set in production.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_disable_reconciliation_loop)cloud_topics_disable_reconciliation_loop

Disables the cloud topics reconciliation loop. Disabling the loop can negatively impact performance and stability of the cluster.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_enabled)cloud_topics_enabled

Enable Cloud Topics for the cluster. Cloud Topics are optimized for high-throughput, cost-sensitive workloads that can tolerate higher latencies compared to standard Kafka topics.

> 📝 **NOTE: Enterprise license required**
>
> Enterprise license required
>
> The following values require an Enterprise license: `true`
>
> For license details, see [Redpanda Licensing](https://docs.redpanda.com/streaming/current/get-started/licensing/).

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Cloud Topics |

### [](#cloud_topics_epoch_service_epoch_increment_interval)cloud_topics_epoch_service_epoch_increment_interval

**Introduced in v25.3.3**

The interval, in milliseconds, at which the cluster epoch is incremented.

The cluster epoch is a frozen point in time of the committed offset of the controller log, used to coordinate partition creation and track changes in Tiered Storage. This property controls how frequently the epoch is refreshed. More frequent updates provide finer-grained coordination but may increase overhead.

Decrease this interval if you need more frequent epoch updates for faster coordination in Tiered Storage operations, or increase it to reduce coordination overhead in stable clusters.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 600000 (10 minutes) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_epoch_service_local_epoch_cache_duration)cloud_topics_epoch_service_local_epoch_cache_duration

**Introduced in v25.3.3**

The duration, in milliseconds, for which a cluster-wide epoch is cached locally on each broker.

Caching the epoch locally reduces the need for frequent coordination with the controller. This property controls how long each broker can use a cached epoch value before fetching the latest value.

Increase this value to reduce coordination overhead in clusters with stable workloads. Decrease it if you need brokers to react more quickly to epoch changes in Tiered Storage.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 60000 (1 minute) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_epoch_service_max_same_epoch_duration)cloud_topics_epoch_service_max_same_epoch_duration

**Introduced in v26.1.1**

The duration of time that a node can use the exact same epoch.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 86400000 (1 day) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_fetch_debounce_enabled)cloud_topics_fetch_debounce_enabled

**Introduced in v26.1.1**

Enables fetch debouncing in cloud topics. This mechanism guarantees that the broker fetches every object only once improving the performance and lowering the cost.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#cloud_topics_gc_health_check_interval)cloud_topics_gc_health_check_interval

**Introduced in v26.1.1**

The interval at which the L0 garbage collector checks cluster health. GC will not proceed while the cluster is unhealthy.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 10000 (10 seconds) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_l1_indexing_interval)cloud_topics_l1_indexing_interval

**Introduced in v26.1.1**

The byte interval at which index entries are created within long term storage objects for cloud topics. Index entries are stored in the object metadata and enable efficient seeking by offset or timestamp within a partition. Lower values produce more index entries (better seek granularity) at the cost of a larger footer.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 4194304 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_long_term_file_deletion_delay)cloud_topics_long_term_file_deletion_delay

**Introduced in v26.1.1**

Delay before deleting stale long term files, allowing concurrent readers (e.g. read replica topics) to finish reading them before removal.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 3600000 (1 hour) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_long_term_flush_interval)cloud_topics_long_term_flush_interval

**Introduced in v26.1.1**

Time interval at which long term storage metadata is flushed to object storage.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 600000 (10 minutes) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_long_term_garbage_collection_interval)cloud_topics_long_term_garbage_collection_interval

Time interval after which data is garbage collected from long term storage.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 300000 (5 minutes) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_metastore_lsm_apply_timeout_ms)cloud_topics_metastore_lsm_apply_timeout_ms

**Introduced in v26.1.1**

Timeout for applying a replicated write batch to the local LSM database. This may take longer than usual when L0 compaction is behind and writes are being throttled.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 300000 (5 minutes) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_metastore_replication_timeout_ms)cloud_topics_metastore_replication_timeout_ms

**Introduced in v26.1.1**

Timeout for L1 metastore Raft replication and waiting for the STM to apply the replicated write batch.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 30000 (30 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_num_metastore_partitions)cloud_topics_num_metastore_partitions

**Introduced in v26.1.1**

Number of partitions for the cloud topics metastore topic, used to spread metastore load across the cluster. Higher values allow more parallel metadata operations but reduce the amount of work each partition can batch together. Only takes effect when the metastore topic is first created.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-2147483648, 2147483647] |
| Default | 3 |
| Nullable | No |
| Unit | Number of partitions per topic |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_parallel_fetch_enabled)cloud_topics_parallel_fetch_enabled

**Introduced in v26.1.1**

Enable parallel fetching in cloud topics. This mechanism improves the throughput by allowing the broker to download data needed by the fetch request using multiple shards.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#cloud_topics_preregistered_object_ttl)cloud_topics_preregistered_object_ttl

**Introduced in v26.1.1**

Time-to-live for pre-registered L1 objects before they are expired.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 3600000 (1 hour) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_produce_batching_size_threshold)cloud_topics_produce_batching_size_threshold

The size limit for the object size in cloud topics. When the amount of data on a shard reaches this limit, an upload is triggered.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 4194304 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#cloud_topics_produce_cardinality_threshold)cloud_topics_produce_cardinality_threshold

Threshold for the object cardinality in cloud topics. When the number of partitions in waiting for the upload reach this limit, an upload is triggered.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 1000 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#cloud_topics_produce_no_pid_concurrency)cloud_topics_produce_no_pid_concurrency

**Introduced in v26.1.1**

Maximum number of concurrent raft replication requests for producers without a producer ID (idempotency disabled). Limits how many no-PID writes can proceed past the producer queue into raft simultaneously.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 32 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_produce_upload_interval)cloud_topics_produce_upload_interval

Time interval after which the upload is triggered.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 250 (250 milliseconds) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#cloud_topics_produce_write_inflight_limit)cloud_topics_produce_write_inflight_limit

**Introduced in v26.1.1**

Maximum number of in-flight write requests per shard in the cloud topics write pipeline. Requests that exceed this limit are queued until a slot becomes available.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 1024 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_reconciliation_interval)cloud_topics_reconciliation_interval

Configuration property: cloud\_topics\_reconciliation\_interval

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#cloud_topics_reconciliation_max_interval)cloud_topics_reconciliation_max_interval

**Introduced in v26.1.1**

Maximum reconciliation interval for adaptive scheduling.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 10000 (10 seconds) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_reconciliation_max_object_size)cloud_topics_reconciliation_max_object_size

**Introduced in v26.1.1**

Maximum size in bytes for L1 objects produced by the reconciler. With the default target fill ratio of 0.8, this gives an effective target object size of 64 MiB.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 83886080 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_reconciliation_min_interval)cloud_topics_reconciliation_min_interval

**Introduced in v26.1.1**

Minimum reconciliation interval for adaptive scheduling. The reconciler will not run more frequently than this.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 250 (250 milliseconds) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_reconciliation_parallelism)cloud_topics_reconciliation_parallelism

**Introduced in v26.1.1**

Maximum number, per shard, of concurrent objects built by reconciliation

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 8 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_reconciliation_slowdown_blend)cloud_topics_reconciliation_slowdown_blend

**Introduced in v26.1.1**

Blend factor for slowing down reconciliation (0.0 to 1.0). Higher values mean reconciliation lowers its frequency faster when trying to find a frequency that produces well-sized objects. Generally this should be lower than the speedup blend, because reconciliation has less opportunities to adapt its frequency when it runs less frequently.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 0.4 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_reconciliation_speedup_blend)cloud_topics_reconciliation_speedup_blend

**Introduced in v26.1.1**

Blend factor for speeding up reconciliation (0.0 to 1.0). Higher values mean reconciliation increases its frequency faster when trying to find a frequency that produces well-sized objects.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 0.9 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_reconciliation_target_fill_ratio)cloud_topics_reconciliation_target_fill_ratio

**Introduced in v26.1.1**

Target fill ratio for L1 objects. The reconciler adapts its interval to produce objects at approximately this fill level (0.0 to 1.0).

| Property | Value |
| --- | --- |
| Type | number |
| Default | 0.8 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_short_term_gc_backoff_interval)cloud_topics_short_term_gc_backoff_interval

**Introduced in v25.3.3**

The interval, in milliseconds, between invocations of the L0 garbage collection work loop when no progress is being made or errors are occurring.

L0 (level-zero) objects are short-term data objects in Tiered Storage that are periodically garbage collected. When GC encounters errors or cannot make progress (for example, if there are no objects eligible for deletion), this backoff interval prevents excessive retries.

Increase this value to reduce system load when GC cannot make progress. Decrease it if you need faster retry attempts after transient errors.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 60000 (1 minute) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_short_term_gc_interval)cloud_topics_short_term_gc_interval

**Introduced in v25.3.3**

The interval, in milliseconds, between invocations of the L0 (level-zero) garbage collection work loop when progress is being made.

L0 objects are short-term data objects in Tiered Storage associated with global epochs. This property controls how frequently GC runs when it successfully deletes objects. Lower values increase GC frequency, which can help maintain lower object counts but may increase S3 API usage.

Decrease this value if L0 object counts are growing too quickly and you need more aggressive garbage collection. Increase it to reduce S3 API costs in clusters with lower ingestion rates.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 10000 (10 seconds) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_short_term_gc_minimum_object_age)cloud_topics_short_term_gc_minimum_object_age

**Introduced in v25.3.3**

The minimum age, in milliseconds, of an L0 (level-zero) object before it becomes eligible for garbage collection.

This grace period delays deletion of L0 objects even after they become eligible based on epoch. The delay provides a safety buffer that can support recovery in cases involving accidental deletion or other operational issues.

Increase this value to extend the retention window for L0 objects, providing more time for recovery from operational errors. Decrease it to free up object storage space more quickly, but with less protection against accidental deletion.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 43200000 (12 hours) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cloud_topics_upload_part_size)cloud_topics_upload_part_size

**Introduced in v26.1.1**

The part size in bytes used for multipart uploads. The minimum of 5 MiB is the smallest non-terminal part size allowed by cloud object storage providers.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 16777216 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#cluster_id)cluster_id

Cluster identifier.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | No |

### [](#compacted_log_segment_size)compacted_log_segment_size

Size (in bytes) for each compacted log segment.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 18446744073709552000 |
| Default | 268435456 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 268435456 |

### [](#compaction_ctrl_backlog_size)compaction_ctrl_backlog_size

Target backlog size for compaction controller. If not set the max backlog size is configured to 80% of total disk space available.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#compaction_ctrl_d_coeff)compaction_ctrl_d_coeff

Derivative coefficient for compaction PID controller.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 0.2 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#compaction_ctrl_i_coeff)compaction_ctrl_i_coeff

Integral coefficient for compaction PID controller.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 0 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#compaction_ctrl_max_shares)compaction_ctrl_max_shares

Maximum number of I/O and CPU shares that compaction process can use.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-32768, 32767] |
| Default | 1000 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#compaction_ctrl_min_shares)compaction_ctrl_min_shares

Minimum number of I/O and CPU shares that compaction process can use.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-32768, 32767] |
| Default | 10 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#compaction_ctrl_p_coeff)compaction_ctrl_p_coeff

Proportional coefficient for compaction PID controller. This must be negative, because the compaction backlog should decrease when the number of compaction shares increases.

| Property | Value |
| --- | --- |
| Type | number |
| Default | -12.5 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#compaction_ctrl_update_interval_ms)compaction_ctrl_update_interval_ms

The interval (in milliseconds) for updating the controller responsible for compaction tasks. The controller uses this interval to decide how to prioritize background compaction work, which is essential for maintaining efficient storage use.

This is an internal-only configuration and should be enabled only after consulting with Redpanda support.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 30000 (30 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#consumer_group_lag_collection_interval)consumer_group_lag_collection_interval

How often Redpanda runs the collection loop when `enable_consumer_group_metrics` is set to `consumer_lag`. Updates will not be more frequent than `health_monitor_max_metadata_age`.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17179869184, 17179869183] |
| Default | 60 (1 minute) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#consumer_group_lag_collection_interval_sec)consumer_group_lag_collection_interval_sec

How often to run the collection loop when [`enable_consumer_group_metrics`](#enable_consumer_group_metrics) contains `consumer_lag`.

Reducing the value of `consumer_group_lag_collection_interval_sec` increases the metric collection frequency, which may raise resource utilization. In most environments, this impact is minimal, but it’s best practice to monitor broker resource usage in high-scale settings.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | No |
| Unit | Seconds |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#consumer_offsets_topic_batch_cache_enabled)consumer_offsets_topic_batch_cache_enabled

This property lets you enable the batch cache for the consumer offsets topic. By default, the cache for consumer offsets topic is disabled. Changing this property is not recommended in production systems, as it may affect performance. The change is applied only after the restart.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#controller_backend_housekeeping_interval_ms)controller_backend_housekeeping_interval_ms

Interval between iterations of controller backend housekeeping loop.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 1000 (1 second) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#controller_backend_reconciliation_concurrency)controller_backend_reconciliation_concurrency

The maximum number of cluster updates the controller can process at the same time. Higher values speed up cluster changes but use more resources.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | 1024 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#controller_log_accummulation_rps_capacity_acls_and_users_operations)controller_log_accummulation_rps_capacity_acls_and_users_operations

Maximum capacity of rate limit accumulation in controller ACLs and users operations limit.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#controller_log_accummulation_rps_capacity_configuration_operations)controller_log_accummulation_rps_capacity_configuration_operations

Maximum capacity of rate limit accumulation in controller configuration operations limit.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#controller_log_accummulation_rps_capacity_move_operations)controller_log_accummulation_rps_capacity_move_operations

Maximum capacity of rate limit accumulation in controller move operations limit.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#controller_log_accummulation_rps_capacity_node_management_operations)controller_log_accummulation_rps_capacity_node_management_operations

Maximum capacity of rate limit accumulation in controller node management operations limit.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#controller_log_accummulation_rps_capacity_topic_operations)controller_log_accummulation_rps_capacity_topic_operations

Maximum capacity of rate limit accumulation in controller topic operations limit.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#controller_snapshot_max_age_sec)controller_snapshot_max_age_sec

Maximum amount of time before Redpanda attempts to create a controller snapshot after a new controller command appears.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17179869184, 17179869183] |
| Default | 60 (1 minute) |
| Nullable | No |
| Unit | Seconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#core_balancing_continuous)core_balancing_continuous

If set to `true`, move partitions between cores in runtime to maintain balanced partition distribution.

> 📝 **NOTE: Enterprise license required**
>
> Enterprise license required
>
> **License-based defaults:**
>
> -   **Community:** `false` (if no Enterprise license is present)
>
> -   **Enterprise:** `true` (if an Enterprise license is present)
>
>
> For license details, see [Redpanda Licensing](https://docs.redpanda.com/streaming/current/get-started/licensing/).

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#core_balancing_debounce_timeout)core_balancing_debounce_timeout

Interval, in milliseconds, between trigger and invocation of core balancing.

**Unit**: milliseconds

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 10000 (10 seconds) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#core_balancing_on_core_count_change)core_balancing_on_core_count_change

If set to `true`, and if after a restart the number of cores changes, Redpanda will move partitions between cores to maintain balanced partition distribution.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#cpu_profiler_enabled)cpu_profiler_enabled

Enables CPU profiling for Redpanda.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#cpu_profiler_sample_period_ms)cpu_profiler_sample_period_ms

The sample period for the CPU profiler.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 100 (100 milliseconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#data_transforms_binary_max_size)data_transforms_binary_max_size

The maximum size for a deployable WebAssembly binary that the broker can store.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 10485760 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#data_transforms_commit_interval_ms)data_transforms_commit_interval_ms

The commit interval at which data transforms progress.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 3000 (3 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#data_transforms_enabled)data_transforms_enabled

Enables WebAssembly-powered data transforms directly in the broker. When `data_transforms_enabled` is set to `true`, Redpanda reserves memory for data transforms, even if no transform functions are currently deployed. This memory reservation ensures that adequate resources are available for transform functions when they are needed, but it also means that some memory is allocated regardless of usage.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#data_transforms_logging_buffer_capacity_bytes)data_transforms_logging_buffer_capacity_bytes

Buffer capacity for transform logs, per shard. Buffer occupancy is calculated as the total size of buffered log messages; that is, logs emitted but not yet produced.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 512000 |
| Nullable | No |
| Unit | Bytes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#data_transforms_logging_flush_interval_ms)data_transforms_logging_flush_interval_ms

Flush interval for transform logs. When a timer expires, pending logs are collected and published to the `transform_logs` topic.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 500 (500 milliseconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#data_transforms_logging_line_max_bytes)data_transforms_logging_line_max_bytes

Transform log lines truncate to this length. Truncation occurs after any character escaping.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 1024 |
| Nullable | No |
| Unit | Bytes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#data_transforms_per_core_memory_reservation)data_transforms_per_core_memory_reservation

The amount of memory to reserve per core for data transform (Wasm) virtual machines. Memory is reserved on boot. The maximum number of functions that can be deployed to a cluster is equal to `data_transforms_per_core_memory_reservation` / `data_transforms_per_function_memory_limit`.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 20971520 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Aliases | wasm_per_core_memory_reservation |
| Example | 26214400 |

### [](#data_transforms_per_function_memory_limit)data_transforms_per_function_memory_limit

The amount of memory to give an instance of a data transform (Wasm) virtual machine. The maximum number of functions that can be deployed to a cluster is equal to `data_transforms_per_core_memory_reservation` / `data_transforms_per_function_memory_limit`.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 2097152 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Aliases | wasm_per_function_memory_limit |
| Example | 5242880 |

### [](#data_transforms_read_buffer_memory_percentage)data_transforms_read_buffer_memory_percentage

> ⚠️ **WARNING**
>
> This property is for Redpanda internal use only. Do not use or modify this property unless specifically instructed to do so by [Redpanda Support](https://support.redpanda.com/hc/en-us). Using this property without explicit guidance from Redpanda Support could result in data loss.

The percentage of available memory in the transform subsystem to use for read buffers.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 45 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 25 |

### [](#data_transforms_runtime_limit_ms)data_transforms_runtime_limit_ms

The maximum amount of runtime to start up a data transform, and the time it takes for a single record to be transformed.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 3000 (3 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#data_transforms_write_buffer_memory_percentage)data_transforms_write_buffer_memory_percentage

> ⚠️ **WARNING**
>
> This property is for Redpanda internal use only. Do not use or modify this property unless specifically instructed to do so by [Redpanda Support](https://support.redpanda.com/hc/en-us). Using this property without explicit guidance from Redpanda Support could result in data loss.

The percentage of available memory in the transform subsystem to use for write buffers.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 45 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 25 |

### [](#datalake_coordinator_snapshot_max_delay_secs)datalake_coordinator_snapshot_max_delay_secs

Maximum amount of time the coordinator waits to snapshot after a command appears in the log.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17179869184, 17179869183] |
| Default | 15 minutes |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#datalake_disk_space_monitor_enable)datalake_disk_space_monitor_enable

Option to explicitly disable enforcement of datalake disk space usage.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#datalake_disk_usage_overage_coeff)datalake_disk_usage_overage_coeff

The datalake disk usage monitor reclaims the overage multiplied by this this coefficient to compensate for data that is written during the idle period between control loop invocations.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 2 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 1.8 |

### [](#datalake_scheduler_block_size_bytes)datalake_scheduler_block_size_bytes

Size, in bytes, of each memory block reserved for record translation, as tracked by the datalake scheduler.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 4194304 |
| Nullable | No |
| Unit | Bytes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#datalake_scheduler_disk_reservation_block_size)datalake_scheduler_disk_reservation_block_size

The size, in bytes, of the block of disk reservation that the datalake manager will assign to each datalake scheduler when it runs out of local reservation.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 52428800 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 10000000 |

### [](#datalake_scheduler_max_concurrent_translations)datalake_scheduler_max_concurrent_translations

The maximum number of translations that the datalake scheduler will allow to run at a given time. If a translation is requested, but the number of running translations exceeds this value, the request will be put to sleep temporarily, polling until capacity becomes available.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 4 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#datalake_scheduler_time_slice_ms)datalake_scheduler_time_slice_ms

Time, in milliseconds, for a datalake translation as scheduled by the datalake scheduler. After a translation is scheduled, it will run until either the time specified has elapsed or all pending records on its source partition have been translated.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 30000 (30 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#datalake_scratch_space_size_bytes)datalake_scratch_space_size_bytes

Size, in bytes, of the amount of scratch space datalake should use.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 5368709120 |
| Nullable | No |
| Unit | Bytes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#datalake_scratch_space_soft_limit_size_percent)datalake_scratch_space_soft_limit_size_percent

Size of the scratch space datalake soft limit expressed as a percentage of the `datalake_scratch_space_size_bytes` configuration value.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 80 |
| Nullable | No |
| Unit | Percent |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | 80.0 |

### [](#datalake_translator_flush_bytes)datalake_translator_flush_bytes

Size, in bytes, of the amount of per translator data that may be flushed to disk before the translator will upload and remove its current on disk data.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 33554432 |
| Nullable | No |
| Unit | Bytes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#debug_bundle_auto_removal_seconds)debug_bundle_auto_removal_seconds

If set, how long debug bundles are kept in the debug bundle storage directory after they are created. If not set, debug bundles are kept indefinitely.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17179869184, 17179869183] |
| Default | null |
| Nullable | Yes |
| Unit | Seconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#debug_bundle_storage_dir)debug_bundle_storage_dir

Path to the debug bundle storage directory. Note: Changing this path does not clean up existing debug bundles. If not set, the debug bundle is stored in the Redpanda data directory specified in the redpanda.yaml broker configuration file.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#debug_load_slice_warning_depth)debug_load_slice_warning_depth

The recursion depth after which debug logging is enabled automatically for the log reader.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#default_leaders_preference)default_leaders_preference

Default settings for preferred location of topic partition leaders. It can be either "none" (no preference), or "racks:<rack1>,<rack2>,…​" (prefer brokers with rack ID from the list).

The list can contain one or more rack IDs. If you specify multiple IDs, Redpanda tries to distribute the partition leader locations equally across brokers in these racks.

If `[enable_rack_awareness](#enable_rack_awareness)` is set to `false`, leader pinning is disabled across the cluster.

> 📝 **NOTE: Enterprise license required**
>
> Enterprise license required
>
> This property requires an Enterprise license to use.
>
> For license details, see [Redpanda Licensing](https://docs.redpanda.com/streaming/current/get-started/licensing/).

| Property | Value |
| --- | --- |
| Type | object |
| Default | none |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Leader pinning |

### [](#default_num_windows)default_num_windows

Default number of quota tracking windows.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-32768, 32767] |
| Default | 10 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#default_redpanda_storage_mode)default_redpanda_storage_mode

**Introduced in v26.1.1**

Set the default storage mode for new topics. This value applies to any topic created without an explicit [`redpanda.storage.mode`](#redpandastoragemode) setting (that is, when the topic’s `redpanda.storage.mode` is `unset`).

Accepted values:

-   `unset`: Defer to the legacy [`redpanda.remote.read`](#cloud_storage_enable_remote_read) and [`redpanda.remote.write`](#cloud_storage_enable_remote_write) topic properties for Tiered Storage configuration.

-   `local`: Store data only on local disks, with no object storage involvement.

-   `tiered`: Store data on local disks and replicate it to object storage using [Tiered Storage](https://docs.redpanda.com/streaming/current/manage/tiered-storage/). Equivalent to setting `redpanda.remote.read` and `redpanda.remote.write` to `true`.

-   `cloud`: Store data primarily in object storage using [Cloud Topics](https://docs.redpanda.com/streaming/current/develop/manage-topics/cloud-topics/).


| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | local, tiered, cloud, unset |
| Default | unset |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | tiered |
| Related topics | Tiered StorageManage Cloud Topics |

### [](#default_topic_partitions)default_topic_partitions

Default number of partitions per topic.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-2147483648, 2147483647] |
| Default | 1 |
| Nullable | No |
| Unit | Number of partitions per topic |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#default_topic_replication)default_topic_replication

Default replication factor for new topics.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-32768, 32767] |
| Default | 1 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#default_window_sec)default_window_sec

Default quota tracking window size in milliseconds.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 1000 milliseconds |
| Nullable | No |
| Unit | Seconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#delete_topic_enable)delete_topic_enable

**Introduced in v26.1.1**

Enable or disable topic deletion via the Kafka DeleteTopics API. When set to false, all topic deletion requests are rejected with error code 73 (TOPIC\_DELETION\_DISABLED). This is a cluster-wide safety setting that cannot be overridden by superusers. Topics in kafka\_nodelete\_topics are always protected regardless of this setting.

> 📝 **NOTE: Enterprise license required**
>
> Enterprise license required
>
> The following values require an Enterprise license: `false`
>
> For license details, see [Redpanda Licensing](https://docs.redpanda.com/streaming/current/get-started/licensing/).

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#disable_batch_cache)disable_batch_cache

Disable batch cache in log manager.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#disable_cluster_recovery_loop_for_tests)disable_cluster_recovery_loop_for_tests

> ⚠️ **WARNING**
>
> This property is for Redpanda internal use only. Do not use or modify this property unless specifically instructed to do so by [Redpanda Support](https://support.redpanda.com/hc/en-us). Using this property without explicit guidance from Redpanda Support could result in data loss.

Disables the cluster recovery loop. This property is used to simplify testing and should not be set in production.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#disable_metrics)disable_metrics

Disable registering the metrics exposed on the internal `/metrics` endpoint.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |

### [](#disable_public_metrics)disable_public_metrics

Disable registering the metrics exposed on the `/public_metrics` endpoint.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |

### [](#disk_reservation_percent)disk_reservation_percent

The percentage of total disk capacity that Redpanda will avoid using. This applies both when cloud cache and log data share a disk, as well as when cloud cache uses a dedicated disk.

It is recommended to not run disks near capacity to avoid blocking I/O due to low disk space, as well as avoiding performance issues associated with SSD garbage collection.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 25 |
| Nullable | No |
| Unit | Percent |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 25.0 |

### [](#election_timeout_ms)election_timeout_ms

Raft election timeout expressed in milliseconds.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | No |
| Unit | Milliseconds |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#enable_cluster_metadata_upload_loop)enable_cluster_metadata_upload_loop

Enables cluster metadata uploads. Required for [whole cluster restore](https://docs.redpanda.com/streaming/current/manage/disaster-recovery/whole-cluster-restore/).

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Related topics | whole cluster restore |

### [](#enable_consumer_group_metrics)enable_consumer_group_metrics

List of enabled consumer group metrics. Accepted values include:

-   `group`: Enables the [`redpanda_kafka_consumer_group_consumers`](https://docs.redpanda.com/streaming/current/reference/public-metrics-reference/#redpanda_kafka_consumer_group_consumers) and [`redpanda_kafka_consumer_group_topics`](https://docs.redpanda.com/streaming/current/reference/public-metrics-reference/#redpanda_kafka_consumer_group_topics) metrics.

-   `partition`: Enables the [`redpanda_kafka_consumer_group_committed_offset`](https://docs.redpanda.com/streaming/current/reference/public-metrics-reference/#redpanda_kafka_consumer_group_committed_offset) metric.

-   `consumer_lag`: Enables the [`redpanda_kafka_consumer_group_lag_max`](https://docs.redpanda.com/streaming/current/reference/public-metrics-reference/#redpanda_kafka_consumer_group_lag_max) and [`redpanda_kafka_consumer_group_lag_sum`](https://docs.redpanda.com/streaming/current/reference/public-metrics-reference/#redpanda_kafka_consumer_group_lag_sum) metrics

    Enabling `consumer_lag` may add a small amount of additional processing overhead to the brokers, especially in environments with a high number of consumer groups or partitions.

    | Property | Value |
    | --- | --- |
    | Type | array |
    | Default | [group, partition] |
    | Nullable | No |
    | Requires restart | No |
    | Restored on Whole Cluster Restore | Yes |
    | Related topics | redpanda_kafka_consumer_group_consumersredpanda_kafka_consumer_group_topicsredpanda_kafka_consumer_group_committed_offsetredpanda_kafka_consumer_group_lag_maxredpanda_kafka_consumer_group_lag_sumconsumer_group_lag_collection_interval_secMonitor consumer group lag |


### [](#enable_controller_log_rate_limiting)enable_controller_log_rate_limiting

Limits the write rate for the controller log.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#enable_host_metrics)enable_host_metrics

Enable exporting of some host metrics like `/proc/diskstats`, `/proc/snmp` and `/proc/net/netstat`.

Host metrics are prefixed with [`vectorized_host`](https://docs.redpanda.com/streaming/current/reference/internal-metrics-reference/#vectorized_host_diskstats_discards) and are available on the `/metrics` endpoint.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Related topics | vectorized_host |

### [](#enable_idempotence)enable_idempotence

Enable idempotent producers.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#enable_leader_balancer)enable_leader_balancer

Enable automatic leadership rebalancing.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#enable_metrics_reporter)enable_metrics_reporter

Enable the cluster metrics reporter. If `true`, the metrics reporter collects and exports to Redpanda Data a set of customer usage metrics at the interval set by [`metrics_reporter_report_interval`](#metrics_reporter_report_interval).

> 📝 **NOTE**
>
> The cluster metrics of the metrics reporter are different from [monitoring metrics](https://docs.redpanda.com/streaming/current/manage/monitoring/).
>
> -   The metrics reporter exports customer usage metrics for consumption by Redpanda Data.
>
> -   Monitoring metrics are exported for consumption by Redpanda users.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | monitoring metrics |

### [](#enable_mpx_extensions)enable_mpx_extensions

Enable Redpanda extensions for MPX.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#enable_pid_file)enable_pid_file

Enable PID file. You should not need to change.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#enable_rack_awareness)enable_rack_awareness

Enable rack-aware replica assignment.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#enable_sasl)enable_sasl

Enable SASL authentication for Kafka connections. Authorization is required to modify this property. See also [`kafka_enable_authorization`](#kafka_enable_authorization).

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#enable_schema_id_validation)enable_schema_id_validation

Controls whether Redpanda validates schema IDs in records and which topic properties are enforced.

Values:

-   `none`: Schema validation is disabled (no schema ID checks are done). Associated topic properties cannot be modified.

-   `redpanda`: Schema validation is enabled. Only Redpanda topic properties are accepted.

-   `compat`: Schema validation is enabled. Both Redpanda and compatible topic properties are accepted.


> 📝 **NOTE: Enterprise license required**
>
> Enterprise license required
>
> The following values require an Enterprise license: `compat`, `redpanda`
>
> For license details, see [Redpanda Licensing](https://docs.redpanda.com/streaming/current/get-started/licensing/).

| Property | Value |
| --- | --- |
| Type | string |
| Default | none |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Server-Side Schema ID Validation |

### [](#enable_shadow_linking)enable_shadow_linking

Enable creating shadow links from this cluster to a remote source cluster for data replication.

> 📝 **NOTE: Enterprise license required**
>
> Enterprise license required
>
> The following values require an Enterprise license: `true`
>
> For license details, see [Redpanda Licensing](https://docs.redpanda.com/streaming/current/get-started/licensing/).

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#enable_transactions)enable_transactions

Enable transactions (atomic writes).

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#enable_usage)enable_usage

Enables the usage tracking mechanism, storing windowed history of kafka/cloud\_storage metrics over time.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#features_auto_enable)features_auto_enable

Whether new feature flags auto-activate after upgrades (true) or must wait for manual activation via the Admin API (false).

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#fetch_max_bytes)fetch_max_bytes

Maximum number of bytes returned in a fetch request.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 57671680 |
| Nullable | No |
| Unit | Bytes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#fetch_max_read_concurrency)fetch_max_read_concurrency

**Introduced in v25.3.3**

The maximum number of concurrent partition reads per fetch request on each shard. Setting this higher than the default can lead to partition starvation and unneeded memory usage.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 1 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 1 |

### [](#fetch_pid_d_coeff)fetch_pid_d_coeff

Derivative coefficient for fetch PID controller.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 0 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#fetch_pid_i_coeff)fetch_pid_i_coeff

Integral coefficient for fetch PID controller.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 0.01 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#fetch_pid_max_debounce_ms)fetch_pid_max_debounce_ms

The maximum debounce time the fetch PID controller will apply, in milliseconds.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 100 (100 milliseconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#fetch_pid_p_coeff)fetch_pid_p_coeff

Proportional coefficient for fetch PID controller.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 100 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#fetch_pid_target_utilization_fraction)fetch_pid_target_utilization_fraction

A fraction, between 0 and 1, for the target reactor utilization of the fetch scheduling group.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 0.2 |
| Nullable | No |
| Unit | Fraction |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#fetch_read_strategy)fetch_read_strategy

The strategy used to fulfill fetch requests.

-   `polling`: If `fetch_reads_debounce_timeout` is set to its default value, then this acts exactly like `non_polling`; otherwise, it acts like `non_polling_with_debounce` (deprecated).

-   `non_polling`: The backend is signaled when a partition has new data, so Redpanda does not need to repeatedly read from every partition in the fetch. Redpanda Data recommends using this value for most workloads, because it can improve fetch latency and CPU utilization.

-   `non_polling_with_debounce`: This option behaves like `non_polling`, but it includes a debounce mechanism with a fixed delay specified by `fetch_reads_debounce_timeout` at the start of each fetch. By introducing this delay, Redpanda can accumulate more data before processing, leading to fewer fetch operations and returning larger amounts of data. Enabling this option reduces reactor utilization, but it may also increase end-to-end latency.


| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | polling, non_polling, non_polling_with_debounce, non_polling_with_pid |
| Default | non_polling |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | model::fetch_read_strategy_to_string( model::fetch_read_strategy::non_polling) |

### [](#fetch_reads_debounce_timeout)fetch_reads_debounce_timeout

Time to wait for the next read in fetch requests when the requested minimum bytes was not reached.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 1 (1 millisecond) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#fetch_session_eviction_timeout_ms)fetch_session_eviction_timeout_ms

Time duration after which the inactive fetch session is removed from the fetch session cache. Fetch sessions are used to implement the incremental fetch requests where a consumer does not send all requested partitions to the server but the server tracks them for the consumer.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 60000 (1 minute) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#group_initial_rebalance_delay)group_initial_rebalance_delay

Delay added to the rebalance phase to wait for new members.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 3000 (3 seconds) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#group_max_session_timeout_ms)group_max_session_timeout_ms

The maximum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 300000 (5 minutes) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |

### [](#group_min_session_timeout_ms)group_min_session_timeout_ms

The minimum allowed session timeout for registered consumers. Shorter timeouts result in quicker failure detection at the cost of more frequent consumer heartbeating, which can overwhelm broker resources.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 6000 (6 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |

### [](#group_new_member_join_timeout)group_new_member_join_timeout

Timeout for new member joins.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 30000 (30 seconds) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#group_offset_retention_check_ms)group_offset_retention_check_ms

Frequency rate at which the system should check for expired group offsets.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 600000 (10 minutes) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#group_offset_retention_sec)group_offset_retention_sec

Consumer group offset retention seconds. To disable offset retention, set this to null.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17179869184, 17179869183] |
| Default | 604800 (1 week) |
| Nullable | Yes |
| Unit | Seconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#group_topic_partitions)group_topic_partitions

Number of partitions in the internal group membership topic.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-2147483648, 2147483647] |
| Default | 16 |
| Nullable | No |
| Unit | Number of partitions per topic |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#health_manager_tick_interval)health_manager_tick_interval

How often the health manager runs.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 180000 (3 minutes) |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#health_monitor_max_metadata_age)health_monitor_max_metadata_age

Maximum age of the metadata cached in the health monitor of a non-controller broker.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 10000 (10 seconds) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#http_authentication)http_authentication

A list of supported HTTP authentication mechanisms. Accepted Values: `BASIC`, `OIDC`.

> 📝 **NOTE: Enterprise license required**
>
> Enterprise license required
>
> The following values require an Enterprise license: `OIDC`
>
> For license details, see [Redpanda Licensing](https://docs.redpanda.com/streaming/current/get-started/licensing/).

| Property | Value |
| --- | --- |
| Type | array |
| Default | [BASIC] |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_backlog_controller_i_coeff)iceberg_backlog_controller_i_coeff

Controls how much past backlog (unprocessed work) affects the priority of processing new data in the Iceberg system. The system accumulates backlog errors over time, and this coefficient determines how much that accumulated backlog influences the urgency of data translation.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 0.005 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#iceberg_backlog_controller_p_coeff)iceberg_backlog_controller_p_coeff

Proportional coefficient for the Iceberg backlog controller. Number of shares assigned to the datalake scheduling group will be proportional to the backlog size error. A negative value means larger and faster changes in the number of shares in the datalake scheduling group.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 0.00001 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#iceberg_catalog_base_location)iceberg_catalog_base_location

Base path for the object-storage-backed Iceberg catalog. After Iceberg is enabled, do not change this value.

| Property | Value |
| --- | --- |
| Type | string |
| Default | redpanda-iceberg-catalog |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_catalog_commit_interval_ms)iceberg_catalog_commit_interval_ms

The frequency at which the Iceberg coordinator commits topic files to the catalog. This is the interval between commit transactions across all topics monitored by the coordinator, not the interval between individual commits.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 1 minute |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#iceberg_catalog_type)iceberg_catalog_type

Iceberg catalog type that Redpanda will use to commit table metadata updates. Supported types: `rest`, `object_storage`. NOTE: You must set [`iceberg_rest_catalog_endpoint`](#iceberg_rest_catalog_endpoint) at the same time that you set `iceberg_catalog_type` to `rest`.

| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | object_storage, rest |
| Default | object_storage |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_default_catalog_namespace)iceberg_default_catalog_namespace

**Introduced in v25.3.5**

The default namespace (database name) for Iceberg tables. All tables created by Redpanda will be placed in this namespace within the Iceberg catalog. Supports nested namespaces as an array of strings.

> ❗ **IMPORTANT**
>
> This value must be configured before enabling Iceberg and must not be changed afterward. Changing it will cause Redpanda to lose track of existing tables.

| Property | Value |
| --- | --- |
| Type | array |
| Default | [redpanda] |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_default_partition_spec)iceberg_default_partition_spec

Default value for the `redpanda.iceberg.partition.spec` topic property that determines the partition spec for the Iceberg table corresponding to the topic.

| Property | Value |
| --- | --- |
| Type | string |
| Default | (hour(redpanda.timestamp)) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | redpanda.iceberg.partition.specEnable Iceberg integration |

### [](#iceberg_delete)iceberg_delete

Default value for the `redpanda.iceberg.delete` topic property that determines if the corresponding Iceberg table is deleted upon deleting the topic.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_disable_automatic_snapshot_expiry)iceberg_disable_automatic_snapshot_expiry

Whether to disable automatic Iceberg snapshot expiry. This property may be useful if the Iceberg catalog expects to perform snapshot expiry on its own.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_disable_snapshot_tagging)iceberg_disable_snapshot_tagging

Whether to disable tagging of Iceberg snapshots. These tags are used to ensure that the snapshots that Redpanda writes are retained during snapshot removal, which in turn, helps Redpanda ensure exactly-once delivery of records. Disabling tags is therefore not recommended, but it may be useful if the Iceberg catalog does not support tags.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_dlq_table_suffix)iceberg_dlq_table_suffix

The suffix added to Iceberg table names when creating dead-letter queue (DLQ) tables for invalid records. Choose a suffix that won’t conflict with existing table names. This is especially important for catalogs that don’t support the tilde (~) character in table names. Don’t change this value after creating DLQ tables.

| Property | Value |
| --- | --- |
| Type | string |
| Default | ~dlq |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_enabled)iceberg_enabled

Enables the translation of topic data into Iceberg tables. Setting `iceberg_enabled` to `true` activates the feature at the cluster level, but each topic must also set the `redpanda.iceberg.enabled` topic-level property to `true` to use it. If `iceberg_enabled` is set to `false`, then the feature is disabled for all topics in the cluster, overriding any topic-level settings.

> 📝 **NOTE: Enterprise license required**
>
> Enterprise license required
>
> The following values require an Enterprise license: `true`
>
> For license details, see [Redpanda Licensing](https://docs.redpanda.com/streaming/current/get-started/licensing/).

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | redpanda.iceberg.enabled |

### [](#iceberg_invalid_record_action)iceberg_invalid_record_action

Default value for the `redpanda.iceberg.invalid.record.action` topic property.

| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | drop, dlq_table |
| Default | dlq_table |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | redpanda.iceberg.invalid.record.actionTroubleshoot Iceberg Topics |

### [](#iceberg_latest_schema_cache_ttl_ms)iceberg_latest_schema_cache_ttl_ms

The TTL for caching the latest schema during translation when using the [`value_schema_latest`](https://docs.redpanda.com/streaming/current/manage/iceberg/specify-iceberg-schema/#value_schema_latest) iceberg mode. This setting controls how long the latest schema remains cached during translation, which affects schema refresh behavior and performance.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 5 minutes |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Related topics | value_schema_latest |

### [](#iceberg_rest_catalog_authentication_mode)iceberg_rest_catalog_authentication_mode

The authentication mode for client requests made to the Iceberg catalog. Choose from: `none`, `bearer`, `oauth2`, and `aws_sigv4`. In `bearer` mode, the token specified in `iceberg_rest_catalog_token` is used unconditonally, and no attempts are made to refresh the token. In `oauth2` mode, the credentials specified in `iceberg_rest_catalog_client_id` and `iceberg_rest_catalog_client_secret` are used to obtain a bearer token from the URI defined by `iceberg_rest_catalog_oauth2_server_uri`. In `aws_sigv4` mode, the same AWS credentials used for cloud storage (see `cloud_storage_region`, `cloud_storage_access_key`, `cloud_storage_secret_key`, and `cloud_storage_credentials_source`) are used to sign requests to AWS Glue catalog with SigV4.

| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | none, bearer, oauth2, aws_sigv4, gcp |
| Default | none |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | none |

### [](#iceberg_rest_catalog_aws_access_key)iceberg_rest_catalog_aws_access_key

AWS access key for Iceberg REST catalog SigV4 authentication. If not set, falls back to [`cloud_storage_access_key`](https://docs.redpanda.com/streaming/current/reference/properties/object-storage-properties/#cloud_storage_access_key) when using aws\_sigv4 authentication mode.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | cloud_storage_access_key |

### [](#iceberg_rest_catalog_aws_credentials_source)iceberg_rest_catalog_aws_credentials_source

**Accepted values**: `aws_instance_metadata`, `azure_aks_oidc_federation`, `azure_vm_instance_metadata`, `config_file`, `gcp_instance_metadata`, `sts`.

| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | config_file, aws_instance_metadata, sts, gcp_instance_metadata, azure_aks_oidc_federation, azure_vm_instance_metadata |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Aliases | iceberg_rest_catalog_aws_credentials_source |
| Example | config_file |
| Related topics | cloud_storage_credentials_source |

### [](#iceberg_rest_catalog_aws_region)iceberg_rest_catalog_aws_region

AWS region for Iceberg REST catalog SigV4 authentication. If not set, falls back to [`cloud_storage_region`](https://docs.redpanda.com/streaming/current/reference/properties/object-storage-properties/#cloud_storage_region) when using aws\_sigv4 authentication mode.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | cloud_storage_region |

### [](#iceberg_rest_catalog_aws_secret_key)iceberg_rest_catalog_aws_secret_key

AWS secret key for Iceberg REST catalog SigV4 authentication. If not set, falls back to [`cloud_storage_secret_key`](https://docs.redpanda.com/streaming/current/reference/properties/object-storage-properties/#cloud_storage_secret_key) when using aws\_sigv4 authentication mode.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | cloud_storage_secret_key |

### [](#iceberg_rest_catalog_aws_service_name)iceberg_rest_catalog_aws_service_name

AWS service name for SigV4 signing when using aws\_sigv4 authentication mode. Defaults to 'glue' for AWS Glue Data Catalog. Can be changed to support other AWS services that provide Iceberg REST catalog APIs.

| Property | Value |
| --- | --- |
| Type | string |
| Default | glue |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_rest_catalog_base_location)iceberg_rest_catalog_base_location

Base URI for the Iceberg REST catalog. If unset, the REST catalog server determines the location. Some REST catalogs, like AWS Glue, require the client to set this. After Iceberg is enabled, do not change this value.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_rest_catalog_client_id)iceberg_rest_catalog_client_id

Iceberg REST catalog user ID. This ID is used to query the catalog API for the OAuth token. Required if catalog type is set to `rest` and `iceberg_rest_catalog_authentication_mode` is set to `oauth2`.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_rest_catalog_client_secret)iceberg_rest_catalog_client_secret

Secret used with the client ID to query the OAuth token endpoint for Iceberg REST catalog authentication. Required if catalog type is set to `rest` and `iceberg_rest_catalog_authentication_mode` is set to `oauth2`.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_rest_catalog_credentials_host)iceberg_rest_catalog_credentials_host

The hostname to connect to for retrieving role based credentials for the Iceberg REST catalog. Derived from iceberg\_rest\_catalog\_credentials\_source if not set. Only required when using IAM role based access on AWS; does not apply to OAuth-based authentication schemes. Independent of cloud\_storage\_credentials\_host.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_rest_catalog_crl)iceberg_rest_catalog_crl

The contents of a certificate revocation list for `iceberg_rest_catalog_trust`. Takes precedence over `iceberg_rest_catalog_crl_file`.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_rest_catalog_crl_file)iceberg_rest_catalog_crl_file

Path to certificate revocation list for `iceberg_rest_catalog_trust_file`.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_rest_catalog_endpoint)iceberg_rest_catalog_endpoint

URL of Iceberg REST catalog endpoint. NOTE: If you set [`iceberg_catalog_type`](#iceberg_catalog_type) to `rest`, you must also set this property at the same time.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | http://hostname:8181 |

### [](#iceberg_rest_catalog_gcp_user_project)iceberg_rest_catalog_gcp_user_project

The GCP project that is billed for charges associated with Iceberg REST Catalog requests.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_rest_catalog_oauth2_scope)iceberg_rest_catalog_oauth2_scope

The OAuth scope used to retrieve access tokens for Iceberg catalog authentication. Only meaningful when `iceberg_rest_catalog_authentication_mode` is set to `oauth2`

| Property | Value |
| --- | --- |
| Type | string |
| Default | PRINCIPAL_ROLE:ALL |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_rest_catalog_oauth2_server_uri)iceberg_rest_catalog_oauth2_server_uri

The OAuth URI used to retrieve access tokens for Iceberg catalog authentication. If left undefined, the deprecated Iceberg catalog endpoint `/v1/oauth/tokens` is used instead.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_rest_catalog_request_timeout_ms)iceberg_rest_catalog_request_timeout_ms

Maximum length of time that Redpanda waits for a response from the REST catalog before aborting the request

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 10000 (10 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#iceberg_rest_catalog_token)iceberg_rest_catalog_token

Token used to access the REST Iceberg catalog. If the token is present, Redpanda ignores credentials stored in the properties [`iceberg_rest_catalog_client_id`](#iceberg_rest_catalog_client_id) and [`iceberg_rest_catalog_client_secret`](#iceberg_rest_catalog_client_secret).

Required if [`iceberg_rest_catalog_authentication_mode`](#iceberg_rest_catalog_authentication_mode) is set to `bearer`.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_rest_catalog_trust)iceberg_rest_catalog_trust

The contents of a certificate chain to trust for the REST Iceberg catalog.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_rest_catalog_trust_file)iceberg_rest_catalog_trust_file

Path to a file containing a certificate chain to trust for the REST Iceberg catalog.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#iceberg_rest_catalog_warehouse)iceberg_rest_catalog_warehouse

Warehouse to use for the Iceberg REST catalog. Redpanda queries the catalog to retrieve warehouse-specific configurations and automatically configures settings like the appropriate prefix. The prefix is appended to the catalog path (for example, `/v1/{prefix}/namespaces`).

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Aliases | iceberg_rest_catalog_prefix |

### [](#iceberg_target_backlog_size)iceberg_target_backlog_size

Average size per partition of the datalake translation backlog that the backlog controller tries to maintain. When the backlog size is larger than the set point, the backlog controller will increase the translation scheduling group priority.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | 104857600 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#iceberg_target_lag_ms)iceberg_target_lag_ms

Default value for the `redpanda.iceberg.target.lag.ms` topic property, which controls how often the data in an Iceberg table is refreshed with new data from the corresponding Redpanda topic. Redpanda attempts to commit all data produced to the topic within the lag target, subject to resource availability.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 1 minute |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | redpanda.iceberg.target.lag.ms |

### [](#iceberg_throttle_backlog_size_ratio)iceberg_throttle_backlog_size_ratio

Ration of the total backlog size to the disk space at which the throttle to iceberg producers is applied.

| Property | Value |
| --- | --- |
| Type | number |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#iceberg_topic_name_dot_replacement)iceberg_topic_name_dot_replacement

A replacement string for dots in topic names when creating Iceberg table names. Use this when your downstream systems don’t allow dots in table names. The replacement string cannot contain dots. Be careful to avoid table name collisions. Don’t change this value after creating any Iceberg topics with dots in their names.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#id_allocator_batch_size)id_allocator_batch_size

The ID allocator allocates messages in batches (each batch is a one log record) and then serves requests from memory without touching the log until the batch is exhausted.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-32768, 32767] |
| Default | 1000 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#id_allocator_log_capacity)id_allocator_log_capacity

Capacity of the `id_allocator` log in number of batches. After it reaches `id_allocator_stm`, it truncates the log’s prefix.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-32768, 32767] |
| Default | 100 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#initial_retention_local_target_bytes_default)initial_retention_local_target_bytes_default

Initial local retention size target for partitions of topics with [Tiered Storage](https://docs.redpanda.com/streaming/current/manage/tiered-storage/) enabled. If no initial local target retention is configured, then all locally-retained data will be delivered to the learner when joining the partition replica set.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Tiered Storage |

### [](#initial_retention_local_target_ms_default)initial_retention_local_target_ms_default

Initial local retention time target for partitions of topics with [Tiered Storage](https://docs.redpanda.com/streaming/current/manage/tiered-storage/) enabled. If no initial local target retention is configured, then all locally-retained data will be delivered to the learner when joining the partition replica set.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Tiered Storage |

### [](#internal_rpc_request_timeout_ms)internal_rpc_request_timeout_ms

**Introduced in v26.1.1**

Default timeout for RPC requests between Redpanda nodes.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 10000 (10 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#internal_topic_replication_factor)internal_topic_replication_factor

Target replication factor for internal topics.

**Unit**: number of replicas per topic.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-2147483648, 2147483647] |
| Default | 3 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#join_retry_timeout_ms)join_retry_timeout_ms

Time between cluster join retries in milliseconds.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 5000 (5 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_batch_max_bytes)kafka_batch_max_bytes

The default maximum batch size for topics if the topic property [`message.max.bytes`](https://docs.redpanda.com/streaming/current/reference/properties/topic-properties/) is not set. If the batch is compressed, the limit applies to the compressed batch size.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | 1048576 |
| Nullable | No |
| Unit | Bytes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Related topics | message.max.bytes |

### [](#kafka_connection_rate_limit)kafka_connection_rate_limit

Maximum connections per second for one core. If `null` (the default), then the number of connections per second is unlimited.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-9223372036854776000, 9223372036854776000] |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#kafka_connection_rate_limit_overrides)kafka_connection_rate_limit_overrides

Overrides the maximum connections per second for one core for the specified IP addresses (for example, `['127.0.0.1:90', '50.20.1.1:40']`)

| Property | Value |
| --- | --- |
| Type | array |
| Default | [] |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | ['127.0.0.1:90', '50.20.1.1:40'] |
| Related topics | Limit client connectionsLimit client connections |

### [](#kafka_connections_max)kafka_connections_max

Maximum number of Kafka client connections per broker. If `null`, the property is disabled.

**Unit**: number of Kafka client connections per broker

**Default**: null

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Limit client connectionsLimit client connections |

### [](#kafka_connections_max_overrides)kafka_connections_max_overrides

A list of IP addresses for which Kafka client connection limits are overridden and don’t apply. For example, `(['127.0.0.1:90', '50.20.1.1:40']).`.

| Property | Value |
| --- | --- |
| Type | array |
| Default | [] |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | ['127.0.0.1:90', '50.20.1.1:40'] |
| Related topics | Limit client connectionsLimit client connections |

### [](#kafka_connections_max_per_ip)kafka_connections_max_per_ip

Maximum number of Kafka client connections per IP address, per broker. If `null`, the property is disabled.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Limit client connectionsLimit client connections |

### [](#kafka_enable_authorization)kafka_enable_authorization

Flag to require authorization for Kafka connections. If `null`, the property is disabled, and authorization is instead enabled by [`enable_sasl`](#enable_sasl).

-   `null`: Ignored. Authorization is enabled with `enable_sasl`: `true`

-   `true`: authorization is required.

-   `false`: authorization is disabled.


| Property | Value |
| --- | --- |
| Type | boolean |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#kafka_enable_partition_reassignment)kafka_enable_partition_reassignment

Enable the Kafka partition reassignment API.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#kafka_fetch_request_timeout_ms)kafka_fetch_request_timeout_ms

**Introduced in v25.3.7**

Broker-side target for the duration of a single fetch request. The broker will try to complete fetches within the specified duration, even if it means returning less bytes in the fetch than are available.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 5000 (5 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_group_recovery_timeout_ms)kafka_group_recovery_timeout_ms

Kafka group recovery timeout.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 30000 (30 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#kafka_max_bytes_per_fetch)kafka_max_bytes_per_fetch

Limit fetch responses to this many bytes, even if the total of partition bytes limits is higher.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 67108864 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_max_message_size_upper_limit_bytes)kafka_max_message_size_upper_limit_bytes

The maximum value you can set for the [`max.message.bytes`](https://docs.redpanda.com/streaming/current/reference/properties/topic-properties/#maxmessagebytes) topic property. When set to `null`, no limit is enforced.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-2147483648, 2147483647] |
| Default | 104857600 |
| Nullable | Yes |
| Unit | Bytes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Related topics | max.message.bytes |

### [](#kafka_memory_share_for_fetch)kafka_memory_share_for_fetch

The share of Kafka subsystem memory that can be used for fetch read buffers, as a fraction of the Kafka subsystem memory amount.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 0.5 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#kafka_mtls_principal_mapping_rules)kafka_mtls_principal_mapping_rules

Principal mapping rules for mTLS authentication on the Kafka API. If `null`, the property is disabled.

| Property | Value |
| --- | --- |
| Type | array |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#kafka_nodelete_topics)kafka_nodelete_topics

A list of topics that are protected from deletion and configuration changes by Kafka clients. Set by default to a list of Redpanda internal topics.

| Property | Value |
| --- | --- |
| Type | array |
| Default | [_redpanda.audit_log, __consumer_offsets, _schemas] |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Consumer OffsetsSchema Registry |

### [](#kafka_noproduce_topics)kafka_noproduce_topics

A list of topics that are protected from being produced to by Kafka clients. Set by default to a list of Redpanda internal topics.

| Property | Value |
| --- | --- |
| Type | array |
| Default | [] |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#kafka_produce_batch_validation)kafka_produce_batch_validation

Controls the level of validation performed on batches produced to Redpanda. When set to `legacy`, there is minimal validation performed on the produce path. When set to `relaxed`, full validation is performed on uncompressed batches and on compressed batches with the `max_timestamp` value left unset. When set to `strict`, full validation of uncompressed and compressed batches is performed. This should be the default in environments where producing clients are not trusted.

| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | legacy, relaxed, strict |
| Default | relaxed |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_qdc_depth_alpha)kafka_qdc_depth_alpha

Smoothing factor for Kafka queue depth control depth tracking.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 0.8 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_qdc_depth_update_ms)kafka_qdc_depth_update_ms

Update frequency for Kafka queue depth control.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 7000 (7 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_qdc_enable)kafka_qdc_enable

Enable kafka queue depth control.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#kafka_qdc_idle_depth)kafka_qdc_idle_depth

Queue depth when idleness is detected in Kafka queue depth control.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 10 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_qdc_latency_alpha)kafka_qdc_latency_alpha

Smoothing parameter for Kafka queue depth control latency tracking.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 0.002 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_qdc_max_depth)kafka_qdc_max_depth

Maximum queue depth used in Kafka queue depth control.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 100 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_qdc_max_latency_ms)kafka_qdc_max_latency_ms

Maximum latency threshold for Kafka queue depth control depth tracking.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 80 (80 milliseconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#kafka_qdc_min_depth)kafka_qdc_min_depth

Minimum queue depth used in Kafka queue depth control.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 1 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_qdc_window_count)kafka_qdc_window_count

Number of windows used in Kafka queue depth control latency tracking.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 12 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_qdc_window_size_ms)kafka_qdc_window_size_ms

Window size for Kafka queue depth control latency tracking.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 1500 (1500 milliseconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_request_max_bytes)kafka_request_max_bytes

Maximum size of a single request processed using the Kafka API.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | 104857600 |
| Nullable | No |
| Unit | Bytes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_rpc_server_stream_recv_buf)kafka_rpc_server_stream_recv_buf

Maximum size of the user-space receive buffer. If `null`, this limit is not applied.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | null |
| Nullable | Yes |
| Unit | Bytes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 65536 |

### [](#kafka_rpc_server_tcp_recv_buf)kafka_rpc_server_tcp_recv_buf

Size of the Kafka server TCP receive buffer. If `null`, the property is disabled.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-2147483648, 2147483647] |
| Default | null |
| Nullable | Yes |
| Unit | Bytes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Example | 65536 |

### [](#kafka_rpc_server_tcp_send_buf)kafka_rpc_server_tcp_send_buf

Size of the Kafka server TCP transmit buffer. If `null`, the property is disabled.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-2147483648, 2147483647] |
| Default | null |
| Nullable | Yes |
| Unit | Bytes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Example | 65536 |

### [](#kafka_sasl_max_reauth_ms)kafka_sasl_max_reauth_ms

The maximum time between Kafka client reauthentications. If a client has not reauthenticated a connection within this time frame, that connection is torn down.

> ❗ **IMPORTANT**
>
> If this property is not set (or set to `null`), session expiry is disabled, and a connection could live long after the client’s credentials are expired or revoked.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | null |
| Nullable | Yes |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | 1000 |

### [](#kafka_schema_id_validation_cache_capacity)kafka_schema_id_validation_cache_capacity

Per-shard capacity of the cache for validating schema IDs.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 128 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_tcp_keepalive_idle_timeout_seconds)kafka_tcp_keepalive_idle_timeout_seconds

TCP keepalive idle timeout in seconds for Kafka connections. This describes the timeout between TCP keepalive probes that the remote site successfully acknowledged. Refers to the TCP\_KEEPIDLE socket option. When changed, applies to new connections only.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17179869184, 17179869183] |
| Default | 120 (2 minutes) |
| Nullable | No |
| Unit | Seconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_tcp_keepalive_probe_interval_seconds)kafka_tcp_keepalive_probe_interval_seconds

TCP keepalive probe interval in seconds for Kafka connections. This describes the timeout between unacknowledged TCP keepalives. Refers to the TCP\_KEEPINTVL socket option. When changed, applies to new connections only.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17179869184, 17179869183] |
| Default | 60 (1 minute) |
| Nullable | No |
| Unit | Seconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_tcp_keepalive_probes)kafka_tcp_keepalive_probes

TCP keepalive unacknowledged probes until the connection is considered dead for Kafka connections. Refers to the TCP\_KEEPCNT socket option. When changed, applies to new connections only.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | 3 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kafka_throughput_control)kafka_throughput_control

List of throughput control groups that define exclusions from broker-wide throughput limits. Clients excluded from broker-wide throughput limits are still potentially subject to client-specific throughput limits.

Each throughput control group consists of:

-   `name` (optional) - any unique group name

-   `client_id` - regex to match client\_id


Example values:

-   `[{'name': 'first_group','client_id': 'client1'}, {'client_id': 'consumer-\d+'}]`

-   `[{'name': 'catch all'}]`

-   `[{'name': 'missing_id', 'client_id': '+empty'}]`


A connection is assigned the first matching group and is then excluded from throughput control. A `name` is not required, but can help you categorize the exclusions. Specifying `+empty` for the `client_id` will match on clients that opt not to send a `client_id`. You can also optionally omit the `client_id` and specify only a `name`, as shown. In this situation, all clients will match the rule and Redpanda will exclude them from all from broker-wide throughput control.

| Property | Value |
| --- | --- |
| Type | array |
| Default | [] |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | [{'name': 'first_group','client_id': 'client1'}, {'client_id': 'consumer-\d+'}, {'name': 'catch all'}] |
| Related topics | Manage throughput |

### [](#kafka_throughput_controlled_api_keys)kafka_throughput_controlled_api_keys

List of Kafka API keys that are subject to cluster-wide and node-wide throughput limit control.

| Property | Value |
| --- | --- |
| Type | array |
| Default | [produce, fetch] |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#kafka_throughput_limit_node_in_bps)kafka_throughput_limit_node_in_bps

The maximum rate of all ingress Kafka API traffic for a node. Includes all Kafka API traffic (requests, responses, headers, fetched data, produced data, etc.). If `null`, the property is disabled, and traffic is not limited.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-9223372036854776000, 9223372036854776000] |
| Default | null |
| Nullable | Yes |
| Unit | Bytes per second |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Node-wide throughput limits |

### [](#kafka_throughput_limit_node_out_bps)kafka_throughput_limit_node_out_bps

The maximum rate of all egress Kafka traffic for a node. Includes all Kafka API traffic (requests, responses, headers, fetched data, produced data, etc.). If `null`, the property is disabled, and traffic is not limited.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-9223372036854776000, 9223372036854776000] |
| Default | null |
| Nullable | Yes |
| Unit | Bytes per second |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Node-wide throughput limits |

### [](#kafka_throughput_replenish_threshold)kafka_throughput_replenish_threshold

Threshold for refilling the token bucket as part of enforcing throughput limits.

This threshold is evaluated with each request for data. When the number of tokens to replenish exceeds this threshold, then tokens are added to the token bucket. This ensures that the atomic is not being updated for the token count with each request. The range for this threshold is automatically clamped to the corresponding throughput limit for ingress and egress.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-9223372036854776000, 9223372036854776000] |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Related topics | kafka_throughput_limit_node_in_bpskafka_throughput_limit_node_out_bpsManage Throughput |

### [](#kafka_topics_max)kafka_topics_max

Maximum number of Kafka user topics that can be created. If `null`, then no limit is enforced.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#kvstore_flush_interval)kvstore_flush_interval

Key-value store flush interval (in milliseconds).

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 10 milliseconds |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#kvstore_max_segment_size)kvstore_max_segment_size

Key-value maximum segment size (in bytes).

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 16777216 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#leader_balancer_idle_timeout)leader_balancer_idle_timeout

Leadership rebalancing idle timeout.

**Unit**: milliseconds

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 120000 (2 minutes) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#leader_balancer_mode)leader_balancer_mode

Mode of the leader balancer optimization strategy.

Accepted values:

-   `calibrated` (default): An adaptive strategy that samples potential moves and prioritizes high-impact transfers. Minimizes unnecessary leader movement while achieving balance over time. Best for most production workloads.

-   `random`: Accepts the first random move that improves balance. Less efficient than `calibrated` because it doesn’t prioritize high-impact moves. Available as a fallback if `calibrated` causes unexpected behavior.


Legacy values `greedy_balanced_shards` and `random_hill_climbing` are treated as `calibrated`.

| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | calibrated, random |
| Default | calibrated |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | model::leader_balancer_mode_to_string( model::leader_balancer_mode::calibrated) |

### [](#leader_balancer_mute_timeout)leader_balancer_mute_timeout

The length of time that a [Raft](https://raft.github.io/) group is muted after a leadership rebalance operation. Any group that has been moved, regardless of whether the move succeeded or failed, undergoes a cooling-off period. This prevents Raft groups from repeatedly experiencing leadership rebalance operations in a short time frame, which can lead to instability in the cluster.

The leader balancer maintains a list of muted groups and reevaluates muted status at the start of each balancing iteration. Muted groups still contribute to overall cluster balance calculations although they can’t themselves be moved until the mute period is over.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 300000 (5 minutes) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#leader_balancer_node_mute_timeout)leader_balancer_node_mute_timeout

The duration after which a broker that hasn’t sent a heartbeat is considered muted. This timeout sets a threshold for identifying brokers that shouldn’t be targeted for leadership transfers when the cluster rebalances, for example, because of unreliable network connectivity.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 20000 (20 seconds) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#leader_balancer_transfer_limit_per_shard)leader_balancer_transfer_limit_per_shard

Per shard limit for in-progress leadership transfers.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 512 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#legacy_group_offset_retention_enabled)legacy_group_offset_retention_enabled

Group offset retention is enabled by default starting in Redpanda version 23.1. To enable offset retention after upgrading from an older version, set this option to true.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#legacy_permit_unsafe_log_operation)legacy_permit_unsafe_log_operation

Flag to enable a Redpanda cluster operator to use unsafe control characters within strings, such as consumer group names or user names. This flag applies only for Redpanda clusters that were originally on version 23.1 or earlier and have been upgraded to version 23.2 or later. Starting in version 23.2, newly-created Redpanda clusters ignore this property.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#legacy_unsafe_log_warning_interval_sec)legacy_unsafe_log_warning_interval_sec

Period at which to log a warning about using unsafe strings containing control characters. If unsafe strings are permitted by `legacy_permit_unsafe_log_operation`, a warning will be logged at an interval specified by this property.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17179869184, 17179869183] |
| Default | 300 (5 minutes) |
| Nullable | No |
| Unit | Seconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#log_cleanup_policy)log_cleanup_policy

Default cleanup policy for topic logs.

The topic property [`cleanup.policy`](https://docs.redpanda.com/streaming/current/reference/properties/topic-properties/#cleanuppolicy) overrides the value of `log_cleanup_policy` at the topic level.

| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | none, delete, compact |
| Default | delete |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | compact,delete |
| Related topics | cleanup.policy |

### [](#log_compaction_disable_tx_batch_removal)log_compaction_disable_tx_batch_removal

Prevents log compaction from removing transaction metadata. Only set this to `true` if you experience stability issues related to transaction cleanup during compaction.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#log_compaction_interval_ms)log_compaction_interval_ms

How often to trigger background compaction.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 10000 (10 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#log_compaction_max_priority_wait_ms)log_compaction_max_priority_wait_ms

**Introduced in v25.3.8**

Maximum time a priority partition (for example, `__consumer_offsets`) can wait for compaction before preempting regular compaction.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 3600000 (1 hour) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#log_compaction_merge_max_ranges)log_compaction_merge_max_ranges

The maximum range of segments that can be processed in a single round of adjacent segment compaction. If `null` (the default value), no maximum is imposed on the number of ranges that can be processed at once. A value below 1 effectively disables adjacent merge compaction.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#log_compaction_merge_max_segments_per_range)log_compaction_merge_max_segments_per_range

The maximum number of segments that can be combined into a single segment during an adjacent merge operation. If `null` (the default value), no maximum is imposed on the number of segments that can be combined at once. A value below 2 effectively disables adjacent merge compaction.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#log_compaction_pause_use_sliding_window)log_compaction_pause_use_sliding_window

Pause use of sliding window compaction. Toggle to `true` _only_ when you want to force adjacent segment compaction. The memory reserved by `storage_compaction_key_map_memory` is not freed when this is set to `true`.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#log_compaction_tx_batch_removal_enabled)log_compaction_tx_batch_removal_enabled

Enables removal of transactional control batches during compaction. These batches are removed according to a topic’s configured delete.retention.ms, and only if the topic’s cleanup.policy allows compaction.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#log_compaction_use_sliding_window)log_compaction_use_sliding_window

Use sliding window compaction.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#log_compression_type)log_compression_type

> ❗ **IMPORTANT**
>
> This property is ignored regardless of the value specified. The behavior is always the same as the `producer` value. Redpanda brokers do not compress or recompress data based on this property. If producers send compressed data, Redpanda stores it as-is; if producers send uncompressed data, Redpanda stores it uncompressed. Other listed values are accepted for Apache Kafka compatibility but are ignored by the broker. This property may appear in Admin API and `rpk topic describe` outputs for compatibility.

Default for the Kafka-compatible compression.type property. Redpanda does not recompress data.

The topic property [`compression.type`](https://docs.redpanda.com/streaming/current/reference/properties/topic-properties/#compressiontype) overrides the value of `log_compression_type` at the topic level.

| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | none, gzip, snappy, lz4, zstd, count, producer |
| Default | producer |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | snappy |
| Related topics | compression.type |

### [](#log_disable_housekeeping_for_tests)log_disable_housekeeping_for_tests

Disables the housekeeping loop for local storage. This property is used to simplify testing, and should not be set in production.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#log_message_timestamp_after_max_ms)log_message_timestamp_after_max_ms

The maximum allowed time difference when a record’s timestamp is in the future compared to the broker’s clock. For topics using [`CreateTime`](#log_message_timestamp_type) timestamps, Redpanda rejects records with timestamps that are too far in the future. This property has no effect on topics using [`AppendTime`](#log_message_timestamp_type) timestamps. The topic property [`message.timestamp.after.max.ms`](https://docs.redpanda.com/streaming/current/reference/properties/topic-properties/#messagetimestampaftermaxms) overrides this cluster-level setting.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 3600000 (1 hour) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | message.timestamp.after.max.ms |

### [](#log_message_timestamp_before_max_ms)log_message_timestamp_before_max_ms

The maximum allowed time difference when a record’s timestamp is in the past compared to the broker’s clock. For topics using [`CreateTime`](#log_message_timestamp_type) timestamps, Redpanda rejects records with timestamps that are too far in the past. This property has no effect on topics using [`AppendTime`](#log_message_timestamp_type) timestamps. The topic property [`message.timestamp.before.max.ms`](https://docs.redpanda.com/streaming/current/reference/properties/topic-properties/#messagetimestampbeforemaxms) overrides this cluster-level setting.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 9223372036854 |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | message.timestamp.before.max.ms |

### [](#log_message_timestamp_type)log_message_timestamp_type

Default timestamp type for topic messages (CreateTime or LogAppendTime).

The topic property [`message.timestamp.type`](https://docs.redpanda.com/streaming/current/reference/properties/topic-properties/#messagetimestamptype) overrides the value of `log_message_timestamp_type` at the topic level.

| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | CreateTime, LogAppendTime |
| Default | CreateTime |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | LogAppendTime |
| Related topics | message.timestamp.type |

### [](#log_retention_ms)log_retention_ms

The amount of time to keep a log file before deleting it (in milliseconds). If set to `-1`, no time limit is applied. This is a cluster-wide default when a topic does not set or disable [`retention.ms`](https://docs.redpanda.com/streaming/current/reference/properties/topic-properties/#retentionms).

| Property | Value |
| --- | --- |
| Type | retention_duration_property |
| Default | 604800000 (1 week) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Aliases | delete_retention_ms |
| Related topics | retention.ms |

### [](#log_segment_ms)log_segment_ms

Default lifetime of log segments. If `null`, the property is disabled, and no default lifetime is set. Any value under 60 seconds (60000 ms) is rejected. This property can also be set in the Kafka API using the Kafka-compatible alias, `log.roll.ms`.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 2 weeks |
| Nullable | Yes |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | 3600000 |
| Related topics | segment.ms |

### [](#log_segment_ms_max)log_segment_ms_max

Upper bound on topic `segment.ms`: higher values will be clamped to this value.

**Unit**: milliseconds

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 31536000000 (1 year) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 31536000000 |

### [](#log_segment_ms_min)log_segment_ms_min

Lower bound on topic `segment.ms`: lower values will be clamped to this value.

**Unit**: milliseconds

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 600000 (10 minutes) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 600000 |

### [](#log_segment_size)log_segment_size

Default log segment size in bytes for topics which do not set `segment.bytes`.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 18446744073709552000 |
| Default | 134217728 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 2147483648 |

### [](#log_segment_size_jitter_percent)log_segment_size_jitter_percent

Random variation to the segment size limit used for each partition.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 65535 |
| Default | 5 |
| Nullable | No |
| Unit | Percent |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 2 |

### [](#log_segment_size_max)log_segment_size_max

Upper bound on topic `segment.bytes`: higher values will be clamped to this limit.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 18446744073709552000 |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 268435456 |

### [](#log_segment_size_min)log_segment_size_min

Lower bound on topic `segment.bytes`: lower values will be clamped to this limit.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 18446744073709552000 |
| Default | 1048576 |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 16777216 |

### [](#lz4_decompress_reusable_buffers_disabled)lz4_decompress_reusable_buffers_disabled

Disable reusable preallocated buffers for LZ4 decompression.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#max_compacted_log_segment_size)max_compacted_log_segment_size

Maximum compacted segment size after consolidation.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 536870912 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 10737418240 |

### [](#max_compaction_lag_ms)max_compaction_lag_ms

For a compacted topic, the maximum time a message remains ineligible for compaction. The topic property `max.compaction.lag.ms` overrides this property.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 9223372036854 |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | max.compaction.lag.ms |

### [](#max_concurrent_producer_ids)max_concurrent_producer_ids

Maximum number of active producer sessions per shard. Each shard tracks producer IDs using an LRU (Least Recently Used) eviction policy. When the configured limit is exceeded, the least recently used producer IDs are evicted from the cache.

If you upgrade from 23.2.x to 23.3.x and encounter `OUT_OF_SEQUENCE` errors, consider increasing this value. In 23.3.x, the configuration changed from a per-partition basis to a per-shard basis.

> ❗ **IMPORTANT**
>
> Set a value appropriate for your workload and memory budget, especially when using transactions or idempotent producers.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 18446744073709552000 |
| Default | 100000 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Related topics | Tune producer ID limitstransactional_id_expiration_msMonitor Redpanda |

### [](#max_in_flight_pandaproxy_requests_per_shard)max_in_flight_pandaproxy_requests_per_shard

Maximum number of in-flight HTTP requests to HTTP Proxy permitted per shard. Any additional requests above this limit will be rejected with a 429 error.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 500 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#max_in_flight_schema_registry_requests_per_shard)max_in_flight_schema_registry_requests_per_shard

Maximum number of in-flight HTTP requests to Schema Registry permitted per shard. Any additional requests above this limit will be rejected with a 429 error.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 500 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#max_kafka_throttle_delay_ms)max_kafka_throttle_delay_ms

Fail-safe maximum throttle delay on Kafka requests.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 30000 (30 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#max_transactions_per_coordinator)max_transactions_per_coordinator

Specifies the maximum number of active transaction sessions per coordinator. When the threshold is passed Redpanda terminates old sessions. When an idle producer corresponding to the terminated session wakes up and produces, it leads to its batches being rejected with invalid producer epoch or invalid\_producer\_id\_mapping error (depends on the transaction execution phase).

For details, see [Transaction usage tips](https://docs.redpanda.com/streaming/current/develop/transactions/#transaction-usage-tips).

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 18446744073709552000 |
| Default | 10000 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Related topics | Transaction usage tips |

### [](#members_backend_retry_ms)members_backend_retry_ms

Time between members backend reconciliation loop retries.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 5000 (5 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#memory_abort_on_alloc_failure)memory_abort_on_alloc_failure

If `true`, the Redpanda process will terminate immediately when an allocation cannot be satisfied due to memory exhaustion. If false, an exception is thrown.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#metadata_dissemination_interval_ms)metadata_dissemination_interval_ms

Interval for metadata dissemination batching.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 3000 (3 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 5000 |

### [](#metadata_dissemination_retries)metadata_dissemination_retries

Number of attempts to look up a topic’s metadata-like shard before a request fails. This configuration controls the number of retries that request handlers perform when internal topic metadata (for topics like tx, consumer offsets, etc) is missing. These topics are usually created on demand when users try to use the cluster for the first time and it may take some time for the creation to happen and the metadata to propagate to all the brokers (particularly the broker handling the request). In the meantime Redpanda waits and retries. This configuration controls the number retries.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-32768, 32767] |
| Default | 30 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#metadata_dissemination_retry_delay_ms)metadata_dissemination_retry_delay_ms

Delay before retrying a topic lookup in a shard or other meta tables.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 500 (500 milliseconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#metrics_reporter_report_interval)metrics_reporter_report_interval

Cluster metrics reporter report interval.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 86400000 (1 day) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#metrics_reporter_tick_interval)metrics_reporter_tick_interval

Cluster metrics reporter tick interval.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 60000 (1 minute) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#metrics_reporter_url)metrics_reporter_url

URL of the cluster metrics reporter.

| Property | Value |
| --- | --- |
| Type | string |
| Default | https://m.rp.vectorized.io/v2 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#min_cleanable_dirty_ratio)min_cleanable_dirty_ratio

The minimum ratio between the number of bytes in dirty segments and the total number of bytes in closed segments that must be reached before a partition’s log is eligible for compaction in a compact topic. The topic property `min.cleanable.dirty.ratio` overrides this value at the topic level.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 0.2 |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | 0.2 |

### [](#min_compaction_lag_ms)min_compaction_lag_ms

The minimum amount of time (in ms) that a log segment must remain unaltered before it can be compacted in a compact topic.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 0 (0 milliseconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | min.compaction.lag.ms |

### [](#minimum_topic_replication)minimum_topic_replication

Minimum allowable replication factor for topics in this cluster. The set value must be positive, odd, and equal to or less than the number of available brokers. Changing this parameter only restricts newly-created topics. Redpanda returns an `INVALID_REPLICATION_FACTOR` error on any attempt to create a topic with a replication factor less than this property. If you change the `minimum_topic_replications` setting, the replication factor of existing topics remains unchanged. However, Redpanda will log a warning on start-up with a list of any topics that have fewer replicas than this minimum. For example, you might see a message such as `Topic X has a replication factor less than specified minimum: 1 < 3`.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-32768, 32767] |
| Default | 1 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#nested_group_behavior)nested_group_behavior

**Introduced in v26.1.1**

Behavior for handling nested groups when extracting groups from authentication tokens. Two options are available - none and suffix. With none, the group is left alone (e.g. '/group/child/grandchild'). Suffix will extract the final component from the nested group (e.g. '/group' → 'group' and '/group/child/grandchild' → 'grandchild').

| Property | Value |
| --- | --- |
| Type | string |
| Default | none |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#node_isolation_heartbeat_timeout)node_isolation_heartbeat_timeout

How long after the last heartbeat request a node will wait before considering itself to be isolated.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-9223372036854776000, 9223372036854776000] |
| Default | 3000 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#node_status_interval)node_status_interval

Time interval between two node status messages. Node status messages establish liveness status outside of the Raft protocol.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 100 (100 milliseconds) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#node_status_reconnect_max_backoff_ms)node_status_reconnect_max_backoff_ms

Maximum backoff (in milliseconds) to reconnect to an unresponsive peer during node status liveness checks.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 15000 (15 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#oidc_clock_skew_tolerance)oidc_clock_skew_tolerance

The amount of time (in seconds) to allow for when validating the expiry claim in the token.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17179869184, 17179869183] |
| Default | null |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#oidc_discovery_url)oidc_discovery_url

The URL pointing to the well-known discovery endpoint for the OIDC provider.

| Property | Value |
| --- | --- |
| Type | string |
| Default | https://auth.prd.cloud.redpanda.com/.well-known/openid-configuration |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#oidc_group_claim_path)oidc_group_claim_path

**Introduced in v26.1.1**

JSON path to extract groups from the JWT payload.

| Property | Value |
| --- | --- |
| Type | string |
| Default | $.groups |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#oidc_http_proxy_url)oidc_http_proxy_url

**Introduced in v26.1.7**

URL of the HTTP forward proxy used for OIDC discovery and JWKS fetches. Accepts [http://host:port](http://host:port) or [https://host:port](https://host:port). When set, oidc\_discovery\_url must use https:// — plaintext OIDC origins cannot be routed through a forward proxy.

| Property | Value |
| --- | --- |
| Type | string |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#oidc_keys_refresh_interval)oidc_keys_refresh_interval

The frequency of refreshing the JSON Web Keys (JWKS) used to validate access tokens.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17179869184, 17179869183] |
| Default | 3600 (1 hour) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#oidc_principal_mapping)oidc_principal_mapping

Rule for mapping JWT payload claim to a Redpanda user principal.

| Property | Value |
| --- | --- |
| Type | string |
| Default | $.sub |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | OpenID Connect authenticationOpenID Connect authentication in Kubernetes |

### [](#oidc_token_audience)oidc_token_audience

A string representing the intended recipient of the token.

| Property | Value |
| --- | --- |
| Type | string |
| Default | redpanda |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#partition_autobalancing_concurrent_moves)partition_autobalancing_concurrent_moves

Number of partitions that can be reassigned at once.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 50 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#partition_autobalancing_max_disk_usage_percent)partition_autobalancing_max_disk_usage_percent

> 📝 **NOTE**
>
> This property applies only when [`partition_autobalancing_mode`](#partition_autobalancing_mode) is set to `continuous`.

When the disk usage of a node exceeds this threshold, it triggers Redpanda to move partitions off of the node.

**Unit**: percent of disk used

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | 80 |
| Nullable | No |
| Unit | Percent |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Configure Continuous Data Balancing |

### [](#partition_autobalancing_min_size_threshold)partition_autobalancing_min_size_threshold

Minimum size of partition that is going to be prioritized when rebalancing a cluster due to the disk size threshold being breached. This value is calculated automatically by default.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#partition_autobalancing_mode)partition_autobalancing_mode

Controls when and how Redpanda automatically rebalances partition replicas across brokers. For more information, see [partition balancing](https://docs.redpanda.com/streaming/current/manage/cluster-maintenance/cluster-balancing/).

Values:

-   `continuous`: Partition balancing happens automatically to maintain optimal performance and availability, based on continuous monitoring for node changes (same as `node_add`) and also high disk usage. This option requires an enterprise license, and it is customized by [`partition_autobalancing_node_availability_timeout_sec`](#partition_autobalancing_node_availability_timeout_sec) and [`partition_autobalancing_max_disk_usage_percent`](#partition_autobalancing_max_disk_usage_percent) properties.

-   `node_add`: Partition balancing happens when a node is added.

-   `off`: Partition balancing is disabled. This option is not recommended for production clusters.


> 📝 **NOTE: Enterprise license required**
>
> Enterprise license required
>
> **License-based defaults:**
>
> -   **Community:** `node_add` (if no Enterprise license is present)
>
> -   **Enterprise:** `continuous` (if an Enterprise license is present)
>
>
> For license details, see [Redpanda Licensing](https://docs.redpanda.com/streaming/current/get-started/licensing/).

| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | off, node_add, continuous (Enterprise) |
| Default | continuous |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | node_add |
| Related topics | partition balancingConfigure Continuous Data Balancingenterprise license |

### [](#partition_autobalancing_node_autodecommission_timeout_sec)partition_autobalancing_node_autodecommission_timeout_sec

**Introduced in v26.1.1**

When a node is unavailable for at least this timeout duration, it triggers Redpanda to decommission the node. This property applies only when `partition_autobalancing_mode` is set to `continuous`.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17179869184, 17179869183] |
| Default | null |
| Nullable | Yes |
| Unit | Seconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#partition_autobalancing_node_availability_timeout_sec)partition_autobalancing_node_availability_timeout_sec

When a node is unavailable for at least this timeout duration, it triggers Redpanda to move partitions off of the node. This property applies only when `partition_autobalancing_mode` is set to `continuous`.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17179869184, 17179869183] |
| Default | 900 (15 minutes) |
| Nullable | No |
| Unit | Seconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Configure Continuous Data Balancing |

### [](#partition_autobalancing_tick_interval_ms)partition_autobalancing_tick_interval_ms

Partition autobalancer tick interval.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 30000 (30 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#partition_autobalancing_tick_moves_drop_threshold)partition_autobalancing_tick_moves_drop_threshold

If the number of scheduled tick moves drops by this ratio, a new tick is scheduled immediately. Valid values are (0, 1\]. For example, with a value of 0.2 and 100 scheduled moves in a tick, a new tick is scheduled when the in-progress moves are fewer than 80.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 0.2 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#partition_autobalancing_topic_aware)partition_autobalancing_topic_aware

If `true`, Redpanda prioritizes balancing a topic’s partition replica count evenly across all brokers while it’s balancing the cluster’s overall partition count. Because different topics in a cluster can have vastly different load profiles, this better distributes the workload of the most heavily-used topics evenly across brokers.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#partition_manager_shutdown_watchdog_timeout)partition_manager_shutdown_watchdog_timeout

A threshold value to detect partitions which might have been stuck while shutting down. After this threshold, a watchdog in partition manager will log information about partition shutdown not making progress.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 30000 (30 seconds) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#pp_sr_smp_max_non_local_requests)pp_sr_smp_max_non_local_requests

Maximum number of Cross-core(Inter-shard communication) requests pending in HTTP Proxy and Schema Registry seastar::smp group. (For more details, see the `seastar::smp_service_group` documentation).

See [Seastar documentation](https://docs.seastar.io/master/)

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#quota_manager_gc_sec)quota_manager_gc_sec

Quota manager GC frequency in milliseconds.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 30000 milliseconds |
| Nullable | No |
| Unit | Seconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_election_timeout_ms)raft_election_timeout_ms

Election timeout expressed in milliseconds.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 1500 (1500 milliseconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_enable_longest_log_detection)raft_enable_longest_log_detection

Enables an additional step in leader election where a candidate is allowed to wait for all the replies from the broker it requested votes from. This may introduce a small delay when recovering from failure, but it prevents truncation if any of the replicas have more data than the majority.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_enable_lw_heartbeat)raft_enable_lw_heartbeat

Enables Raft optimization of heartbeats.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_heartbeat_disconnect_failures)raft_heartbeat_disconnect_failures

The number of failed heartbeats after which an unresponsive TCP connection is forcibly closed. To disable forced disconnection, set to 0.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 3 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_heartbeat_interval_ms)raft_heartbeat_interval_ms

Number of milliseconds for Raft leader heartbeats.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 150 milliseconds |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_heartbeat_timeout_ms)raft_heartbeat_timeout_ms

Raft heartbeat RPC (remote procedure call) timeout. Raft uses a heartbeat mechanism to maintain leadership authority and to trigger leader elections. The `raft_heartbeat_interval_ms` is a periodic heartbeat sent by the partition leader to all followers to declare its leadership. If a follower does not receive a heartbeat within the `raft_heartbeat_timeout_ms`, then it triggers an election to choose a new partition leader.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 3000 (3 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_io_timeout_ms)raft_io_timeout_ms

Raft I/O timeout.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 10000 (10 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_learner_recovery_rate)raft_learner_recovery_rate

Raft learner recovery rate limit. Throttles the rate of data communicated to nodes (learners) that need to catch up to leaders. This rate limit is placed on a node sending data to a recovering node. Each sending node is limited to this rate. The recovering node accepts data as fast as possible according to the combined limits of all healthy nodes in the cluster. For example, if two nodes are sending data to the recovering node, and `raft_learner_recovery_rate` is 100 MB/sec, then the recovering node will recover at a rate of 200 MB/sec.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 104857600 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_max_buffered_follower_append_entries_bytes_per_shard)raft_max_buffered_follower_append_entries_bytes_per_shard

The total size of append entry requests that may be cached per shard, using the Raft-buffered protocol. When an entry is cached, the leader can continue serving requests because the ordering of the cached requests cannot change. When the total size of cached requests reaches the set limit, back pressure is applied to throttle producers.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 0 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_max_inflight_follower_append_entries_requests_per_shard)raft_max_inflight_follower_append_entries_requests_per_shard

The maximum number of append entry requests that may be sent from Raft groups on a Seastar shard to the current node, and are awaiting a reply. This property replaces `raft_max_concurrent_append_requests_per_follower`.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 1024 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_max_recovery_memory)raft_max_recovery_memory

Maximum memory that can be used for reads in Raft recovery process by default 15% of total memory.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 41943040 |

### [](#raft_recovery_concurrency_per_shard)raft_recovery_concurrency_per_shard

Number of partitions that may simultaneously recover data to a particular shard. This number is limited to avoid overwhelming nodes when they come back online after an outage.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 64 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_recovery_throttle_disable_dynamic_mode)raft_recovery_throttle_disable_dynamic_mode

> ⚠️ **WARNING**
>
> This property is for Redpanda internal use only. Do not use or modify this property unless specifically instructed to do so by [Redpanda Support](https://support.redpanda.com/hc/en-us). Using this property without explicit guidance from Redpanda Support could result in data loss.

Disables cross shard sharing used to throttle recovery traffic. Should only be used to debug unexpected problems.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_replica_max_flush_delay_ms)raft_replica_max_flush_delay_ms

Maximum delay between two subsequent flushes. After this delay, the log is automatically force flushed.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 100 (100 milliseconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_replica_max_pending_flush_bytes)raft_replica_max_pending_flush_bytes

Maximum number of bytes that are not flushed per partition. If the configured threshold is reached, the log is automatically flushed even if it has not been explicitly requested.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 262144 |
| Nullable | Yes |
| Unit | Bytes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_replicate_batch_window_size)raft_replicate_batch_window_size

Maximum size of requests cached for replication.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 1048576 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_smp_max_non_local_requests)raft_smp_max_non_local_requests

Maximum number of Cross-core(Inter-shard communication) requests pending in Raft seastar::smp group. For details, refer to the `seastar::smp_service_group` documentation).

See [Seastar documentation](https://docs.seastar.io/master/)

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_timeout_now_timeout_ms)raft_timeout_now_timeout_ms

Timeout for Raft’s timeout\_now RPC. This RPC is used to force a follower to dispatch a round of votes immediately.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 1000 (1 second) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#raft_transfer_leader_recovery_timeout_ms)raft_transfer_leader_recovery_timeout_ms

Follower recovery timeout waiting period when transferring leadership.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 10000 (10 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#readers_cache_eviction_timeout_ms)readers_cache_eviction_timeout_ms

Duration after which inactive readers are evicted from cache.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 30000 (30 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#readers_cache_target_max_size)readers_cache_target_max_size

Maximum desired number of readers cached per NTP. This a soft limit, meaning that a number of readers in cache may temporarily increase as cleanup is performed in the background.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 200 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#reclaim_batch_cache_min_free)reclaim_batch_cache_min_free

Minimum amount of free memory maintained by the batch cache background reclaimer.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 67108864 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#reclaim_growth_window)reclaim_growth_window

Starting from the last point in time when memory was reclaimed from the batch cache, this is the duration during which the amount of memory to reclaim grows at a significant rate, based on heuristics about the amount of available memory.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 3000 (3 seconds) |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#reclaim_max_size)reclaim_max_size

Maximum batch cache reclaim size.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 4194304 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#reclaim_min_size)reclaim_min_size

Minimum batch cache reclaim size.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 131072 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#reclaim_stable_window)reclaim_stable_window

If the duration since the last time memory was reclaimed is longer than the amount of time specified in this property, the memory usage of the batch cache is considered stable, so only the minimum size ([`reclaim_min_size`](#reclaim_min_size)) is set to be reclaimed.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 10000 (10 seconds) |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#release_cache_on_segment_roll)release_cache_on_segment_roll

Flag for specifying whether or not to release cache when a full segment is rolled.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#replicate_append_timeout_ms)replicate_append_timeout_ms

Timeout for append entry requests issued while replicating entries.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 3000 (3 seconds) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#retention_bytes)retention_bytes

Default maximum number of bytes per partition on disk before triggering deletion of the oldest messages. If `null` (the default value), no limit is applied.

The topic property [`retention.bytes`](https://docs.redpanda.com/streaming/current/reference/properties/topic-properties/#retentionbytes) overrides the value of `retention_bytes` at the topic level.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | null |
| Nullable | Yes |
| Unit | Bytes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | retention.bytes |

### [](#retention_local_strict)retention_local_strict

Flag to allow Tiered Storage topics to expand to consumable retention policy limits. When this flag is enabled, non-local retention settings are used, and local retention settings are used to inform data removal policies in low-disk space scenarios.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#retention_local_strict_override)retention_local_strict_override

Trim log data when a cloud topic reaches its local retention limit. When this option is disabled Redpanda will allow partitions to grow past the local retention limit, and will be trimmed automatically as storage reaches the configured target size.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#retention_local_target_bytes_default)retention_local_target_bytes_default

Local retention size target for partitions of topics with object storage write enabled. If `null`, the property is disabled.

This property can be overridden on a per-topic basis by setting `retention.local.target.bytes` in each topic enabled for Tiered Storage. See [Configure message retention](https://docs.redpanda.com/streaming/current/manage/cluster-maintenance/disk-utilization/#configure-message-retention).

> 📝 **NOTE**
>
> Both `retention_local_target_bytes_default` and `retention_local_target_ms_default` can be set. The limit that is reached earlier is applied.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Configure message retention |

### [](#retention_local_target_capacity_bytes)retention_local_target_capacity_bytes

The target capacity (in bytes) that log storage will try to use before additional retention rules take over to trim data to meet the target. When no target is specified, storage usage is unbounded.

> 📝 **NOTE**
>
> Redpanda Data recommends setting only one of [`retention_local_target_capacity_bytes`](#retention_local_target_capacity_bytes) or [`retention_local_target_capacity_percent`](#retention_local_target_capacity_percent). If both are set, the minimum of the two is used as the effective target capacity.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 18446744073709552000 |
| Default | null |
| Nullable | Yes |
| Unit | Bytes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | 2147483648000 |

### [](#retention_local_target_capacity_percent)retention_local_target_capacity_percent

The target capacity in percent of unreserved space ([`disk_reservation_percent`](#disk_reservation_percent)) that log storage will try to use before additional retention rules will take over to trim data in order to meet the target. When no target is specified storage usage is unbounded.

> 📝 **NOTE**
>
> Redpanda Data recommends setting only one of [`retention_local_target_capacity_bytes`](#retention_local_target_capacity_bytes) or [`retention_local_target_capacity_percent`](#retention_local_target_capacity_percent). If both are set, the minimum of the two is used as the effective target capacity.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 80 |
| Nullable | Yes |
| Unit | Percent |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | 80.0 |

### [](#retention_local_target_ms_default)retention_local_target_ms_default

Local retention time target for partitions of topics with object storage write enabled.

This property can be overridden on a per-topic basis by setting `retention.local.target.ms` in each topic enabled for Tiered Storage. See [Configure message retention](https://docs.redpanda.com/streaming/current/manage/cluster-maintenance/disk-utilization/#configure-message-retention).

> 📝 **NOTE**
>
> Both [`retention_local_target_bytes_default`](#retention_local_target_bytes_default) and [`retention_local_target_ms_default`](#retention_local_target_ms_default) can be set. The limit that is reached first is applied.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 86400000 (1 day) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Configure message retention |

### [](#retention_local_trim_interval)retention_local_trim_interval

The period during which disk usage is checked for disk pressure, and data is optionally trimmed to meet the target.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 30000 (30 seconds) |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 31536000000 |

### [](#retention_local_trim_overage_coeff)retention_local_trim_overage_coeff

The space management control loop reclaims the overage multiplied by this this coefficient to compensate for data that is written during the idle period between control loop invocations.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 2 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 1.8 |

### [](#rpc_client_connections_per_peer)rpc_client_connections_per_peer

The maximum number of connections a broker will open to each of its peers.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-2147483648, 2147483647] |
| Default | 128 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Example | 8 |

### [](#rpc_server_compress_replies)rpc_server_compress_replies

Enable compression for internal RPC (remote procedure call) server replies.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#rpc_server_listen_backlog)rpc_server_listen_backlog

Maximum TCP connection queue length for Kafka server and internal RPC server. If `null` (the default value), no queue length is set.

**Unit**: number of queue entries

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-2147483648, 2147483647] |
| Default | null |
| Nullable | Yes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#rpc_server_tcp_recv_buf)rpc_server_tcp_recv_buf

Internal RPC TCP receive buffer size. If `null` (the default value), no buffer size is set by Redpanda.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-2147483648, 2147483647] |
| Default | null |
| Nullable | Yes |
| Unit | Bytes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Example | 65536 |

### [](#rpc_server_tcp_send_buf)rpc_server_tcp_send_buf

Internal RPC TCP send buffer size. If `null` (the default value), then no buffer size is set by Redpanda.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-2147483648, 2147483647] |
| Default | null |
| Nullable | Yes |
| Unit | Bytes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Example | 65536 |

### [](#rpk_path)rpk_path

Path to RPK binary.

| Property | Value |
| --- | --- |
| Type | string |
| Default | /usr/bin/rpk |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#rps_limit_acls_and_users_operations)rps_limit_acls_and_users_operations

Rate limit, in requests per second, for ACL and user operations on the controller. The controller processes cluster management requests (such as creating, deleting, and updating ACLs and users) through the controller log (raft0).

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 1000 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#rps_limit_configuration_operations)rps_limit_configuration_operations

Rate limit, in requests per second, for configuration operations on the controller. The controller processes cluster management requests (such as cluster configuration updates, feature activations, and data policy changes) through the controller log (raft0).

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 1000 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#rps_limit_move_operations)rps_limit_move_operations

Rate limit, in requests per second, for move operations on the controller. The controller processes cluster management requests (such as moving and canceling partition replica reassignments) through the controller log (raft0).

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 1000 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#rps_limit_node_management_operations)rps_limit_node_management_operations

Rate limit, in requests per second, for node management operations on the controller. The controller processes cluster management requests (such as decommissioning, recommissioning, and setting brokers to maintenance mode) through the controller log (raft0).

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 1000 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#rps_limit_topic_operations)rps_limit_topic_operations

Rate limit, in requests per second, for topic operations on the controller. The controller processes cluster management requests (such as creating, deleting, and updating topics and partition counts) through the controller log (raft0).

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 1000 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#sampled_memory_profile)sampled_memory_profile

When `true`, memory allocations are sampled and tracked. A sampled live set of allocations can then be retrieved from the Admin API. Additionally, Redpanda will periodically log the top-n allocation sites.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#sasl_kerberos_config)sasl_kerberos_config

The location of the Kerberos `krb5.conf` file for Redpanda.

| Property | Value |
| --- | --- |
| Type | string |
| Default | /etc/krb5.conf |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#sasl_kerberos_keytab)sasl_kerberos_keytab

The location of the Kerberos keytab file for Redpanda.

| Property | Value |
| --- | --- |
| Type | string |
| Default | /var/lib/redpanda/redpanda.keytab |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#sasl_kerberos_principal)sasl_kerberos_principal

The primary of the Kerberos Service Principal Name (SPN) for Redpanda.

| Property | Value |
| --- | --- |
| Type | string |
| Default | redpanda |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#sasl_kerberos_principal_mapping)sasl_kerberos_principal_mapping

Rules for mapping Kerberos principal names to Redpanda user principals.

| Property | Value |
| --- | --- |
| Type | array |
| Default | [DEFAULT] |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#sasl_mechanisms)sasl_mechanisms

A list of supported SASL mechanisms. Accepted values: `SCRAM`, `GSSAPI`, `OAUTHBEARER`, `PLAIN`. Note that in order to enable PLAIN, you must also enable SCRAM.

> 📝 **NOTE: Enterprise license required**
>
> Enterprise license required
>
> This property requires an Enterprise license to use.
>
> For license details, see [Redpanda Licensing](https://docs.redpanda.com/streaming/current/get-started/licensing/).

| Property | Value |
| --- | --- |
| Type | array (enum) |
| Accepted values | GSSAPI (Enterprise), SCRAM, OAUTHBEARER (Enterprise), PLAIN |
| Default | SCRAM |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#sasl_mechanisms_overrides)sasl_mechanisms_overrides

Configure different SASL authentication mechanisms for specific listeners. This overrides the cluster-wide [`sasl_mechanisms`](#sasl_mechanisms) setting for the specified listener. Use this when you need different authentication methods on different listeners, such as SCRAM for internal traffic and OAUTHBEARER for external clients. The same requirements from `sasl_mechanisms` apply.

> 📝 **NOTE: Enterprise license required**
>
> Enterprise license required
>
> This property requires an Enterprise license to use.
>
> For license details, see [Redpanda Licensing](https://docs.redpanda.com/streaming/current/get-started/licensing/).

| Property | Value |
| --- | --- |
| Type | array |
| Default | [] |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | [{'listener':'kafka_listener', 'sasl_mechanisms':['SCRAM']}] |

### [](#schema_registry_always_normalize)schema_registry_always_normalize

Always normalize schemas. If set, this overrides the `normalize` parameter in requests to the Schema Registry API.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Aliases | schema_registry_normalize_on_startup |

### [](#schema_registry_enable_authorization)schema_registry_enable_authorization

Enables ACL-based authorization for Schema Registry requests. When `true`, Schema Registry uses ACL-based authorization instead of the default `public/user/superuser` authorization model.

> 📝 **NOTE: Enterprise license required**
>
> Enterprise license required
>
> The following values require an Enterprise license: `true`
>
> For license details, see [Redpanda Licensing](https://docs.redpanda.com/streaming/current/get-started/licensing/).

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#schema_registry_enable_qualified_subjects)schema_registry_enable_qualified_subjects

**Introduced in v26.1.1**

Enable parsing of qualified subject syntax (:.context:subject). When false, subjects are treated literally, as subjects in the default context. When true, qualified syntax is parsed to extract context and subject.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#segment_appender_flush_timeout_ms)segment_appender_flush_timeout_ms

Maximum delay until buffered data is written.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 1 second |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#segment_fallocation_step)segment_fallocation_step

Size for segments fallocation.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 33554432 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 32768 |

### [](#space_management_enable)space_management_enable

Option to explicitly disable automatic disk space management. If this property was explicitly disabled while using v23.2, it will remain disabled following an upgrade.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#space_management_enable_override)space_management_enable_override

Enable automatic space management. This option is ignored and deprecated in versions >= v23.3.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#space_management_max_log_concurrency)space_management_max_log_concurrency

Maximum parallel logs inspected during space management process.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 65535 |
| Default | 20 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 20 |

### [](#space_management_max_segment_concurrency)space_management_max_segment_concurrency

Maximum parallel segments inspected during space management process.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 65535 |
| Default | 10 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 10 |

### [](#storage_compaction_index_memory)storage_compaction_index_memory

Maximum number of bytes that may be used on each shard by compaction index writers.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 18446744073709552000 |
| Default | 134217728 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 1073741824 |

### [](#storage_compaction_key_map_memory)storage_compaction_key_map_memory

Maximum number of bytes that may be used on each shard by compaction key-offset maps. Only applies when [`log_compaction_use_sliding_window`](#log_compaction_use_sliding_window) is set to `true`.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 18446744073709552000 |
| Default | 134217728 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 1073741824 |

### [](#storage_compaction_key_map_memory_limit_percent)storage_compaction_key_map_memory_limit_percent

Limit on [`storage_compaction_key_map_memory`](#storage_compaction_key_map_memory), expressed as a percentage of memory per shard, that bounds the amount of memory used by compaction key-offset maps.

> 📝 **NOTE**
>
> Memory per shard is computed after [`data_transforms_per_core_memory_reservation`](#data_transforms_per_core_memory_reservation), and only applies when [`log_compaction_use_sliding_window`](#log_compaction_use_sliding_window) is set to `true`.

| Property | Value |
| --- | --- |
| Type | number |
| Default | 12 |
| Nullable | No |
| Unit | Percent |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 12.0 |

### [](#storage_ignore_cstore_hints)storage_ignore_cstore_hints

When set, cstore hints are ignored and not used for data access (but are otherwise generated).

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#storage_ignore_timestamps_in_future_sec)storage_ignore_timestamps_in_future_sec

The maximum number of seconds that a record’s timestamp can be ahead of a Redpanda broker’s clock and still be used when deciding whether to clean up the record for data retention. This property makes possible the timely cleanup of records from clients with clocks that are drastically unsynchronized relative to Redpanda.

When determining whether to clean up a record with timestamp more than `storage_ignore_timestamps_in_future_sec` seconds ahead of the broker, Redpanda ignores the record’s timestamp and instead uses a valid timestamp of another record in the same segment, or (if another record’s valid timestamp is unavailable) the timestamp of when the segment file was last modified (mtime).

By default, `storage_ignore_timestamps_in_future_sec` is disabled (null).

> 💡 **TIP**
>
> To figure out whether to set `storage_ignore_timestamps_in_future_sec` for your system:
>
> 1.  Look for logs with segments that are unexpectedly large and not being cleaned up.
>
> 2.  In the logs, search for records with unsynchronized timestamps that are further into the future than tolerable by your data retention and storage settings. For example, timestamps 60 seconds or more into the future can be considered to be too unsynchronized.
>
> 3.  If you find unsynchronized timestamps throughout your logs, determine the number of seconds that the timestamps are ahead of their actual time, and set `storage_ignore_timestamps_in_future_sec` to that value so data retention can proceed.
>
> 4.  If you only find unsynchronized timestamps that are the result of transient behavior, you can disable `storage_ignore_timestamps_in_future_sec`.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17179869184, 17179869183] |
| Default | null |
| Nullable | Yes |
| Unit | Seconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 3600 |

### [](#storage_max_concurrent_replay)storage_max_concurrent_replay

Maximum number of partitions' logs that will be replayed concurrently at startup, or flushed concurrently on shutdown.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 18446744073709552000 |
| Default | 1024 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 2048 |

### [](#storage_min_free_bytes)storage_min_free_bytes

Threshold of minimum bytes free space before rejecting producers.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 5368709120 |
| Nullable | No |
| Unit | Bytes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#storage_read_buffer_size)storage_read_buffer_size

Size of each read buffer (one per in-flight read, per log segment).

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 131072 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 31768 |

### [](#storage_read_readahead_count)storage_read_readahead_count

How many additional reads to issue ahead of current read location.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-32768, 32767] |
| Default | 1 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 1 |

### [](#storage_reserve_min_segments)storage_reserve_min_segments

The number of segments per partition that the system will attempt to reserve disk capacity for. For example, if the maximum segment size is configured to be 100 MB, and the value of this option is 2, then in a system with 10 partitions Redpanda will attempt to reserve at least 2 GB of disk space.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-32768, 32767] |
| Default | 2 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 4 |

### [](#storage_space_alert_free_threshold_bytes)storage_space_alert_free_threshold_bytes

Threshold of minimum bytes free space before setting storage space alert.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 0 |
| Nullable | No |
| Unit | Bytes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#storage_space_alert_free_threshold_percent)storage_space_alert_free_threshold_percent

Threshold of minimum percent free space before setting storage space alert.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | 5 |
| Nullable | No |
| Unit | Percent |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#storage_strict_data_init)storage_strict_data_init

Requires that an empty file named `.redpanda_data_dir` be present in the [`data_ directory`](https://docs.redpanda.com/streaming/current/reference/properties/broker-properties/#data_directory). If set to `true`, Redpanda will refuse to start if the file is not found in the data directory.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | data_ directory |

### [](#storage_target_replay_bytes)storage_target_replay_bytes

Target bytes to replay from disk on startup after clean shutdown: controls frequency of snapshots and checkpoints.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 18446744073709552000 |
| Default | 10737418240 |
| Nullable | No |
| Unit | Bytes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 2147483648 |

### [](#superusers)superusers

List of superuser usernames.

| Property | Value |
| --- | --- |
| Type | array |
| Default | [] |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#tls_certificate_name_format)tls_certificate_name_format

The format of the certificates’s distinguished name to use for mTLS principal mapping. The `legacy` format would appear as 'C=US,ST=California,L=San Francisco,O=Redpanda,CN=redpanda', while the `rfc2253` format would appear as 'CN=redpanda,O=Redpanda,L=San Francisco,ST=California,C=US'.

| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | legacy, rfc2253 |
| Default | legacy |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#tls_enable_renegotiation)tls_enable_renegotiation

TLS client-initiated renegotiation is considered unsafe and is disabled by default . Only re-enable it if you are experiencing issues with your TLS-enabled client. This option has no effect on TLSv1.3 connections as client-initiated renegotiation was removed.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#tls_min_version)tls_min_version

The minimum TLS version that Redpanda clusters support. This property prevents client applications from negotiating a downgrade to the TLS version when they make a connection to a Redpanda cluster.

| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | v1.0, v1.1, v1.2, v1.3 |
| Default | v1.2 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#tls_v1_2_cipher_suites)tls_v1_2_cipher_suites

The encryption algorithms available for TLS 1.2 client connections, specified as a colon-separated list in OpenSSL format. Use this to support older clients that require specific encryption methods.

| Property | Value |
| --- | --- |
| Type | string |
| Default | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#tls_v1_3_cipher_suites)tls_v1_3_cipher_suites

The encryption algorithms available for TLS 1.3 client connections, specified as a colon-separated list in OpenSSL format. Most deployments don’t need to change this. Only modify it to meet specific organizational security requirements.

| Property | Value |
| --- | --- |
| Type | string |
| Default | TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_CCM_SHA256 |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#tombstone_retention_ms)tombstone_retention_ms

The retention time for tombstone records in a compacted topic. Cannot be enabled at the same time as any of `cloud_storage_enabled`, `cloud_storage_enable_remote_read`, or `cloud_storage_enable_remote_write`. A typical default setting is `86400000`, or 24 hours.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | null |
| Nullable | Yes |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Tombstone record removal |

### [](#topic_fds_per_partition)topic_fds_per_partition

File descriptors required per partition replica. If topic creation results in the ratio of file descriptor limit to partition replicas being lower than this value, creation of new topics is fails.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-2147483648, 2147483647] |
| Default | 5 |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#topic_label_aggregation_limit)topic_label_aggregation_limit

When the number of topics exceeds this limit, the topic label in generated metrics will be aggregated. If `null`, then there is no limit.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | null |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#topic_memory_per_partition)topic_memory_per_partition

Required memory in bytes per partition replica when creating or altering topics. The total size of the memory pool for partitions is the total memory available to Redpanda times `topic_partitions_memory_allocation_percent`. Each partition created requires `topic_memory_per_partition` bytes from that pool. If insufficient memory is available, creating or altering topics fails.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | DEFAULT_TOPIC_MEMORY_PER_PARTITION |
| Nullable | Yes |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#topic_partitions_memory_allocation_percent)topic_partitions_memory_allocation_percent

Percentage of total memory to reserve for topic partitions. See [`topic_memory_per_partition`](#topic_memory_per_partition) for details.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | 10 |
| Nullable | No |
| Unit | Percent |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#topic_partitions_per_shard)topic_partitions_per_shard

Maximum number of partition replicas per shard. If topic creation results in the ratio of partition replicas to shards being higher than this value, creation of new topics fails.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | 5000 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#topic_partitions_reserve_shard0)topic_partitions_reserve_shard0

Reserved partition slots on shard (CPU core) 0 on each node. If this is greater than or equal to [`topic_partitions_per_core`](#topic_partitions_per_core), no data partitions will be scheduled on shard 0.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 4294967295 |
| Default | 0 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#transaction_coordinator_cleanup_policy)transaction_coordinator_cleanup_policy

Cleanup policy for a transaction coordinator topic.

**Accepted values:**

-   `compact`

-   `delete`

-   `["compact","delete"]`

-   `none`


| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | none, delete, compact |
| Default | delete |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | compact,delete |

### [](#transaction_coordinator_delete_retention_ms)transaction_coordinator_delete_retention_ms

Delete segments older than this age. To ensure transaction state is retained for as long as the longest-running transaction, make sure this is greater than or equal to [`transactional_id_expiration_ms`](#transactional_id_expiration_ms).

For example, if your typical transactions run for one hour, consider setting both `transaction_coordinator_delete_retention_ms` and `transactional_id_expiration_ms` to at least 3600000 (one hour), or a little over.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 604800000 (1 week) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#transaction_coordinator_log_segment_size)transaction_coordinator_log_segment_size

The size (in bytes) each log segment should be.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 18446744073709552000 |
| Default | 1073741824 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#transaction_coordinator_partitions)transaction_coordinator_partitions

Number of partitions for transactions coordinator.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-2147483648, 2147483647] |
| Default | 50 |
| Nullable | No |
| Unit | Number of partitions per topic |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#transaction_max_timeout_ms)transaction_max_timeout_ms

The maximum allowed timeout for transactions. If a client-requested transaction timeout exceeds this configuration, the broker returns an error during transactional producer initialization. This guardrail prevents hanging transactions from blocking consumer progress.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 900000 (15 minutes) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#transactional_id_expiration_ms)transactional_id_expiration_ms

Expiration time of producer IDs for both transactional and idempotent producers. Despite the name, this setting applies to all producer types. Measured starting from the time of the last write until now for a given ID.

Producer IDs are automatically removed from memory when they expire, which helps manage memory usage. However, this natural cleanup may not be sufficient for workloads with high producer churn rates. Tune this value based on your application’s producer session and transaction lifetimes. Consider your longest-running transaction duration plus a buffer to avoid premature expiration.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 604800000 (1 week) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Related topics | Tune producer ID limitsmax_concurrent_producer_ids |

### [](#tx_timeout_delay_ms)tx_timeout_delay_ms

Delay before scheduling the next check for timed out transactions.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17592186044416, 17592186044415] |
| Default | 1000 (1 second) |
| Nullable | No |
| Unit | Milliseconds |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#unsafe_enable_consumer_offsets_delete_retention)unsafe_enable_consumer_offsets_delete_retention

Enables delete retention of consumer offsets topic. This is an internal-only configuration and should be enabled only after consulting with Redpanda support.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | false |
| Nullable | No |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |

### [](#usage_disk_persistance_interval_sec)usage_disk_persistance_interval_sec

The interval in which all usage stats are written to disk.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17179869184, 17179869183] |
| Default | 300 seconds |
| Nullable | No |
| Unit | Seconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 300 |

### [](#usage_num_windows)usage_num_windows

The number of windows to persist in memory and disk.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 24 |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 24 |

### [](#usage_window_width_interval_sec)usage_window_width_interval_sec

The width of a usage window, tracking cloud and kafka ingress/egress traffic each interval.

| Property | Value |
| --- | --- |
| Type | integer |
| Range | [-17179869184, 17179869183] |
| Default | 3600 seconds |
| Nullable | No |
| Unit | Seconds |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |
| Example | 3600 |

### [](#use_fetch_scheduler_group)use_fetch_scheduler_group

Use a separate scheduler group for fetch processing.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#use_kafka_handler_scheduler_group)use_kafka_handler_scheduler_group

Use a separate scheduler group to handle parsing Kafka protocol requests.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#use_produce_scheduler_group)use_produce_scheduler_group

Use a separate scheduler group to process Kafka produce requests.

| Property | Value |
| --- | --- |
| Type | boolean |
| Default | true |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#virtual_cluster_min_producer_ids)virtual_cluster_min_producer_ids

Minimum number of active producers per virtual cluster.

| Property | Value |
| --- | --- |
| Type | integer |
| Maximum | 18446744073709552000 |
| Default | Maximum value |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |

### [](#write_caching_default)write_caching_default

The default write caching mode to apply to user topics. Write caching acknowledges a message as soon as it is received and acknowledged on a majority of brokers, without waiting for it to be written to disk. With `acks=all`, this provides lower latency while still ensuring that a majority of brokers acknowledge the write.

Fsyncs follow [`raft_replica_max_pending_flush_bytes`](#raft_replica_max_pending_flush_bytes) and [`raft_replica_max_flush_delay_ms`](#raft_replica_max_flush_delay_ms), whichever is reached first.

The `write_caching_default` cluster property can be overridden with the [`write.caching`](https://docs.redpanda.com/streaming/current/reference/properties/topic-properties/#writecaching) topic property.

| Property | Value |
| --- | --- |
| Type | string (enum) |
| Accepted values | true, false, disabled |
| Default | false |
| Nullable | No |
| Requires restart | No |
| Restored on Whole Cluster Restore | Yes |
| Visibility | User |
| Example | true |
| Related topics | write.cachingWrite caching |

### [](#zstd_decompress_workspace_bytes)zstd_decompress_workspace_bytes

Size of the zstd decompression workspace.

| Property | Value |
| --- | --- |
| Type | integer |
| Default | 8388608 |
| Nullable | No |
| Unit | Bytes |
| Requires restart | Yes |
| Restored on Whole Cluster Restore | Yes |
| Visibility | Tunable |