Kafka min.insync.replicas validation gap at topic creation
0 reputation · 29 Mar 2021, 08:40 UTC
Configuration boundary
The min.insync.replicas setting determines the minimum in-sync replicas required for acks=all writes. Local single-broker clusters typically use default.replication.factor=1 and min.insync.replicas=1, ensuring all writes succeed. Production environments often configure broker defaults with min.insync.replicas=2 or higher for durability guarantees.
Runtime failure mode
When a topic is created with replication factor 1 but inherits or overrides min.insync.replicas=2, producers using acks=all encounter NOT_ENOUGH_REPLICAS errors at runtime. Kafka currently permits this configuration mismatch at topic creation time rather than rejecting it during validation.
Questions
- Should topic creation validate that
min.insync.replicasdoes not exceed the topic's replication factor, or is the current runtime failure behavior intentional? - How should operators audit and reconcile broker defaults with topic-level overrides following a KRaft migration?