<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Zookeeper on Devops Monk</title><link>https://devops-monk.com/tags/zookeeper/</link><description>Recent content in Zookeeper on Devops Monk</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 04 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://devops-monk.com/tags/zookeeper/index.xml" rel="self" type="application/rss+xml"/><item><title>KRaft Mode: Running Kafka Without ZooKeeper</title><link>https://devops-monk.com/tutorials/spring-kafka/kraft-mode/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><guid>https://devops-monk.com/tutorials/spring-kafka/kraft-mode/</guid><description>Why ZooKeeper Had to Go For the first decade of Kafka&amp;rsquo;s existence, every Kafka cluster required an Apache ZooKeeper cluster to manage metadata: controller election, topic configurations, partition leadership, access control lists, and consumer group state.
This created real problems:
flowchart TB subgraph OldArchitecture["Old Architecture: Kafka + ZooKeeper"] subgraph ZK["ZooKeeper Cluster (3+ nodes)"] Z1["ZK Node 1"] Z2["ZK Node 2"] Z3["ZK Node 3"] end subgraph Kafka["Kafka Cluster"] K1["Broker 1\n(Controller)"] K2["Broker 2"] K3["</description></item></channel></rss>