Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introduction

kaas is a from-scratch Apache Kafka 3.7 wire-compatible broker that runs on Kubernetes — no KRaft, no replication, no ZooKeeper; Kubernetes primitives and a shared RWX volume do the heavy lifting instead.

Apache Kafka clients — Java, librdkafka, franz-go, the stock shell tools — connect to kaas unchanged. What changes is everything behind the socket:

  • Controller election is a Kubernetes Lease, not a Raft quorum. The API server is the metadata store; there is no gossip protocol and no replicated state machine in the broker.
  • Storage is single-writer-per-partition on a shared RWX volume (NFSv4-class), not N-way broker replication. Split-brain safety comes from epoch-prefixed segment filenames; durability comes from the substrate.
  • Topics, users, ACLs, and quotas are Kubernetes CRs, reconciled by a bundled operator that stays off the hot path entirely.

Two binaries ship from this repo: the broker (bins/kaas) and the operator (bins/kaas-operator), plus a Helm chart that deploys both. The release line is v0.2.x-preview.

The parity target

kaas targets Apache Kafka 3.7 for wire-protocol and Kafka Streams parity — and this book is deliberately structured to prove that claim rather than assert it. Part II carries a generated API matrix that CI pins to the actual wire surface, a KIP index that says implemented / partial / non-goal honestly, and a verification story covering the Apache shell-tool suite that runs against every release.

Reading this book

  • Getting Started — deploy with Helm, or run a dev broker locally.
  • Part I — Architecture — how it works, starting at the system overview.
  • Part II — Kafka Compatibility — the prove-it section.
  • Part III — Code Tour — the workspace, crate by crate.
  • Part IV — Operations — the chart, storage substrates, releasing, performance.