# Kafka vs WarpStream Configuration Reference

The primary goal of this page is to reassure experienced Kafka operators migrating to WarpStream that most of the configuration and settings they're accustomed to tuning and managing in Apache Kafka have no equivalent in WarpStream and don't need to be managed at all due to WarpStream's architecture.

<table data-header-hidden><thead><tr><th width="315">Kafka Config</th><th>WarpStream</th></tr></thead><tbody><tr><td>group.max.session.timeout.ms</td><td>Not supported.</td></tr><tr><td>auto.create.topics.enable</td><td>Same. Managed via Kafka API or WarpStream console.</td></tr><tr><td>auto.leader.rebalance.enable</td><td>N/A. WarpStream Agents do not have leaders.</td></tr><tr><td>controlled.shutdown.enable</td><td>WarpStream Agents accept a "gracefulShutdownDuration" flag that defaults to 80 seconds.</td></tr><tr><td>controlled.shutdown.max.retries</td><td>N/A. Nothing can go wrong during an Agent clean shutdown because they're stateless.</td></tr><tr><td>default.replication.factor</td><td>N/A. Doesn't apply to WarpStream because the Agents are stateless and data is stored durably in object storage at all times. Response is hard-coded to 3 to signify high durability.</td></tr><tr><td>delete.topic.enable</td><td>Same, set as a cluster level configuration via the Kafka API.</td></tr><tr><td>kafka.http.metrics.host</td><td>Not supported.</td></tr><tr><td>kafka.http.metrics.port</td><td>Agent flag "httpPort" to expose Prometheus metrics.</td></tr><tr><td>kafka.log4j.dir</td><td>Not supported.</td></tr><tr><td>kerberos.auth.enable</td><td>N/A</td></tr><tr><td>leader.imbalance.check.interval.seconds</td><td>N/A. WarpStream Agents do not have leaders.</td></tr><tr><td>leader.imbalance.per.broker.percentage</td><td>N/A. WarpStream Agents do not have leaders.</td></tr><tr><td>log.cleaner.dedupe.buffer.size</td><td>Not supported. WarpStream Agents have an equivalent to this setting internally, but its not configurable by default.</td></tr><tr><td>log.cleaner.delete.retention.ms</td><td>Topic-level config not supported. Broker-level config, "delete.retention.ms", supported.</td></tr><tr><td>log.cleaner.enable</td><td>N/A. Compacted topics are always compacted.</td></tr><tr><td>log.cleaner.min.cleanable.ratio</td><td>N/A. WarpStream uses different heuristics to determine when to compact the topic. This is handled automatically.</td></tr><tr><td>log.cleaner.threads</td><td>N/A. WarpStream is written in Go, not Java, and doesn't have user-controlled threadpools. Concurrency is managed automatically.</td></tr><tr><td>log.retention.bytes</td><td>Not supported. Response hard-coded to -1 to signify "no limit".</td></tr><tr><td>log.retention.check.interval.ms</td><td>N/A. Retention is enforced using a different mechanism called the "dead scanner" in WarpStream, and that process is managed automatically.</td></tr><tr><td>log.retention.hours</td><td>Same as Kafka.</td></tr><tr><td>Logcleaner ratio</td><td>N/A. WarpStream uses different heuristics to determine when to compact the topic. This is handled automatically.</td></tr><tr><td>log.roll.hours</td><td>N/A. WarpStream uses object storage and doesn't have physical log files that need to be rolled.</td></tr><tr><td>log.segment.bytes</td><td>N/A. Object storage file size is an implementation detail of WarpStream compaction, and WarpStream files contain data from many different topic-partitions.</td></tr><tr><td>message.max.bytes</td><td>Agent environment variable <code>WARPSTREAM_MAX_PRODUCE_RECORD_SIZE_BYTES</code></td></tr><tr><td>min.insync.replicas</td><td>N/A. Response hard-coded to 1 as object storage handles replication / durability.</td></tr><tr><td>num.io.threads</td><td>N/A. WarpStream is written in Go, not Java, and doesn't have user-controlled threadpools. Concurrency is managed automatically.</td></tr><tr><td>num.partitions</td><td>Same as Kafka.</td></tr><tr><td>num.replica.fetchers</td><td>N/A. WarpStream is written in Go, not Java, and doesn't have user-controlled threadpools. Concurrency is managed automatically.</td></tr><tr><td>offsets.topic.num.partitions</td><td>N/A. WarpStream virtual clusters do not publish offset topics. Offsets are stored in WarpStream control plane / metadata store.</td></tr><tr><td>offsets.topic.replication.factor</td><td>N/A. WarpStream virtual clusters do not publish offset topics. Offsets are stored in WarpStream control plane / metadata store.</td></tr><tr><td>port</td><td>Agent environment variable "WARPSTREAM_KAFKA_PORT".</td></tr><tr><td>replica.fetch.max.bytes</td><td>N/A. WarpStream Agents are stateless and therefore have no replicas.</td></tr><tr><td>replica.lag.max.messages</td><td>N/A. WarpStream Agents are stateless and therefore have no replicas.</td></tr><tr><td>replica.lag.time.max.ms</td><td>N/A. WarpStream Agents are stateless and therefore have no replicas.</td></tr><tr><td>unclean.leader.election.enable</td><td>N/A. WarpStream has no leaders, and therefore unclean leader elections are impossible.</td></tr><tr><td>zookeeper.session.timeout.ms</td><td>N/A. WarpStream does not depend on Zookeeper.</td></tr><tr><td>zookeeper.connection.timeout.ms</td><td>N/A. WarpStream does not depend on Zookeeper.</td></tr><tr><td>security.inter.broker.protocol</td><td>Not supported.</td></tr><tr><td>ssl.client.auth</td><td>Agent environment variable "WARPSTREAM_REQUIRE_MTLS_AUTHENTICATION"</td></tr><tr><td>ssl.truststore.location</td><td>Agent environment variable "WARPSTREAM_TLS_CLIENT_CA_CERT_FILE"</td></tr><tr><td>ssl.truststore.password</td><td>Not supported.</td></tr><tr><td>ssl.keystore.location</td><td>Agent environment variables "WARPSTREAM_TLS_SERVER_CERT_FILE", "WARPSTREAM_TLS_SERVER_PRIVATE_KEY_FILE"</td></tr><tr><td>ssl.keystore.password</td><td>N/A</td></tr><tr><td>ssl.key.password</td><td>N/A</td></tr><tr><td>ssl.protocol</td><td>Agent environment variable "WARPSTREAM_TLS_ENABLED".</td></tr><tr><td>ssl.enabled.protocols</td><td>N/A</td></tr><tr><td>ssl.keystore.type</td><td>N/A</td></tr><tr><td>ssl.truststore.type</td><td>N/A</td></tr><tr><td>broker.id.generation.enable</td><td>N/A. Broker IDs in WarpStream are virtual and generated automatically.</td></tr><tr><td>sasl.kerberos.service.name</td><td>N/A</td></tr><tr><td>num.network.threads</td><td>N/A. WarpStream is written in Go, not Java, and doesn't have user-controlled threadpools. Concurrency is managed automatically.</td></tr><tr><td>num.recovery.threads.per.data.dir</td><td>N/A. WarpStream is written in Go, not Java, and doesn't have user-controlled threadpools. Concurrency is managed automatically.<br><br>Also WarpStream Agents are stateless and have no concept of a recovery.</td></tr><tr><td>socket.send.buffer.bytes</td><td>N/A</td></tr><tr><td>socket.receive.buffer.bytes</td><td>N/A</td></tr><tr><td>socket.request.max.bytes</td><td>N/A</td></tr><tr><td>replica.fetch.wait.max.ms</td><td>N/A. WarpStream Agents are stateless and therefore have no replicas.</td></tr><tr><td>replica.socket.timeout.ms</td><td>N/A. WarpStream Agents are stateless and therefore have no replicas.</td></tr><tr><td>replica.socket.receive.buffer.bytes</td><td>N/A. WarpStream Agents are stateless and therefore have no replicas.</td></tr><tr><td>replica.high.watermark.checkpoint.interval.ms</td><td>N/A. WarpStream Agents are stateless and therefore have no replicas.</td></tr><tr><td>controller.socket.timeout.ms</td><td>N/A</td></tr><tr><td>controller.message.queue.size</td><td>N/A</td></tr><tr><td>zookeeper.sync.time.ms</td><td>N/A. WarpStream does not depend on Zookeeper.</td></tr><tr><td>queued.max.requests</td><td>N/A</td></tr><tr><td>fetch.purgatory.purge.interval.requests</td><td>N/A</td></tr><tr><td>producer.purgatory.purge.interval.requests</td><td>N/A</td></tr><tr><td>authorizer.class.name</td><td>N/A. There is only one ACL Authorized implementation in WarpStream.</td></tr><tr><td>allow.everyone.if.no.acl.found</td><td>Same as Kafka.</td></tr><tr><td>broker.id</td><td>N/A. WarpStream Broker IDs are generated automatically.</td></tr><tr><td>log.dirs</td><td>N/A. WarpStream Agents are stateless and store data exclusively in object storage.</td></tr><tr><td>zookeeper.connect</td><td>N/A. WarpStream does not depend on Zookeeper.</td></tr><tr><td>listeners</td><td>Agent environment variables: "WARPSTREAM_DISCOVERY_KAFKA_HOSTNAME_OVERRIDE" and "WARPSTREAM_KAFKA_PORT"</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.warpstream.com/warpstream/kafka/reference/protocol-and-feature-support/kafka-vs-warpstream-configuration-reference.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
