Monedula

Kafka Simulator · 16 configs

Kafka configs explained, each one simulated

Each page explains one Apache Kafka setting: what it does, its default, its valid values and the trade-off of changing it. Then it shows the setting at work in a simulator scenario, at the step where it matters.

Looking for an error message? Kafka troubleshooting

Producer configs 6

  • acks · default all Kafka producer acks compared: acks=0, acks=1 and acks=all, what each one waits for, what each can lose, and how min.insync.replicas fits in. Simulated live.
  • enable.idempotence · default true (since Kafka 3.0) How the Kafka idempotent producer works: producer ids and sequence numbers drop duplicate retries and keep order. Default true since Kafka 3.0. Simulated live.
  • max.in.flight.requests.per.connection · default 5 What max.in.flight.requests.per.connection does in Kafka, why above 1 can reorder retries without idempotence, and why 5 is safe with it. Simulated live.
  • linger.ms · default 5 (milliseconds; 0 before Kafka 4.0) What Kafka linger.ms does, its default of 5 ms since Kafka 4.0, and how it works with batch.size to trade latency for throughput. Watch batches form live.
  • batch.size · default 16384 (bytes) What Kafka producer batch.size controls, its 16384-byte default, how it works with linger.ms and compression, and what a larger batch costs. Simulated live.
  • compression.type · default none (producer); producer (topic) Kafka compression types compared: none, gzip, snappy, lz4 and zstd, producer vs topic compression.type, and why batching decides the ratio. Simulated live.

Consumer configs 4

  • auto.offset.reset · default latest What Kafka auto.offset.reset does, earliest vs latest vs none, when it applies and when it does not, shown step by step in a live simulator.
  • isolation.level · default read_uncommitted How Kafka isolation.level works: read_committed waits for transactions and skips aborted records, read_uncommitted returns everything. Step through it live.
  • session.timeout.ms · default 45000 (45 seconds) What Kafka consumer session.timeout.ms does: how long the group waits for heartbeats before it evicts a member and rebalances, its 45 s default, and tuning.
  • max.poll.interval.ms · default 300000 (5 minutes) What Kafka max.poll.interval.ms does: the longest a consumer may go between poll() calls before it leaves the group, its 5-minute default, and how to fix it.

Topic configs 6

  • min.insync.replicas · default 1 What Kafka min.insync.replicas does: the fewest in-sync replicas an acks=all write needs, why 2 with replication factor 3 is the norm, and NOT_ENOUGH_REPLICAS.
  • unclean.leader.election.enable · default false What unclean.leader.election.enable does in Kafka: availability over durability when no in-sync replica is left, and the committed records it loses.
  • retention.ms · default 604800000 (7 days) How Kafka retention.ms deletes whole log segments once their newest record is older than the limit, its 7-day default, and what happens to slow consumers.
  • retention.bytes · default -1 (no size limit) How Kafka retention.bytes deletes the oldest segments once a partition outgrows it, why the limit is per partition, and how it combines with retention.ms.
  • cleanup.policy · default delete Kafka cleanup.policy explained: delete removes old segments by time or size, compact keeps the latest value per key, compact,delete does both. Simulated live.
  • delete.retention.ms · default 86400000 (1 day) What Kafka delete.retention.ms does on a compacted topic: how long a tombstone survives compaction, its 1-day default, and why consumers must read within it.