Scenario 10.1.3 · Observer promotion
Kafka observer promotion in Confluent Multi-Region Clusters
Confluent MRC recovery: sync replicas in east + west (min.ISR 2) with two async observers in a dr region. Lose the west region and the in-sync count drops below min.ISR (produces stall) - so an observer catches up and is promoted into the ISR as a synchronous replica, restoring durability while the second observer stays async.
Run this scenario in the playgroundMRC ready - sync in east + west (min.ISR 2), two async observers in dr. t+0.000s
orders has a synchronous replica in east and west; the two dr replicas are async observers that never count toward ISR / acks=all.
Open at this step: step 1, MRC ready - sync in east + west (min.ISR 2), two async observers in drCommitted in east + west (HW 3) - dr observers trail. t+0.900s
Both sync replicas committed O1-O3; the high-watermark is 3. The dr observers lag (async).
Open at this step: step 2, Committed in east + west (HW 3) - dr observers trailWest region lost - ISR 1 < min.ISR 2 (acks=all produces stall); dr observer moved into the replica set. t+1.100s
broker-2 (west) died, so the in-sync count fell below min.ISR - acks=all writes would stall. The simulator moves a reachable dr observer (broker-3) into the replica set now and admits it to the ISR on the next step; in MRC, promotion is that ISR join, which happens once the observer has caught up.
Open at this step: step 3, West region lost - ISR 1 < min.ISR 2 (acks=all produces stall); dr observer moved into the replica setObserver promoted to sync - ISR restored to 2, durability back. t+1.400s
The dr replica caught up and was promoted into the ISR; the in-sync count is back to 2. The second dr replica stays an async observer.
Open at this step: step 4, Observer promoted to sync - ISR restored to 2, durability backNew write committed on the promoted replica; one observer still async. t+1.900s
O4 committed on east + the promoted dr replica (HW 4). The remaining dr observer continues to trail asynchronously.
Open at this step: step 5, New write committed on the promoted replica; one observer still asyncWhat you start with
When a Confluent MRC partition loses enough synchronous replicas to fall below min.ISR, an async observer can be promoted into the ISR to take over the durability role. Here sync replicas span east and west (min.ISR 2) with two DR observers; losing the west region stalls acks=all until one observer catches up and is promoted into the in-sync set.
Step by step
- MRC ready - sync in east + west (min.ISR 2), two async observers in dr t+0.000s orders has a synchronous replica in east and west; the two dr replicas are async observers that never count toward ISR / acks=all. Open at this step: step 1, MRC ready - sync in east + west (min.ISR 2), two async observers in dr
- Committed in east + west (HW 3) - dr observers trail t+0.900s Both sync replicas committed O1-O3; the high-watermark is 3. The dr observers lag (async). Open at this step: step 2, Committed in east + west (HW 3) - dr observers trail
- West region lost - ISR 1 < min.ISR 2 (acks=all produces stall); dr observer moved into the replica set t+1.100s broker-2 (west) died, so the in-sync count fell below min.ISR - acks=all writes would stall. The simulator moves a reachable dr observer (broker-3) into the replica set now and admits it to the ISR on the next step; in MRC, promotion is that ISR join, which happens once the observer has caught up. Open at this step: step 3, West region lost - ISR 1 < min.ISR 2 (acks=all produces stall); dr observer moved into the replica set
- Observer promoted to sync - ISR restored to 2, durability back t+1.400s The dr replica caught up and was promoted into the ISR; the in-sync count is back to 2. The second dr replica stays an async observer. Open at this step: step 4, Observer promoted to sync - ISR restored to 2, durability back
- New write committed on the promoted replica; one observer still async t+1.900s O4 committed on east + the promoted dr replica (HW 4). The remaining dr observer continues to trail asynchronously. Open at this step: step 5, New write committed on the promoted replica; one observer still async
The takeaway
Observer promotion is MRC's automatic durability backstop - it converts a trailing async copy into a counted synchronous replica so acks=all writes can resume after a region loss.
Configs in this scenario
-
min.The fewest in-sync replicas, leader included, that must have a write for an acks=all produce to succeed (default 1); with fewer in the ISR the leader rejects the write with NOT_ENOUGH_REPLICAS. How min.insync.replicas worksinsync. replicas -
acksHow many replicas must have a write before the producer counts it as sent: 0 (none), 1 (the leader only) or all (every in-sync replica, the default, and required for idempotence). How acks works
Embed this scenario
Paste this into a blog post, a course page or your team's docs. The scenario plays inside your page, and the link under it points readers to this walkthrough.
<iframe src="https://monedula.dev/kafka-simulator/embed/?scenario=10.1.3" title="Kafka Simulator: Observer promotion" width="100%" height="520" style="border:1px solid #d0d0d0;border-radius:8px" loading="lazy"></iframe>
<p><a href="https://monedula.dev/kafka-simulator/scenarios/observer-promotion/">Kafka observer promotion in Confluent Multi-Region Clusters</a></p> Further reading
More in Disaster recovery
- Kafka stretched cluster across two data centers
- 2.5-DC Kafka stretched cluster with a witness site
- 3-DC Kafka cluster: the KRaft quorum survives losing a site
- Kafka in two DCs without a witness: KRaft quorum is lost
- Kafka data center failure: leader failover to the other DC
- Kafka network split inside one DC: ISR drops to the floor
- Kafka MirrorMaker 2 active-passive DR and replication lag
- Kafka DR failover with MirrorMaker 2: measuring RPO
- Active-active Kafka with MirrorMaker 2 and region topics
- MirrorMaker 2 offset translation for Kafka consumer failover
- Kafka failback after a MirrorMaker 2 DR failover
- Active-active Kafka DR drill: move clients to the survivor
- Confluent MRC observers: Kafka replicas outside the ISR
- Kafka observer lag in Confluent Multi-Region Clusters
- Confluent MRC observer promotion: losing the Kafka leader DC
- Kafka replica placement: durability vs latency across DCs
- Confluent Cluster Linking: offset-preserving Kafka mirroring
- Kafka mirror topics (Confluent): read-only until promoted
- Cluster Linking vs MirrorMaker 2 for Kafka replication
- Kafka consumer offset sync: Cluster Linking vs MirrorMaker 2
- Kafka failover and failback with Confluent Cluster Linking