
Multi-Geo Replication in Apache Kafka
2/27/2023
This post details the technical aspects of multi-geo replication in Apache Kafka. It explains Kafka's core replication mechanisms, including partitions, replicas, leaders, followers, ISRs, and the role of offsets and high watermarks. It elaborates on producer durability configurations (`acks=0`, `acks=1`, `acks=all`) and the `min.insync.replicas` setting. The post contrasts stretched clusters (single Kafka cluster across datacenters) with connected clusters (multiple independent clusters). For stretched clusters, it discusses the benefits and limitations, and introduces Confluent Server's observer replicas with Automatic Observer Promotion for improved failover. For connected clusters, it details Confluent's Cluster Linking, explaining how it extends the replica fetcher protocol for cross-cluster replication, maintains offset parity, and synchronizes metadata like topic configurations, consumer offsets, and ACLs. It also briefly mentions Confluent Replicator as an alternative using Kafka Connect.