Your application requires high availability and fault tolerance for the Kafka cluster. How do you configure Kafka to meet these requirements?

Configuring Kafka for high availability and fault tolerance means combining replication, in-sync replica requirements, producer acknowledgment settings, and ongoing operational monitoring so the cluster survives broker failures without downtime or data loss.

Key Points: • Set a replication factor greater than 1 (commonly 3) on all critical topics so partition data survives the loss of one or more brokers. • Configure min.insync.replicas (typically 2 when replication factor is 3) so writes are only acknowledged once a safe number of replicas have them. • Use acks=all on producers so a write isn't considered successful until it's actually durable across in-sync replicas. • Set up monitoring and alerting for broker failures and under-replicated partitions so degraded redundancy gets fixed before a second failure causes real unavailability. • Perform regular cluster maintenance — adding/removing brokers carefully and rebalancing partitions — to keep the cluster evenly loaded and healthy over time.

Example: A cluster configured with replication factor 3, min.insync.replicas=2, and acks=all can lose one broker entirely and keep serving all reads and writes without any data loss, since the controller automatically promotes an in-sync replica to leader for every affected partition.

Interview Tip: A concise interview answer is:

"I'd configure replication factor of at least 3, min.insync.replicas to enforce durability, and acks=all on producers, then back that up with monitoring for under-replicated partitions and broker health, plus disciplined cluster maintenance, so a broker failure results in automatic failover rather than downtime or lost data."