# Configure Topic 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: Configure Topic Properties
latest-redpanda-tag: v25.3.11
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: November 19, 2026
latest-connect-version: 4.93.0
docname: cluster-maintenance/topic-property-configuration
page-component-name: streaming
page-version: "25.3"
page-component-version: "25.3"
page-component-title: Streaming
page-relative-src-path: cluster-maintenance/topic-property-configuration.adoc
page-edit-url: https://github.com/redpanda-data/docs/edit/v/25.3/modules/manage/pages/cluster-maintenance/topic-property-configuration.adoc
description: Learn how to configure topic properties to control Redpanda's behavior for individual topics, including retention, cleanup policies, and Tiered Storage settings.
page-git-created-date: "2025-09-03"
page-git-modified-date: "2025-09-03"
support-status: supported
---

<!-- Source: https://docs.redpanda.com/streaming/25.3/manage/cluster-maintenance/topic-property-configuration.md -->

Topic properties control Redpanda’s behavior for individual topics, including data retention, cleanup policies, compression settings, and Tiered Storage configurations. These properties let you customize how Redpanda stores, processes, and manages data for each topic, overriding cluster-wide defaults when needed.

Redpanda stores topic properties as metadata associated with each topic and replicates them across the cluster to ensure consistency. Many topic properties correspond to [cluster properties](https://docs.redpanda.com/streaming/25.3/manage/cluster-maintenance/cluster-property-configuration/) that establish default values for all topics. When you set a topic property, it overrides the corresponding cluster default for that specific topic.

> ⚠️ **WARNING**
>
> All topic properties take effect immediately after being set. Do not modify properties on internal Redpanda topics (such as `__consumer_offsets`, `_schemas`, or other system topics) as this can cause cluster instability.

For a complete reference of available topic properties and their corresponding cluster properties, see [Topic Configuration Properties](https://docs.redpanda.com/streaming/25.3/reference/properties/topic-properties/).

## [](#configuration-methods)Configuration methods

You can configure topic properties through multiple interfaces:

-   **rpk commands** - Use [`rpk topic create`](https://docs.redpanda.com/streaming/25.3/reference/rpk/rpk-topic/rpk-topic-create/) with the `-c` flag to set properties during topic creation, or [`rpk topic alter-config`](https://docs.redpanda.com/streaming/25.3/reference/rpk/rpk-topic/rpk-topic-alter-config/) to modify existing topics.

-   **Kafka Admin API** - Any Kafka-compatible client can use the standard Admin API to configure topic properties.

-   **Kubernetes Topic resources** - In Kubernetes deployments, configure topic properties using the `additionalConfig` field in Topic resources. See [Manage Topics in Kubernetes](https://docs.redpanda.com/streaming/25.3/manage/kubernetes/k-manage-topics/).

-   **Redpanda Console** - Use the web interface to [edit topic configuration](https://docs.redpanda.com/streaming/25.3/console/ui/edit-topic-configuration/) through a graphical interface.


## [](#verify-topic-property-configuration)Verify topic property configuration

Use `rpk topic describe <topic>` to view topic properties and their configuration sources:

```none
rpk topic describe my-topic
```

The output shows two sections:

```none
SUMMARY
=======
NAME        my-topic
PARTITIONS  3
REPLICAS    3

CONFIGS
=======
KEY                     VALUE          SOURCE
cleanup.policy          delete         DEFAULT_CONFIG
compression.type        producer       DEFAULT_CONFIG
retention.ms            604800000      DEFAULT_CONFIG
write.caching           true           DYNAMIC_TOPIC_CONFIG
```

The `SOURCE` column indicates how each property is configured:

-   `DEFAULT_CONFIG` - Redpanda’s default value

-   `DYNAMIC_TOPIC_CONFIG` - User-configured value


The replication factor appears as REPLICAS in the SUMMARY section, not as replication.factor in the CONFIGS list. However, you need to use the `replication.factor` key when modifying the value with `rpk topic alter-config`.

For partition-level details, add the `-p` flag:

```none
rpk topic describe my-topic -p
```

This shows a different output focused on partition information:

```none
PARTITION  LEADER  EPOCH  REPLICAS  LOG-START-OFFSET  HIGH-WATERMARK
0          1       2     [1 2 3]   0                 6
1          2       4     [1 2 3]   0                 10
2          3       1     [1 2 3]   0                 8
```

## [](#examples)Examples

The following examples show how to configure topic-level properties. Set a topic-level property for a topic to override the value of corresponding cluster property.

### [](#create-topic-with-topic-properties)Create topic with topic properties

To set topic properties when creating a topic, use the [rpk topic create](https://docs.redpanda.com/streaming/25.3/reference/rpk/rpk-topic/rpk-topic-create/) command with the `-c` option.

For example, to create a topic with the `cleanup.policy` property set to `compact`:

#### Local

```bash
rpk topic create -c cleanup.policy=compact <topic-name>
```

#### Kubernetes

```bash
kubectl exec <pod-name> -- rpk topic create -c cleanup.policy=compact <topic-name>
```

To configure multiple properties for a topic, use the `-c` option for each property.

For example, to create a topic with all necessary properties for Tiered Storage:

#### Local

```bash
rpk topic create -c redpanda.remote.recovery=true -c redpanda.remote.write=true -c redpanda.remote.read=true <topic-name>
```

#### Kubernetes

```bash
kubectl exec <pod-name> -- rpk topic create -c redpanda.remote.recovery=true -c redpanda.remote.write=true -c redpanda.remote.read=true <topic-name>
```

### [](#modify-topic-properties)Modify topic properties

To modify topic properties of an existing topic, use the [rpk topic alter-config](https://docs.redpanda.com/streaming/25.3/reference/rpk/rpk-topic/rpk-topic-alter-config/) command.

For example, to modify a topic’s `retention.ms` property:

#### Local

```bash
rpk topic alter-config <topic-name> --set retention.ms=<retention-time>
```

#### Kubernetes

```bash
kubectl exec <pod-name> -- rpk topic alter-config <topic-name> --set retention.ms=<retention-time>
```

### [](#configure-topic-properties-with-kubernetes)Configure topic properties with Kubernetes

In Kubernetes deployments, configure topic properties using the `additionalConfig` field in Topic resources:

```yaml
apiVersion: cluster.redpanda.com/v1alpha2
kind: Topic
metadata:
  name: example-topic
spec:
  partitions: 3
  replicationFactor: 3
  additionalConfig:
    cleanup.policy: "compact"
    retention.ms: "604800000"
    segment.ms: "86400000"
```

Apply the configuration:

```bash
kubectl apply -f topic-config.yaml
```

## [](#common-topic-property-categories)Common topic property categories

The most commonly configured topic properties fall into these main categories:

### [](#disk-space-management)Disk space management

Redpanda manages disk space through two main mechanisms: **compaction** (removing duplicate keys) and **retention** (removing old data).

Choose your cleanup strategy with [`cleanup.policy`](https://docs.redpanda.com/streaming/25.3/reference/properties/topic-properties/#cleanuppolicy): - `delete` - Remove old data based on time or size limits - `compact` - Keep only the latest value for each key - `compact,delete` - Combine both strategies

### [](#compaction)Compaction

When using `cleanup.policy=compact` or `cleanup.policy=compact,delete`, configure:

-   [`min.cleanable.dirty.ratio`](https://docs.redpanda.com/streaming/25.3/reference/properties/topic-properties/#mincleanabledirtyratio) - Control when compaction triggers based on dirty data ratio

-   [`max.compaction.lag.ms`](https://docs.redpanda.com/streaming/25.3/reference/properties/topic-properties/#maxcompactionlagms) - Set maximum time before compaction is forced

-   [`min.compaction.lag.ms`](https://docs.redpanda.com/streaming/25.3/reference/properties/topic-properties/#mincompactionlagms) - Set minimum time before compaction can occur


### [](#retention)Retention

When using `cleanup.policy=delete` or `cleanup.policy=compact,delete`, configure:

-   [`retention.bytes`](https://docs.redpanda.com/streaming/25.3/reference/properties/topic-properties/#retentionbytes) - Maximum size before cleanup (size-based retention)

-   [`retention.ms`](https://docs.redpanda.com/streaming/25.3/reference/properties/topic-properties/#retentionms) - Maximum age before cleanup (time-based retention)

-   [`segment.bytes`](https://docs.redpanda.com/streaming/25.3/reference/properties/topic-properties/#segmentbytes) - Control how frequently cleanup can occur by setting segment size


### [](#performance)Performance

Essential performance tuning properties:

-   [`write.caching`](https://docs.redpanda.com/streaming/25.3/reference/properties/topic-properties/#writecaching) - Cache writes for lower latency with `acks=all`

-   [`max.message.bytes`](https://docs.redpanda.com/streaming/25.3/reference/properties/topic-properties/#maxmessagebytes) - Set maximum message size

-   [`replication.factor`](https://docs.redpanda.com/streaming/25.3/reference/properties/topic-properties/#replicationfactor) - Number of replicas for durability vs. performance


For complete details about all available topic properties, see [Topic Configuration Properties](https://docs.redpanda.com/streaming/25.3/reference/properties/topic-properties/).

## [](#related-topics)Related topics

-   [Topic Configuration Properties](https://docs.redpanda.com/streaming/25.3/reference/properties/topic-properties/) - Complete reference of all available topic properties

-   [Configure Cluster Properties](https://docs.redpanda.com/streaming/25.3/manage/cluster-maintenance/cluster-property-configuration/) - Configure cluster-wide defaults

-   [Manage Topics](https://docs.redpanda.com/streaming/25.3/develop/config-topics/) - Create and manage topics

-   [Manage Topics in Kubernetes](https://docs.redpanda.com/streaming/25.3/manage/kubernetes/k-manage-topics/) - Topic management in Kubernetes deployments

-   [Edit Topic Configuration in Redpanda Console](https://docs.redpanda.com/streaming/25.3/console/ui/edit-topic-configuration/) - Graphical topic configuration


## Suggested labs

-   [Redpanda Iceberg Docker Compose Example](https://docs.redpanda.com/labs/docker-compose/iceberg/)
-   [Enable Unified Identity with Azure Entra ID for Redpanda and Redpanda Console](https://docs.redpanda.com/labs/docker-compose/oidc/)
-   [Owl Shop Example Application in Docker](https://docs.redpanda.com/labs/docker-compose/owl-shop/)
-   [Migrate Data with Redpanda Migrator](https://docs.redpanda.com/labs/docker-compose/redpanda-migrator/)
-   [Start a Single Redpanda Broker with Redpanda Console in Docker](https://docs.redpanda.com/labs/docker-compose/single-broker/)
-   [Start a Cluster of Redpanda Brokers with Redpanda Console in Docker](https://docs.redpanda.com/labs/docker-compose/three-brokers/)
-   [Iceberg Streaming on Kubernetes with Redpanda, MinIO, and Spark](https://docs.redpanda.com/labs/kubernetes/iceberg/)

See more

[Search all labs](https://docs.redpanda.com/labs)