---
title: "Kafka in two DCs without a witness: KRaft quorum is lost"
description: "Two KRaft voters, one per DC, no witness. When the link fails neither side has a majority, so after broker-1 dies Kafka elects no leader until the split heals."
url: https://monedula.dev/kafka-simulator/scenarios/2dc-freeze/
---

# Kafka in two DCs without a witness: KRaft quorum is lost

Scenario 09.1.4 · 2-DC freeze. Disaster recovery · Advanced · about 3 min · Apache Kafka 4.3.

No witness: an even 2-voter split loses quorum, so leader election freezes until the network heals.

Run it: https://monedula.dev/kafka-simulator/playground/?scenario=09.1.4

## What you start with

Two data centres, one controller voter each, and no third-site witness. When the link between them fails, the voters split 1-1 - neither side holds a majority of the 2-voter quorum - so no controller can be elected. We partition the DCs and then hard-kill a broker to show leader election stays frozen until the network heals.

## Step by step

1. **2-DC cluster ready - 2 voters, no witness** (t+0.000s) [Open at this step](https://monedula.dev/kafka-simulator/playground/?scenario=09.1.4&t=0)
2. **Record committed across DC-A + DC-B** (t+3.050s) [Open at this step](https://monedula.dev/kafka-simulator/playground/?scenario=09.1.4&t=1)
3. **DCs split - even 2-voter split, NO majority → quorum LOST** (t+8.050s): With only c-a and c-b, an even split has no voter majority: activeController becomes undefined and the control plane freezes. [Open at this step](https://monedula.dev/kafka-simulator/playground/?scenario=09.1.4&t=2)
4. **broker-1 (DC-A) killed - partition leaderless, election FROZEN** (t+12.000s): No active controller can elect a new leader; the partition stays leaderless. [Open at this step](https://monedula.dev/kafka-simulator/playground/?scenario=09.1.4&t=3)
5. **Network healed - quorum returns, leader moves to broker-2 (DC-B)** (t+15.000s): Contrast with the 2.5-DC scenario, whose witness keeps a majority through the same split. [Open at this step](https://monedula.dev/kafka-simulator/playground/?scenario=09.1.4&t=4)

## The takeaway

An even number of voters across two sites has no tiebreaker: a clean split loses quorum and freezes elections. A third-site witness (the 2.5-DC pattern) is what keeps a two-DC deployment available.

## Further reading

- [Apache Kafka documentation](https://kafka.apache.org/43/operations/kraft/)
