K
BVISKafkaOps
Talk to a Kafka Architect
Enterprise Kafka Support & Engineering

Zero Downtime. Maximum Throughput.
24/7 Managed Kafka Operations.

From architectural advisory and KRaft / Kafka 4.0 migrations to 15-minute incident SLAs and battle-tested troubleshooting.

15-Min Incident SLA
99.99% Uptime Guarantee
100+ Clusters Managed
Multi-Cloud AWS / Azure / GCP

Full-Lifecycle Apache Kafka Capabilities

Complete end-to-end management covering architecture, performance, security, and continuous incident management.

Kafka 4.0 & KRaft Migration

Complete decommissioning of ZooKeeper, zero-downtime metadata migration to KRaft mode, and upgrading client protocols to KIP-848.

Performance & Consumer Tuning

Eliminate persistent consumer lag, tune JVM Garbage Collection parameters, configure OS page cache, and resolve thread locks.

Hardened Security & Compliance

Implement end-to-end mTLS, SASL/SCRAM authentication, fine-grained ACL authorization, Schema Registry encryption, and SOC2 audit readiness.

Transparent SLA & Support Tiering

Choose the operational agreement aligned with your application uptime requirements.

Standard Operations

For non-critical production and developer environments.

8x5 Coverage

Business Hours Support


  • 1-Hour Severity 1 SLA
  • Monthly Health Audits
  • Prometheus / Grafana Alerting
Select Standard
Most Popular

Enterprise 24/7

For high-throughput, mission-critical event streams.

24/7/365

Continuous Real-Time Escalation


  • 15-Minute Severity 1 SLA
  • Dedicated Slack/Teams Channel
  • Root Cause Analysis (RCA) Reports
  • Unlimited Critical Incidents
Select Enterprise 24/7

White-Glove Managed

Complete offloading of Kafka infrastructure & operations.

Full Ownership

Dedicated Platform Engineers


  • Everything in Enterprise 24/7
  • Terraform / Ansible Automation
  • Custom Connector & Schema Mgmt
Contact Sales
Expanded Technical Knowledge Base

Apache Kafka 4.0 Migration Guide & Knowledge Base

Architecture Blueprint, Execution Roadmap, & Known Issues Knowledge Base.

4-Step Execution Roadmap

Step 1
Pure KRaft Mode
Migrate ZooKeeper metadata to KRaft mode on Kafka 3.9 (bridge release). Decommission ZK nodes entirely.
Step 2
Broker Software Update
Perform a rolling update of cluster brokers and controllers to Kafka 4.0 binaries.
Step 3
Metadata Bump
Finalize upgrade by bumping cluster metadata.version to activate Kafka 4.0 features permanently.
Step 4
KIP-848 Consumer Engine
Opt-in and enable the new high-performance, server-side KIP-848 rebalance engine for consumers.
Architecture & Migration Guide Doc ID: KB-9001

Zero-Downtime Migration Blueprint: ZooKeeper to KRaft Mode

Step-by-step procedure to transition an active production Kafka cluster from ZooKeeper metadata management to KRaft mode without client downtime.

Architecture Diagram: 3-Stage KRaft Migration Stages
Stage 1 Legacy

ZooKeeper Ensemble

ZooKeeper Quorum (3 or 5 Nodes)
│ (Metadata Sync) ▼
Kafka Brokers 1..N (ZK Metadata Mode)
Traditional ZK ensemble manages cluster metadata & leader election.
Stage 2 Hybrid

Dual-Write Migration

ZooKeeper Quorum
↕ (Dual-Write Active)
KRaft Controller Quorum
│ (Raft Log) ▼
Kafka Brokers (Hybrid Mode)
Metadata active on KRaft with continuous dual-write sync back to ZooKeeper.
Stage 3 Kafka 4.0 Ready

Pure KRaft Mode

KRaft Quorum Nodes (Native Raft Consensus)
│ (Raft Metadata Stream) ▼
Kafka Brokers 1..N (ZooKeeper Decommissioned)
ZooKeeper cluster removed completely; metadata managed via native Raft log.
4-Step Execution Strategy
  1. Provision KRaft Controller Nodes: Deploy 3 or 5 dedicated KRaft controller nodes with process.roles=controller and generate a cluster ID using kafka-storage.sh random-cluster-id.
  2. Enable Migration Mode on Brokers: Perform a rolling update on existing brokers set to zookeeper.connect while adding controller.quorum.voters and setting zookeeper.metadata.migration.enable=true.
  3. Copy ZooKeeper Metadata to KRaft: The active KRaft controller imports topic configurations, ACLs, and partition state into the __cluster_metadata topic while maintaining continuous dual-write back to ZooKeeper.
  4. Decommission ZooKeeper: Finalize migration via kafka-configs.sh --alter --entity-type brokers --add-config zookeeper.metadata.migration.enable=false and perform a rolling restart to disconnect ZooKeeper nodes permanently.
Upgrades & Protocol Architecture Doc ID: KB-9002

Upgrade Guide: Apache Kafka 4.0 Architecture & KIP-848

Complete roadmap for upgrading to Apache Kafka 4.0—the flagship zero-ZooKeeper release featuring the next-generation Consumer Group Protocol (KIP-848).

Architecture Diagram: KIP-848 Next-Gen Consumer Protocol
Legacy Protocol (Pre-4.0) Client-Side Assignment
Consumer Client (Leader)
  • Computes partition assignments locally
  • Triggers "Stop-The-World" global pause
  • Sends assignments to Group Coordinator
▼ (Eager Sync & Full Consumer Rebalance)
Consumer Group Members ⚠️ All partition consumption halts during rebalance window
Eager protocol drops all partition ownership on rebalance, causing processing spikes & lag.
KIP-848 Protocol (Kafka 4.0+) Server-Side Engine
Server-Side Group Coordinator
  • Computes & stores partition assignments on broker
  • Incremental non-blocking rebalance engine
  • Dispatches targeted assignment heartbeats
▼ (Targeted Assignment Heartbeat)
Consumer Group Members ⚡ Unaffected partitions continue processing in parallel without interruption
Zero stop-the-world pauses; high throughput and sub-second consumer reassignment.
Kafka 4.0 Migration Sequence
  1. Pure KRaft Mode (Bridge Release): Kafka 4.0 removes ZooKeeper support completely. First migrate metadata on Kafka 3.9 (designated bridge release) and fully decommission ZooKeeper nodes.
  2. Broker Software Update: Perform a rolling software update of cluster brokers and controllers to Kafka 4.0 binaries.
  3. Metadata Version Bump: Finalize upgrade by executing kafka-features.sh --bootstrap-server localhost:9092 --upgrade metadata.version=4.0-IV0 to activate Kafka 4.0 features permanently.
  4. Enable KIP-848 Consumer Engine: Opt-in and enable the new high-performance, server-side KIP-848 rebalance engine by configuring client applications to group.protocol=consumer.
Architecture Doc ID: KB-4001

Direct 3.x-to-4.0 Upgrade Attempt on ZooKeeper

Symptom / Impact

Brokers fail to start immediately. Property zookeeper.connect is removed and unrecognized in 4.0.

Root Cause

ZooKeeper support is fully removed in Kafka 4.0 (KRaft is required).

Solution & Mitigation:
  1. Upgrade cluster to Kafka 3.9 (designated bridge release).
  2. Execute dual-mode ZooKeeper-to-KRaft metadata migration.
  3. Verify pure KRaft operation and decommission ZooKeeper completely.
  4. Finalize rolling software upgrade to Kafka 4.0.
Architecture Doc ID: KB-4002

Undersized KRaft Controller Quorum

Symptom / Impact

Metadata write latency spikes, election timeouts, or cluster instability during batch topic creations/deletions.

Root Cause

Metadata operations shift directly to Kafka processes. Co-located or undersized nodes become IO/CPU constrained.

Solution & Mitigation:
  • Deploy an odd-numbered dedicated quorum (3 or 5 nodes) for controllers in production.
  • Provision dedicated CPU/IOPS for controller nodes to sustain rapid @metadata log appends.
Client / API Doc ID: KB-4003

Unsupported Wire Protocol Versions (KIP-896)

Symptom / Impact

Legacy producers/consumers or third-party client libraries disconnect or throw binary protocol errors.

Root Cause

Kafka 4.0 removes legacy API request versions (e.g., Produce V0–V2, Fetch V0–V3, ListOffset V0).

Solution & Mitigation:
  • Upgrade all Java producers and consumers to v2.1.0 or higher prior to broker upgrade.
  • Audit non-Java client libraries (Go, Python, C#) to confirm compatibility with modern wire protocol versions.
Client / API Doc ID: KB-4004

Java Runtime (JDK) Minimum Baseline Increase

Symptom / Impact

UnsupportedClassVersionError or immediate startup failures on clients, brokers, or connectors.

Root Cause

JDK minimums bumped: Java 11+ for Clients/Streams; Java 17+ for Brokers, Connect, and CLI tools.

Solution & Mitigation:

Update build pipelines and server runtime environments to JDK 17 (or JDK 21 for optimized container deployments) prior to cutover.

Security Doc ID: KB-4005

OAuth / SASL Authentication Failures

Symptom / Impact

Immediate SASL/OAUTHBEARER authentication failure post-upgrade.

Root Cause

Security hardening requires explicit whitelist for token/JWKS endpoints via system property.

Solution & Mitigation:

Explicitly set system property in JVM flags:

org.apache.kafka.sasl.oauthbearer.allowed.urls
Monitoring Doc ID: KB-4006

Broken Prometheus & Grafana Dashboards

Symptom / Impact

Dashboards lose controller metrics; cluster alert rules fail to trigger.

Root Cause

JMX MBean paths changed between ZooKeeper and KRaft modes.

Solution & Mitigation:

Update JMX exporters to capture KRaft metrics (e.g., kafka.controller:* and kafka.server:type=RaftMetadataWrapper).

Ecosystem Doc ID: KB-4007

Kafka Connect Endpoint Removal & Jakarta EE Shift (KIP-1032)

Symptom / Impact

HTTP 404 errors on automated Connect API calls; ClassNotFoundException on custom connectors using javax.*.

Root Cause

Endpoint /tasks-config removed. Connect baseline upgraded to Jakarta EE 10 (namespace changed to jakarta.*).

Solution & Mitigation:
  • Recompile custom connectors targeting Jakarta EE 10.
  • Update management scripts to call endpoint /connectors/{connector}/tasks instead of /tasks-config.
Memory / JVM Doc ID: KB-1092

Resolving Broker `java.lang.OutOfMemoryError: Java heap space`

Occurs when heap size is misconfigured during high batch sizes, topic creation bursts, or heavy fetch request backlogs.

Recommended Solution:
# 1. Adjust JVM Heap settings in kafka-env.sh (Do NOT exceed 32GB to keep compressed OOPs)
export KAFKA_HEAP_OPTS="-Xms16G -Xmx16G -XX:+UseG1GC -XX:MaxGCPauseMillis=20"

# 2. Limit fetch request sizes on broker
max.request.size=10485760 # 10MB limit per request
Root Cause: Default 1GB JVM heap limit exceeded due to unthrottled fetch payload sizes.
Consumer Groups Doc ID: KB-2041

Fixing High Consumer Lag & Continuous Rebalance Loops

Consumers repeatedly drop out of the group, causing processing halts and constant partition reassignment cascades.

Recommended Solution:
// Increase max.poll.interval.ms or decrease max.poll.records in consumer config
props.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG, "600000"); // 10 mins
props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, "100"); // Process smaller batches

// Switch to Cooperative Sticky Assignor to eliminate stop-the-world rebalances
props.put(ConsumerConfig.PARTITION_ASSIGNMENT_STRATEGY_CONFIG, 
  "org.apache.kafka.clients.consumer.CooperativeStickyAssignor");
Root Cause: Single batch execution time exceeded `max.poll.interval.ms`, triggering group eviction.
Cluster Reliability Doc ID: KB-3015

Preventing Data Loss During Broker Outages

Producers receive `NotEnoughReplicasException` or uncommitted messages are lost during unplanned broker crashes.

Recommended Solution:
# Topic / Broker Configurations for Guaranteed Durability
min.insync.replicas=2
unclean.leader.election.enable=false

# Producer Configuration
acks=all (or acks=-1)
enable.idempotence=true
Root Cause: Default `acks=1` or `unclean.leader.election.enable=true` allowing out-of-sync replicas to become leader.
Security & Auth Doc ID: KB-4088

Debugging `TopicAuthorizationException` & SASL Failures

Clients are denied connection or cannot write to topics after turning on SASL/SCRAM or mTLS authentication.

Recommended Solution:
# Grant Write & Describe ACL permissions to user principal
kafka-acls --bootstrap-server localhost:9092 \
  --add --allow-principal User:app-service \
  --operation Write --operation Describe \
  --topic order-events-v1
Root Cause: Missing wildcards or exact resource name mismatches in Kafka ACL store.
KRaft Architecture Doc ID: KB-5012

Recovering from KRaft Controller Quorum Loss

Active metadata quorum is broken when majority of controller nodes lose connectivity or disk corruption occurs on `@metadata` topic.

Recommended Solution:
# Inspect raft metadata quorum status
kafka-metadata-shell.sh --snapshot /var/lib/kafka/data/__cluster_metadata-0/00000000000000000000.checkpoint

# Re-format isolated quorum voter if disk corruption is confirmed
kafka-storage.sh format -t  -c /etc/kafka/kraft-controller.properties --ignore-formatted
Root Cause: Loss of $N/2 + 1$ quorum nodes in active KRaft metadata voting pool.
Replication / MM2 Doc ID: KB-6033

Fixing MirrorMaker 2 Cross-Region Replication Lag

Cross-datacenter topic replication stalls or falls hours behind during peak batch ingestion windows.

Recommended Solution:
# Optimize MirrorMaker 2 Source Connector worker properties
tasks.max=16
offset-syncs.topic.replication.factor=3
sync.topic.acls.enabled=false # Disable if ACL sync isn't needed
compression.type=lz4
producer.override.linger.ms=50
Root Cause: Single-threaded task distribution on high-partition count source topics.
Production-Grade Architecture

Kafka 4.0 Monitoring Stack

In a production-grade Kafka 4.0 (KRaft) environment, management UIs alone aren’t enough — you need time-series metrics and intelligent feedback loops.

The Monitoring & Operations Architecture Flow

Kafka 4.0 Brokers & KRaft Controllers Central Event Streaming & KRaft Quorum
│ (JMX Metrics)
Prometheus (Time‑Series DB) Scrapes JMX metrics & stores time-series data
│ (Feeds Data)
Grafana (Dashboards & Alerts) Visualization dashboards & alerting rules
Cruise Control (Optimizer) Automated rebalancing & workload optimizer
▲ (Workload Optimization)
AKHQ (Admin & UI Tool) Day-to-day web operation & topic management UI
▲ (Web Admin UI)
Prometheus Apache 2.0 · $0

The metric engine — scrapes broker, KRaft controller, and JVM metrics via JMX; stores historical time-series performance data.

Grafana AGPLv3 · $0

Visualization & alerting — pre-built dashboards for broker throughput, consumer lag, disk use, and KRaft consensus health.

AKHQ Apache 2.0 · $0

The operational UI — day-to-day topic inspection, schema registry management, ACL configuration, and message browsing.

Cruise Control BSD 2-Clause · $0

The optimization engine — automates partition rebalancing, fixes hotspots, and handles safe broker scaling and replacements.

Technology Evaluation

Modern Stack vs. Legacy Tooling

Both options are fully open source and free — but KRaft readiness is the deciding factor for Kafka 4.0.

Parameter
AKHQ + Cruise Control
Recommended Modern Stack
Kafdrop + Kafka Manager (CMAK)
Legacy Tooling
Primary Focus Modern enterprise operations & intelligent automation Simple topic inspection & basic legacy management
Kafka 4.0 / KRaft Readiness High — pure AdminClient API, fully KRaft-ready At-risk — CMAK has a hard ZooKeeper dependency and will not run on Kafka 4.0
Target Audience Enterprise platform teams, DevOps, SREs Developers needing quick read-only inspection
Key Capability Advanced UI + auto-rebalancing / self-healing Basic UI + simple topic creation
Open Source Status 100% Open Source 100% Open Source
License Type AKHQ: Apache 2.0 · Cruise Control: BSD 2-Clause Kafdrop: Apache 2.0 · CMAK: Apache 2.0
Software Cost $0 — free for commercial use $0 — free for commercial use
Hidden Infra / Ops Cost Moderate — runs as extra lightweight microservices in your Kubernetes / VM setup Low for Kafdrop, but high operational risk for CMAK (no Kafka 4.0 support)

Frequently Asked Questions

Everything you need to know about our Kafka managed support services, security practices, and engagement structure.

Need Immediate Technical Assistance or an Architecture Audit?

Fill out the form to speak with a Principal Kafka Architect. We provide technical evaluation, free cluster health audits, and NDA coverage prior to engagement.

Immediate NDA available prior to technical discovery
Coverage for Open-Source Kafka, Confluent, MSK, & Aiven
Response from an architect within 1 business hour