Good post.
One thing to add: What you describe is a so called ‘Stretched Cluster’ in Kafka terms. It makes sense in some use cases, e.g. when you run Kafka Brokers in three availability zones of a cloud provider or if you have a on-premise data centre.
In other scenarios, you can might prefer “real cluster replication” in active-active or active-passive mode via MirrorMaker (open source) or Confluent Replicator (proprietary) to replicate a complete Kafka cluster instead of just replication between brokers of one single cluster.
Examples where cluster replication is the better solution include long distance replication (let’s say clusters in US, Asia and Europe) with latency requirements, or if you want to be sure that your cluster is available evenif a whole data centre goes down.
Kai Waehner
(www.kai-waehner.de)
