Configure Kafka producer acks=all with topic min.insync.replicas for strong durability guarantees
domain: kafka.apache.org · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Create the topic with a replication factor of at least 3 for meaningful fault tolerance
Set the topic-level config min.insync.replicas=2 (with replication factor 3) via kafka-configs.sh or the admin client
Set the producer config acks=all (or acks=-1) so the producer only considers a write successful once it's acknowledged by the full set of in-sync replicas required to satisfy min.insync.replicas
Understand that with RF=3 and min.insync.replicas=2, at least 2 replicas (leader plus one follower) must ack the write, so the cluster tolerates one broker being down or a rolling restart of one replica and still accepts writes
Handle NotEnoughReplicasException / NotEnoughReplicasAfterAppendException in the producer, which is thrown when the number of in-sync replicas falls below min.insync.replicas at write time
Combine with enable.idempotence=true on the producer for idempotent, ordered delivery on top of the durability guarantee
Known gotchas
acks=all only guarantees durability across replicas that are currently in the in-sync replica (ISR) set — if min.insync.replicas is set too low (e.g. 1), you can still lose data on a leader failure even with acks=all
Kafka only guarantees a committed message survives as long as at least one in-sync replica stays alive at all times; total cluster loss of all ISR members can still lose data regardless of acks/min.insync.replicas settings
Setting min.insync.replicas equal to the full replication factor maximizes durability but sacrifices availability — any single replica outage will then block all writes with NotEnoughReplicas errors
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?