# 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-operator-version: v26.1.4
# EOL = End-of-Life (support lifecycle status)
page-is-nearing-eol: "false"
page-is-past-eol: "true"
page-eol-date: December 22, 2024
latest-console-tag: v3.7.3
latest-connect-version: 4.93.0
docname: cluster-properties
page-component-name: streaming
page-version: "23.3"
page-component-version: "23.3"
page-component-title: Streaming
page-relative-src-path: cluster-properties.adoc
page-edit-url: https://github.com/redpanda-data/docs/edit/v/23.3/modules/reference/pages/cluster-properties.adoc
description: Cluster configuration properties list.
page-git-created-date: "2023-05-05"
page-git-modified-date: "2024-07-30"
support-status: past end-of-life
---

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

Cluster configuration properties are the same for all brokers in a cluster. They can be set at the cluster level.

For information on how to edit cluster properties, see [Configuring Cluster Properties](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/cluster-property-configuration/). Some properties require the cluster to be restarted in order to be applied; see a specific property’s reference for whether restart is required.

* * *

## [](#admin-properties)Admin properties

### [](#admin_api_require_auth)admin_api_require_auth

Whether admin API clients must provide HTTP basic authentication headers.

**Default**: false

**Restart required**: no

* * *

### [](#superusers)superusers

List of superuser usernames.

**Default**: null

**Restart required**: no

* * *

## [](#audit-logging-properties)Audit logging properties

### [](#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.

**Default**: `false`

**Restart required**: no

* * *

### [](#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`.

**Default**: `'["management","authenticate","admin"]'`

**Restart required**: no

* * *

### [](#audit_exclude_principals)audit_exclude_principals

List of strings in JSON style identifying the principals the audit logging system should ignore. Principals can be listed as `User:name` or `name`, both are accepted.

**Default**: null

**Restart required**: no

* * *

### [](#audit_exclude_topics)audit_exclude_topics

List of strings in JSON style identifying the topics the audit logging system should ignore. This list cannot include the `_redpanda.audit_log` topic. Redpanda will reject the command if you do attempt to include that topic.

**Default**: null

**Restart required**: no

* * *

### [](#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.

**Default**: `16777216`

**Restart required**: No, but audit `audit_enabled` must be toggled to `false` then back to `true` if it’s currently enabled.

* * *

### [](#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.

**Default**: `12`

**Restart required**: no

* * *

### [](#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 `internal_topic_replication_factor` cluster config value.

**Default**: `null`

**Restart required**: no

* * *

### [](#audit_queue_drain_interval_ms)audit_queue_drain_interval_ms

Internally, Redpanda batches audit log messages in memory and periodically writes them to the audit log topic. This defines the period in milliseconds between draining this queue 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 hard shutdowns where the queue is lost.

**Default**: `500`

**Restart required**: no

* * *

### [](#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.

**Default**: `1048576`

**Restart required**: yes

* * *

## [](#object-storage-properties)Object storage properties

### [](#cloud_storage_azure_storage_account)cloud_storage_azure_storage_account

The name of the Azure storage account to use with Tiered Storage. If `null`, the property is disabled.

**Type**: string

**Default**: null

**Restart required**: yes

**Supported versions**: Redpanda v23.1 or later

* * *

### [](#cloud_storage_azure_container)cloud_storage_azure_container

The name of the Azure container to use with Tiered Storage. If `null`, the property is disabled.

> 📝 **NOTE**
>
> The container must belong to [cloud\_storage\_azure\_storage\_account](#cloud_storage_azure_storage_account).

**Type**: string

**Default**: null

**Restart required**: yes

**Supported versions**: Redpanda v23.1 or later

* * *

### [](#cloud_storage_azure_shared_key)cloud_storage_azure_shared_key

The shared key to be used for Azure Shared Key authentication with the Azure storage account configured by [cloud\_storage\_azure\_storage\_account](#cloud_storage_azure_storage_account). If `null`, the property is disabled.

> 📝 **NOTE**
>
> Redpanda expects this key string to be Base64 encoded.

**Type**: string

**Default**: null

**Restart required**: yes

**Supported versions**: Redpanda v23.1 or later

* * *

### [](#cloud_storage_access_key)cloud_storage_access_key

AWS or GCP access key.

**Default**: null

**Restart required**: yes

* * *

### [](#cloud_storage_api_endpoint)cloud_storage_api_endpoint

Optional API endpoint.

-   AWS: when left blank, it’s automatically generated using [region](#cloud_storage_region) property, and [bucket](#cloud_storage_bucket) property. Otherwise uses the value assigned.

-   GCP: use `storage.googleapis.com`.


**Default**: null

**Restart required**: yes

* * *

### [](#cloud_storage_api_endpoint_port)cloud_storage_api_endpoint_port

TLS port override.

**Default**: 443

**Restart required**: yes

* * *

### [](#cloud_storage_bucket)cloud_storage_bucket

AWS or GCS bucket that should be used to store data.

**Default**: null

**Restart required**: yes

* * *

### [](#cloud_storage_cache_size)cloud_storage_cache_size

Max size of object storage cache.

**Units**: bytes

**Default**: 21474836480 (20 GiB)

**Restart required**: yes

* * *

### [](#cloud_storage_cache_max_objects)cloud_storage_cache_max_objects

Maximum number of objects that may be held in the Tiered Storage cache. This applies simultaneously with [cloud\_storage\_cache\_size](#cloud_storage_cache_size), and whichever limit is hit first will trigger trimming of the cache.

**Requires restart:** No

**Optional:** Yes

**Visibility:** `tunable`

**Type:** integer

**Accepted values:** \[`0`, `4294967295`\]

**Default:** `100000`

* * *

### [](#cloud_storage_cache_trim_carryover_bytes)cloud_storage_cache_trim_carryover_bytes

Introduced in 23.3.17.

The cache performs a recursive directory inspection during the cache trim. The information obtained during the inspection can be carried over to the next trim operation. This property sets a limit on the memory occupied by objects that can be carried over from one trim to next, and it allows the cache to quickly unblock readers before starting the directory inspection.

**Requires restart:** No

**Nullable:** No

**Visibility:** `tunable`

**Type:** integer

**Accepted values:** \[`0`, `4294967295`\]

**Default:** `262144`

* * *

### [](#cloud_storage_cache_trim_threshold_percent_objects)cloud_storage_cache_trim_threshold_percent_objects

Introduced in 23.3.17.

Cache trimming is triggered when the number of objects in the cache reaches this percentage of its maximum object count. If unset, the default behavior is to start trimming when the cache is full.

**Requires restart:** No

**Optional:** Yes

**Visibility:** `tunable`

**Type:** number

**Default:** `null`

* * *

### [](#cloud_storage_cache_trim_threshold_percent_size)cloud_storage_cache_trim_threshold_percent_size

Introduced in 23.3.17.

Cache trimming is triggered when the cache size reaches this percentage of its maximum capacity. If unset, the default behavior is to start trimming when the cache is full.

**Requires restart:** No

**Optional:** Yes

**Visibility:** `tunable`

**Type:** number

**Default:** `null`

* * *

### [](#cloud_storage_cache_trim_walk_concurrency)cloud_storage_cache_trim_walk_concurrency

Introduced in 23.3.17.

The maximum number of concurrent tasks launched for traversing the directory structure during cache trimming. A higher number allows cache trimming to run faster but can cause latency spikes due to increased pressure on I/O subsystem and syscall threads.

**Requires restart:** No

**Nullable:** No

**Visibility:** `tunable`

**Type:** integer

**Accepted values:** \[`0`, `65535`\]

**Default:** `1`

* * *

### [](#cloud_storage_cluster_metadata_upload_interval_ms)cloud_storage_cluster_metadata_upload_interval_ms

Time interval to wait between cluster metadata uploads.

**Units**: milliseconds

**Default**: 3600000 (1 hour)

**Restart required**: no

* * *

### [](#cloud_storage_credentials_source)cloud_storage_credentials_source

The source of credentials used to connect to cloud services.

**Default**: config\_file

**Valid values**: config\_file, aws\_instance\_metadata, sts, gcp\_instance\_metadata

**Restart required**: yes

* * *

### [](#cloud_storage_disable_tls)cloud_storage_disable_tls

Disable TLS for all S3 or GCS connections.

**Type**: boolean

**Default**: false

**Restart required**: yes

* * *

### [](#cloud_storage_enabled)cloud_storage_enabled

Enable object storage. Must be set to `true` to use [Tiered Storage](https://docs.redpanda.com/streaming/23.3/manage/tiered-storage/) or Remote Read Replicas.

**Type**: boolean

**Default**: false

**Restart required**: yes

* * *

### [](#cloud_storage_max_connections)cloud_storage_max_connections

Max number of simultaneous connections to S3 per shard. Includes connections used for both uploads and downloads.

**Units**: number of simultaneous connections

**Default**: 20

**Restart required**: yes

* * *

### [](#cloud_storage_region)cloud_storage_region

AWS or GCP region that houses the bucket used for storage.

**Type**: string

**Default**: null

**Restart required**: yes

* * *

### [](#cloud_storage_secret_key)cloud_storage_secret_key

AWS or GCP secret key.

**Type**: string

**Default**: null

**Restart required**: yes

* * *

### [](#cloud_storage_trust_file)cloud_storage_trust_file

Path to certificate that should be used to validate server certificate during TLS handshake.

**Type**: string

**Default**: null

**Restart required**: yes

* * *

## [](#cluster-management-properties)Cluster management properties

### [](#cluster_id)cluster_id

Cluster identifier.

**Type**: string

**Default**: null

**Restart required**: no

* * *

### [](#controller_snapshot_max_age_sec)controller_snapshot_max_age_sec

Max time that will pass before Redpanda attempts to create a controller snapshot after a new controller command appears.

**Units**: seconds

**Default**: 60

**Restart required**: no

* * *

### [](#enable_auto_rebalance_on_node_add)enable_auto_rebalance_on_node_add

[![ Deprecated red](https://img.shields.io/badge/-Deprecated-red.svg)](../../upgrade/deprecated/)

Enable automatic partition rebalancing when new nodes are added.

**Type**: boolean

**Default**: false

**Restart required**: no

* * *

### [](#enable_cluster_metadata_upload_loop)enable_cluster_metadata_upload_loop

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

**Type**: boolean

**Default**: true

**Restart required**: yes

* * *

### [](#enable_controller_log_rate_limiting)enable_controller_log_rate_limiting

Flag to enable limiting the write rate for the controller log.

**Type**: boolean

**Default**: false

**Restart required**: no

* * *

### [](#enable_leader_balancer)enable_leader_balancer

Enable automatic leadership rebalancing. Mode is set by [`leader_balancer_mode`](#leader_balancer_mode).

**Type**: boolean

**Default**: true

**Restart required**: no

* * *

### [](#enable_rack_awareness)enable_rack_awareness

Enable rack-aware replica assignment.

**Type**: boolean

**Default**: false

**Restart required**: no

* * *

### [](#leader_balancer_mode)leader_balancer_mode

Mode of the leader balancer for optimizing movements of leadership between shards (logical CPU cores). Enabled by [`enable_leader_balancer`](#enable_leader_balancer).

Valid modes:

-   `random_hill_climbing`: a shard is randomly chosen and leadership is moved to it if the load on the original shard is reduced.

-   `greedy_balanced_shards`: leadership movement is based on a greedy heuristic of moving leaders from the most loaded shard to the least loaded shard.


**Default**: `random_hill_climbing`

**Restart required**: no

**Supported versions**: Redpanda v23.1 or later

* * *

### [](#partition_autobalancing_mode)partition_autobalancing_mode

Mode of [partition balancing](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/cluster-balancing/) for a cluster.

Available modes:

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

-   `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](https://docs.redpanda.com/streaming/23.3/get-started/licenses/), 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.

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


**Default**: `node_add`

**Restart required**: no

**Related topics**:

-   [Configure Continuous Data Balancing](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/continuous-data-balancing/)


* * *

### [](#partition_autobalancing_node_availability_timeout_sec)partition_autobalancing_node_availability_timeout_sec

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

When a node is unavailable for at least this timeout duration, it triggers Redpanda to move partitions off of the node.

**Units**: seconds

**Default**: 900 (15 min)

**Restart required**: no

**Related topics**:

-   [Configure Continuous Data Balancing](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/continuous-data-balancing/)


* * *

### [](#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.

**Units**: percent of disk used

**Default**: 80

**Range**: \[5, 100\]

**Related topics**:

-   [Configure Continuous Data Balancing](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/continuous-data-balancing/)


* * *

## [](#kafka-api-properties)Kafka API properties

### [](#kafka_admin_topic_api_rate)kafka_admin_topic_api_rate

Target quota rate for partition mutations per [`default_window_sec`](https://docs.redpanda.com/streaming/23.3/reference/tunable-properties/#default_window_sec). If `null`, the property is disabled, and no quota rate is applied.

**Units**: partition mutations per default\_window\_second

**Default**: null

**Range**: \[1, …​\]

**Restart required**: no

**Related properties**:

-   [`default_window_sec`](https://docs.redpanda.com/streaming/23.3/reference/tunable-properties/#default_window_sec)


* * *

### [](#kafka_client_group_byte_rate_quota)kafka_client_group_byte_rate_quota

A map specifying the produce-rate quota per client group.

The configurable fields:

-   `group_name`: name of a client group

-   `clients_prefix`: prefix to prepend to the name of each client belonging to the group specified by `group_name`

-   `quota`: produce-rate quota of each client in bytes per second


An example: `([{'group_name': 'first_group','clients_prefix': 'group_1','quota': 10240}])`

**Default**: {} (empty map)

**Restart required**: no

**Related topics**:

-   [Client group throughput limits](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/manage-throughput/#client-group-throughput-limits)


**Supported versions**: Redpanda v23.1 or later

* * *

### [](#kafka_client_group_fetch_byte_rate_quota)kafka_client_group_fetch_byte_rate_quota

A map specifying the fetch-rate quota per client group.

The configurable fields:

-   `group_name`: name of a client group

-   `clients_prefix`: prefix to prepend to the name of each client belonging to the group specified by `group_name`

-   `quota`: fetch-rate quota of each client in bytes per second


An example: `([{'group_name': 'first_group','clients_prefix': 'group_1','quota': 10240}])`

**Default**: {} (empty map)

**Restart required**: no

**Related topics**:

-   [Client group throughput limits](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/manage-throughput/#client-group-throughput-limits)


**Supported versions**: Redpanda v23.1 or later

* * *

### [](#enable_idempotence)enable_idempotence

Enable idempotent producers.

**Type**: boolean

**Default**: true

**Restart required**: yes

* * *

### [](#enable_sasl)enable_sasl

Enable SASL authentication for Kafka connections.

**Type**: boolean

**Default**: false

**Restart required**: no

* * *

### [](#enable_schema_id_validation)enable_schema_id_validation

Mode to enable server-side schema ID validation.

**Valid 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.


**Default**: `none`

**Restart required**: no

**Related topics**:

-   [Server-Side Schema ID Validation](https://docs.redpanda.com/streaming/23.3/manage/schema-reg/schema-id-validation/)


* * *

### [](#fetch_max_bytes)fetch_max_bytes

Maximum number of bytes returned in a fetch request.

**Units**: bytes

**Default**: 57671680 (55 MiB)

**Restart required**: no

* * *

### [](#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.

**Units**: milliseconds

**Default**: 300000 (300 sec)

**Restart required**: no

* * *

### [](#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.

**Units**: milliseconds

**Default**: 6000 (6 sec)

**Restart required**: no

* * *

### [](#kafka_connection_rate_limit)kafka_connection_rate_limit

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

**Units**: number of connections per second, per core

**Default**: null

**Range**: \[1, …​\]

**Restart required**: yes

**Related topics**:

-   [Limit client connections](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/configure-availability/#limit-client-connections)


* * *

### [](#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']`)

**Type**: string

**Default**: null

**Restart required**: no

**Related topics**:

-   [Limit client connections](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/configure-availability/#limit-client-connections)


* * *

### [](#kafka_connections_max)kafka_connections_max

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

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

**Default**: null

**Restart required**: no

**Related topics**:

-   [Limit client connections](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/configure-availability/#limit-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']).`

**Default**: {} (empty list)

**Restart required**: no

**Related topics**:

-   [Limit client connections](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/configure-availability/#limit-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.

**Units**: number of Kafka client connections per IP address, per broker

**Default**: null

**Restart required**: no

**Related topics**:

-   [Limit client connections](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/configure-availability/#limit-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).

Valid values:

-   `null`: Ignored. Authorization is enabled with [`enable_sasl`](#enable_sasl): `true`

-   `true`: authorization is required.

-   `false`: authorization is disabled.


**Type**: boolean

**Default**: null

**Related properties**:

-   [enable\_sasl](#enable_sasl)

-   `kafka_api[].authentication_method`


* * *

### [](#kafka_enable_partition_reassignment)kafka_enable_partition_reassignment

Enable the Kafka partition reassignment API.

**Type**: boolean

**Default**: true

**Restart required**: no

**Supported versions**: Redpanda v23.1 or later

* * *

### [](#kafka_group_recovery_timeout_ms)kafka_group_recovery_timeout_ms

Kafka group recovery timeout.

**Units**: milliseconds

**Default**: 30000 (30 sec)

**Restart required**: no

* * *

### [](#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.

**Default**: null

**Restart required**: no

* * *

### [](#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.

**Default**: `['_redpanda.audit_log', '__consumer_offsets', '_schemas']`

**Restart required**: no

**Related topics**:

-   [Consumer Offsets](https://docs.redpanda.com/streaming/23.3/develop/consume-data/consumer-offsets/)

-   [Schema Registry](https://docs.redpanda.com/streaming/23.3/manage/schema-reg/)


**Supported versions**: Redpanda v23.1 or later

* * *

### [](#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.

**Default**: `['_redpanda.audit_log']`

**Restart required**: no

**Supported versions**: Redpanda v23.1 or later

* * *

### [](#kafka_qdc_enable)kafka_qdc_enable

Enable Kafka queue depth control.

**Type**: boolean

**Default**: false

**Restart required**: yes

* * *

### [](#kafka_qdc_max_latency_ms)kafka_qdc_max_latency_ms

Maximum latency threshold for Kafka queue depth control depth tracking.

**Units**: milliseconds

**Default**: 80

**Restart required**: yes

* * *

### [](#kafka_quota_balancer_node_period_ms)kafka_quota_balancer_node_period_ms

The period at which the intra-node throughput quota balancer runs.

It may take longer for the balancer to complete a single balancing step than the period this property specifies, so the actual period may be more than configured here.

If `0`, the balancer is disabled and all throughput quotas are immutable.

**Units**: milliseconds

**Default**: 750

**Range**: \[0, \]

**Restart required**: no

**Related topics**:

-   [Node-wide throughput limits](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/manage-throughput/#node-wide-throughput-limits)


**Supported versions**: Redpanda v23.1 or later

* * *

### [](#kafka_quota_balancer_min_shard_throughput_ratio)kafka_quota_balancer_min_shard_throughput_ratio

The minimum value of the throughput quota a shard can get in the process of quota balancing, expressed as a ratio of default shard quota. While the value applies equally to ingress and egress traffic, the default shard quota can be different for ingress and egress and therefore result in different minimum throughput bytes-per-second (bps) values.

Both `kafka_quota_balancer_min_shard_throughput_ratio` and [kafka\_quota\_balancer\_min\_shard\_throughput\_bps](#kafka_quota_balancer_min_shard_throughput_bps) can be specified at the same time. In this case, the balancer will not decrease the effective shard quota below the largest bps value of each of these two properties.

If set to `0.0`, the minimum is disabled. If set to `1.0`, then the balancer won’t be able to rebalance quota without violating this ratio, consequently precluding the balancer from adjusting shards' quotas.

**Type**: double

**Units**: ratio of default shard quota

**Default**: 0.01

**Range**: \[0.0, 1.0\]

**Restart required**: no

**Related topics**:

-   [Node-wide throughput limits](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/manage-throughput/#node-wide-throughput-limits)


**Supported versions**: Redpanda v23.1 or later

* * *

### [](#kafka_quota_balancer_min_shard_throughput_bps)kafka_quota_balancer_min_shard_throughput_bps

The minimum value of the throughput quota a shard can get in the process of quota balancing, expressed in bytes per second. The value applies equally to ingress and egress traffic.

kafka\_quota\_balancer\_min\_shard\_throughput\_bps doesn’t override the limit settings, [kafka\_throughput\_limit\_node\_in\_bps](#kafka_throughput_limit_node_in_bps) and [kafka\_throughput\_limit\_node\_out\_bps](#kafka_throughput_limit_node_out_bps). Consequently, the value of `kafka_throughput_limit_node_in_bps` or `kafka_throughput_limit_node_out_bps` can result in lesser throughput than kafka\_quota\_balancer\_min\_shard\_throughput\_bps.

Both [kafka\_quota\_balancer\_min\_shard\_throughput\_ratio](#kafka_quota_balancer_min_shard_throughput_ratio) and kafka\_quota\_balancer\_min\_shard\_throughput\_bps can be specified at the same time. In this case, the balancer will not decrease the effective shard quota below the largest bps value of each of these two properties.

If set to `0`, no minimum is enforced.

**Units**: bytes per second

**Default**: 256

**Range**: \[0, …​\]

**Restart required**: no

**Related topics**:

-   [Node-wide throughput limits](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/manage-throughput/#node-wide-throughput-limits)


**Supported versions**: Redpanda v23.1 or later

* * *

### [](#kafka_quota_balancer_window_ms)kafka_quota_balancer_window_ms

Time window used to average the current throughput measurement for the quota balancer.

**Units**: milliseconds

**Default**: 5000

**Range**: \[1, …​\]

**Restart required**: no

**Related topics**:

-   [Node-wide throughput limits](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/manage-throughput/#node-wide-throughput-limits)


**Supported versions**: Redpanda v23.1 or later

* * *

### [](#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.

**Units**: bytes

**Default**: null

**Range**: \[32 KiB, …​\], aligned to 4096 bytes

* * *

### [](#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.

**Units**: bytes

**Default**: null

**Range**: \[32 KiB, …​\], aligned to 4096 bytes

* * *

### [](#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.

**Units**: bytes per second

**Default**: null

**Range**: \[1, …​\]

**Restart required**: no

**Related topics**:

-   [Node-wide throughput limits](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/manage-throughput/#node-wide-throughput-limits)


**Supported versions**: Redpanda v23.1 or later

* * *

### [](#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.

**Units**: bytes per second

**Default**: null

**Range**: \[1, …​\]

**Restart required**: no

**Related topics**:

-   [Node-wide throughput limits](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/manage-throughput/#node-wide-throughput-limits)


**Supported versions**: Redpanda v23.1 or later

* * *

### [](#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`.

The topic property [`segment.ms`](https://docs.redpanda.com/streaming/23.3/reference/topic-properties/#segmentms) overrides the value of `log_segment_ms` at the topic level.

**Units**: milliseconds

**Default**: 1209600000 (2 weeks)

**Range**: \[60000 (60 sec), …​\]

**Restart required**: no

**Related properties**:

-   [log\_segment\_ms\_min](https://docs.redpanda.com/streaming/23.3/reference/tunable-properties/#log_segment_ms_min)

-   [log\_segment\_ms\_max](https://docs.redpanda.com/streaming/23.3/reference/tunable-properties/#log_segment_ms_max)


**Supported versions**: Redpanda v23.1 or later

* * *

### [](#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.

**Units**: seconds

**Default**: 30 sec

* * *

### [](#oidc_discovery_url)oidc_discovery_url

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

**Default**: [https://auth.prd.cloud.redpanda.com/.well-known/openid-configuration](https://auth.prd.cloud.redpanda.com/.well-known/openid-configuration)

* * *

### [](#oidc_token_audience)oidc_token_audience

A string representing the intended recipient of the token.

**Type**: string

**Default**: `redpanda`

* * *

### [](#rm_sync_timeout_ms)rm_sync_timeout_ms

Resource manager’s synchronization timeout. Maximum time for this node to wait for internal state machine to catch up with all events written by previous leaders before rejecting a request.

**Units**: milliseconds

**Default**: 10000 (10 sec)

**Restart required**: yes

* * *

### [](#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.

**Units**: number of queue entries

**Default**: null

**Range**: \[1, …​\]

**Restart required**: yes

* * *

### [](#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.

**Units**: bytes

**Default**: null

**Range**: \[32 KiB, …​\], aligned to 4096 bytes

**Restart required**: yes

* * *

### [](#rpc_server_tcp_send_buf)rpc_server_tcp_send_buf

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

**Units**: bytes

**Default**: null

**Range**: \[32 KiB, …​\], aligned to 4096 bytes

**Restart required**: yes

* * *

### [](#sasl_kerberos_config)sasl_kerberos_config

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

**Type**: string

**Default**: `/etc/krb5.conf`

**Restart required**: no

* * *

### [](#sasl_kerberos_keytab)sasl_kerberos_keytab

The location of the Kerberos keytab file for Redpanda.

**Type**: string

**Default**: `/var/lib/redpanda/redpanda.keytab`

**Restart required**: no

* * *

### [](#sasl_kerberos_principal)sasl_kerberos_principal

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

**Type**: string

**Default**: `redpanda`

**Restart required**: no

* * *

### [](#sasl_kerberos_principal_mapping)sasl_kerberos_principal_mapping

Rules for mapping Kerberos principal names to Redpanda user principals.

**Type**: array of string

**Default**: `["DEFAULT"]`

**Restart required**: no

* * *

### [](#sasl_mechanisms)sasl_mechanisms

A list of supported SASL mechanisms. `SCRAM` and `GSSAPI` are allowed.

**Type**: array of string

**Default**: `["SCRAM"]`

**Valid values**: `"SCRAM"`, `"GSSAPI"`

**Restart required**: no

* * *

### [](#target_quota_byte_rate)target_quota_byte_rate

Target quota byte rate.

The `target_quota_byte_rate` property applies to a producer client that isn’t a member of a client group configured by [`kafka_client_group_byte_rate_quota`](#kafka_client_group_byte_rate_quota). It sets the maximum throughput quota of a client sending to a Redpanda broker node.

**Units**: bytes per second

**Default**: 2147483648 (2 GiB)

**Range**: \[1048576 (1 MiB), …​\]

**Restart required**: no

**Related topics**:

-   [Client throughput limits](https://docs.redpanda.com/streaming/23.3/manage/cluster-maintenance/manage-throughput/#client-throughput-limits)


* * *

### [](#target_fetch_quota_byte_rate)target_fetch_quota_byte_rate

Target fetch-size quota byte rate. If `null`, the property is disabled, and no quota byte rate is applied.

**Units**: bytes per second

**Default**: null

**Restart required**: no

**Supported versions**: Redpanda v23.1 or later

* * *

## [](#metrics-properties)Metrics properties

### [](#aggregate_metrics)aggregate_metrics

Enable aggregation of metrics returned by the [/metrics](https://docs.redpanda.com/streaming/23.3/reference/internal-metrics-reference/) endpoint. 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.

**Type**: boolean

**Default**: false

**Restart required**: yes

* * *

### [](#disable_metrics)disable_metrics

Disable registering metrics exposed on the internal metrics endpoint.

**Type**: boolean

**Default**: false

**Restart required**: yes

* * *

### [](#disable_public_metrics)disable_public_metrics

Disable registering metrics exposed on the public metrics endpoint.

**Type**: boolean

**Default**: false

**Restart required**: yes

* * *

### [](#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](https://docs.redpanda.com/streaming/23.3/reference/tunable-properties/#metrics_reporter_report_interval).

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

**Type**: boolean

**Default**: true

**Restart required**: no

* * *

## [](#raft-properties)Raft properties

### [](#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 will be limited to this rate. The recovering node will accept 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.

**Units**: bytes per second

**Default**: 104857600 (100 MB/sec)

**Restart required**: no

* * *

## [](#storage-properties)Storage properties

### [](#cloud_storage_cache_size_percent)cloud_storage_cache_size_percent

Maximum size of the cloud cache.

The property [`cloud_storage_cache_size`](#cloud_storage_cache_size) controls the same limit expressed as a fixed number of bytes.

> 📝 **NOTE**
>
> `cloud_storage_cache_size_percent` overrides `cloud_storage_cache_size`.

**Units**: percentage of total disk size

**Default**: 10

**Restart required**: no

* * *

### [](#delete_retention_ms)delete_retention_ms

[![ Deprecated red](https://img.shields.io/badge/-Deprecated-red.svg)](../../upgrade/deprecated/)

> ❗ **IMPORTANT**
>
> Starting in version 23.3.1, `delete_retention_ms` is deprecated. Use [`log_retention_ms`](#log_retention_ms) instead.

* * *

### [](#disk_reservation_percent)disk_reservation_percent

Amount of disk space to reserve for general system overhead.

**Units**: percentage of total disk size

**Default**: 20

**Restart required**: no

* * *

### [](#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/23.3/manage/tiered-storage/) enabled.

**Units**: bytes

**Default**: null

**Restart required**: no

* * *

### [](#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/23.3/manage/tiered-storage/) enabled.

**Units**: milliseconds

**Default**: null

**Restart required**: no

* * *

### [](#log_cleanup_policy)log_cleanup_policy

Default cleanup policy for topic logs.

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

**Default**: `delete`

**Valid Values**: `compact`, `delete`, `compact,delete`, `none`

**Restart required**: no

* * *

### [](#log_compaction_interval_ms)log_compaction_interval_ms

How often to trigger background compaction.

**Units**: milliseconds

**Default**: 10000 (10 sec)

**Restart required**: no

* * *

### [](#log_compression_type)log_compression_type

Default topic compression type (gzip, snappy, lz4, zstd, producer, or none).

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

**Default**: `producer`

**Valid values**: `gzip`, `snappy`, `lz4`, `zstd`, `producer`, `none`

**Restart required**: no

* * *

### [](#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/23.3/reference/topic-properties/#messagetimestamptype) overrides the value of `log_message_timestamp_type` at the topic level.

**Default**: `CreateTime`

**Valid values**: `CreateTime`, `LogAppendTime`

**Restart required**: no

* * *

### [](#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/23.3/reference/topic-properties/#retentionms).

**Units**: milliseconds

**Default**: 1 week

* * *

### [](#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 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.

**Units**: percentage of total disk size

**Default**: null

**Restart required**: no

* * *

### [](#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.

**Units**: percentage of total disk size

**Default**: remaining percentage of disk space after accounting for [`disk_reservation_percent`](#disk_reservation_percent) and [`cloud_storage_cache_size_percent`](#cloud_storage_cache_size_percent)

**Restart required**: no

* * *

### [](#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.

**Type**: boolean

**Default**: false

**Restart required**: no

* * *

### [](#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/23.3/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. :::

**Units**: bytes

**Default**: null

**Restart required**: no

**Related properties**:

-   [retention\_local\_target\_ms\_default](#retention_local_target_ms_default)


* * *

### [](#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/23.3/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.

**Units**: milliseconds

**Default**: 86400000 (24 hours)

**Restart required**: no

**Related properties**:

-   [retention\_local\_target\_bytes\_default](#retention_local_target_bytes_default)


* * *

### [](#retention_local_trim_interval)retention_local_trim_interval

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

**Units**: seconds

**Default**: 30

**Restart required**: no

* * *

### [](#space_management_enable)space_management_enable

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

**Type**: boolean

**Default**: `true` for all new and upgraded clusters as of v23.3.2.

**Restart required**: no

* * *

### [](#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/23.3/reference/node-properties/#data_directory). If set `true`, Redpanda will refuse to start if the file is not found in the data directory.

**Type**: boolean

**Default**: false

**Restart required**: no

* * *

### [](#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`.

**Units**: seconds

**Default**: null

**Restart required**: no

**Supported versions**: Redpanda v22.3 or later

* * *

## [](#support-properties)Support properties

### [](#legacy_permit_unsafe_log_operation)legacy_permit_unsafe_log_operation

Flag enabling 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 v23.1 or earlier that have upgraded to v23.2 or later. Newly-created Redpanda clusters v23.2 or later ignore this property.

**Type**: boolean

**Default**: true

**Restart required**: no

**Related properties**: [legacy\_unsafe\_log\_warning\_interval\_sec](#legacy_unsafe_log_warning_interval_sec)

* * *

### [](#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`](#legacy_permit_unsafe_log_operation), a warning will be logged at an interval specified by this property.

**Units**: seconds

**Default**: 300

**Restart required**: no

**Related properties**: [legacy\_permit\_unsafe\_log\_operation](#legacy_permit_unsafe_log_operation)

* * *

### [](#metrics_reporter_url)metrics_reporter_url

URL of the cluster metrics reporter.

**Default**: `s://m.rp.vectorized.io/v2`

* * *

## [](#topic-and-partition-properties)Topic and partition properties

### [](#auto_create_topics_enabled)auto_create_topics_enabled

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

**Type**: boolean

**Default**: false

**Restart required**: no

* * *

### [](#default_topic_partitions)default_topic_partitions

Default number of partitions per topic.

**Units**: number of partitions per topic

**Default**: 1

**Restart required**: no

* * *

### [](#default_topic_replications)default_topic_replications

Default replication factor for new topics.

The topic property [`replication.factor`](https://docs.redpanda.com/streaming/23.3/reference/topic-properties/#replicationfactor) overrides the value of `default_topic_replications` at the topic level.

**Units**: number of replicas per topic

**Default**: 1

**Range**: \[1, …​\], must be odd

**Restart required**: no

* * *

### [](#internal_topic_replication_factor)internal_topic_replication_factor

Target replication factor for internal topics.

**Units**: number of replicas per topic

**Default**: 3

**Restart required**: yes

* * *

### [](#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_replication` 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`.

**Units**: minimum number of replicas per topic

**Default**: 1

**Minimum**: 1

**Range**: \[1, …​\], must be odd

**Restart required**: no

* * *

### [](#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/23.3/reference/topic-properties/#retentionbytes) overrides the value of `retention_bytes` at the topic level.

**Units**: bytes per partition

**Default**: null

**Restart required**: no

* * *

### [](#rm_violation_recovery_policy)rm_violation_recovery_policy

[![ Deprecated red](https://img.shields.io/badge/-Deprecated-red.svg)](../../upgrade/deprecated/)

Describes how to recover from an invariant violation on the partition level.

**Default**: 0

**Restart required**: yes

* * *

## [](#transaction-properties)Transaction properties

### [](#enable_transactions)enable_transactions

Enable transactions (atomic writes).

**Type**: boolean

**Default**: true

**Restart required**: yes

* * *

### [](#max_transactions_per_coordinator)max_transactions_per_coordinator

Specifies the maximum number of active transaction sessions per coordinator. For details, see [Transaction usage tips](https://docs.redpanda.com/streaming/23.3/develop/transactions/#transaction-usage-tips).

**Default**: 9223372036854775807 (functionally unlimited)

**Restart required**: no

* * *

### [](#seq_table_min_size)seq_table_min_size

The minimum threshold number of sessions to keep in the seq table. Not affected by compaction.

**Default**: 1000

**Restart required**: yes

* * *

### [](#tm_sync_timeout_ms)tm_sync_timeout_ms

Transaction manager’s synchronization timeout. Maximum time to wait for internal state machine to catch up before rejecting a request.

**Units**: milliseconds

**Default**: 10000 (10 sec)

**Restart required**: yes

* * *

### [](#tm_violation_recovery_policy)tm_violation_recovery_policy

[![ Deprecated red](https://img.shields.io/badge/-Deprecated-red.svg)](../../upgrade/deprecated/)

Describes how to recover from an invariant violation at the transaction coordinator level.

**Default**: crash

**Restart required**: yes

* * *

### [](#transaction_coordinator_cleanup_policy)transaction_coordinator_cleanup_policy

Cleanup policy for a transaction coordinator topic.

**Default**: `delete`

**Valid Values**: `compact`, `delete`, `compact,delete`, `none`

**Restart required**: no

* * *

### [](#transaction_coordinator_delete_retention_ms)transaction_coordinator_delete_retention_ms

Delete segments older than this age. To ensure transaction state is retained as long as the longest-running transaction, make sure this is no less than [transactional\_id\_expiration\_ms](#transactional_id_expiration_ms).

**Units**: milliseconds

**Default**: 604800000 (1 week)

**Restart required**: no

* * *

### [](#transactional_id_expiration_ms)transactional_id_expiration_ms

Expiration time of producer IDs. Measured starting from the time of the last write until now for a given ID.

**Units**: milliseconds

**Default**: 604800000 (1 week)

**Restart required**: yes

* * *

### [](#tx_timeout_delay_ms)tx_timeout_delay_ms

Delay before scheduling the next check for timed out transactions.

**Units**: milliseconds

**Default**: 1000

**Restart required**: yes

* * *

## [](#suggested-reading)Suggested reading

-   [Kafka-compatible fast distributed transactions](https://redpanda.com/blog/fast-transactions/)