CLI tool
didi/KnowStreaming avatar
didi/KnowStreaming

KnowStreaming: a Kafka control plane you deploy beside the cluster, not inside it

一站式云原生实时流数据平台,通过0侵入、插件化构建企业级Kafka服务,极大降低操作、存储和管理实时流数据门槛

7,183 stars1,297 forksJavaAGPL-3.0

At a glance

What is it?
KnowStreaming is Didi's AGPL-3.0 platform for managing Kafka clusters without patching the brokers. It covers 0.10.x through 3.x, but the documentation is Chinese-first and the upgrade story is thin.
Who is it for?
KnowStreaming fits teams running several Kafka clusters across versions who want a GUI and a health-scoring layer without touching broker code, and who can read Chinese documentation or work from the demo environment. It is the wrong choice if you need English-language docs, a documented rollback path, or a permissive licence for a closed product, since AGPL-3.0 governs the whole platform.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 43 days ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The gap KnowStreaming fills between Kafka and its operators

Kafka ships with command line tools and JMX metrics, and nothing in between. Managing a handful of clusters means remembering which broker is under-replicated, which consumer group is lagging, and which topic has a partition skew, each through a different script. KnowStreaming is aimed at that layer: the platform around the cluster rather than the cluster itself. The README describes it as a cloud-native Kafka management and control platform, derived from years of internal Kafka operations practice at Didi, focused on operations control, monitoring and alerting, resource governance and multi-active disaster recovery. The intended user is an operations engineer who is not a Kafka specialist. The README claims a general user can get started in five minutes, which is a product claim rather than a measured result. What matters more is the scope: Cluster, Broker, Zookeeper, Topic, ConsumerGroup, Message, ACL and Connect are all listed as GUI-managed components.

Zero-intrusion management: how it attaches to a running cluster

The central design decision is that KnowStreaming does not modify Apache Kafka. The README states it can take over clusters from 0.10.x through 3.x.x without invasive changes, including both ZK and Raft operating modes, and that the compatibility architecture is extensible. That is the whole reason the project can exist in this form: no broker-side agent, no fork of Kafka, no patched client. The repository layout shows how the pieces separate. km-collector handles collection, km-console serves the UI, km-rest exposes the API layer, km-task runs scheduled work such as health inspections, km-persistence holds storage, and km-enterprise and km-extends hold pluggable and enterprise features. The README describes the platform as horizontally scalable, where adding nodes increases collection and serving capacity. That claim is architectural, not benchmarked here. The practical consequence of zero intrusion is that adoption does not require a maintenance window on the clusters themselves, and removal is a matter of decommissioning the platform rather than reverting broker changes. The cost is that KnowStreaming sees what the Kafka APIs and JMX expose, and nothing below that line.

Installing KnowStreaming and taking over a first cluster

The README does not inline installation steps. It links to the manuals in the repository: docs/install_guide/源码编译打包手册.md for building from source, docs/install_guide/单机部署手册.md for single-machine deployment, and docs/dev_guide/本地源码启动手册.md for starting from source locally. There is also a demo environment at demo.knowstreaming.com, which is the fastest way to see the interface before committing to a deployment. Because the project is Java and built with Maven, the build path starts from the repository root. The README does not print the exact Maven invocation, so check the packaging manual rather than guessing flags.

Health inspection, load balancing and the features that go past a GUI

A web UI over Kafka metadata is not hard to build, and several projects have. What the README lists as differentiating capability is the operational work: multi-dimensional cluster health inspection, a cluster health score, cluster load balancing, topic replica scaling, and topic replica migration. Those are the tasks that normally require hand-written reassignment JSON and a nervous afternoon. The README also describes multidimensional metric dashboards and observability best practices. The README does not document how the health score is computed, which is a real gap if you intend to put that number in front of a team or use it as a gate. Treat the score as a signal to investigate, not as a number with a published formula behind it. The same caution applies to load balancing and replica migration: the README lists them as capabilities, and does not describe the safety checks or dry-run behaviour around them.

Where KnowStreaming is the wrong tool

If your Kafka estate is one cluster and one team, the platform is more moving parts than the problem. You are adding a collector, a console, a REST layer, a task scheduler and a persistence store to manage something you could inspect with the Kafka CLI. The second limitation is documentation language. The README, the install guides, the user guide and the FAQ are all under docs/ in Chinese, and the homepage and documentation site are at knowstreaming.com and doc.knowstreaming.com. There is no English manual in the repository, so an English-speaking team is dependent on translated pages or on reading source. Third, the README does not document rollback for the platform itself. The upgrade manual exists at docs/install_guide/版本升级手册.md, but the README gives no statement about downgrading after a failed upgrade. Fourth, the release cadence is uneven: v3.3.0 was released on 2023-02-27, v3.4.0 on 2023-12-03, and v3.4.1 on 2026-08-18. That is a long gap between v3.4.0 and v3.4.1, and anyone planning around a predictable release train should note it.

KnowStreaming against Kafka UI and the vendor consoles

The closest comparison is the family of lightweight Kafka web UIs, which typically read cluster metadata and render topics, partitions and consumer groups. The difference is scope rather than polish. KnowStreaming adds a collector layer, scheduled inspection tasks, health scoring and replica migration on top of the browsing interface, which is why it ships as several modules instead of one web application. Confluent Control Center solves a similar problem, but it is tied to Confluent Platform and is not an open source drop-in for an existing Apache Kafka estate. If you only need to look at topics and consumer lag, a lighter UI will do the job with far less to run. If you need the governance features, the extra modules are the point. There is no middle option in this repository: the platform is the unit of adoption.

Licence, maintenance and what an upgrade actually costs

KnowStreaming is licensed under AGPL-3.0. That is a strong copyleft licence with a network clause: if you modify the platform and expose it to users over a network, the licence's source-availability obligation applies. For internal operations tooling this is usually workable, but if the plan is to embed KnowStreaming in a product you distribute or host for customers, the licence terms deserve a lawyer's reading rather than a summary from an article. The repository is not archived, and the last push was on 2026-08-18, so the project is receiving commits. Upgrades are the ongoing cost worth weighing. The repository separates km-enterprise and km-extends from the core modules, which suggests extension points that may survive a version bump better than direct edits to core. The README does not state a supported upgrade path between major versions, so the version upgrade manual is the document to read before committing to a deployment, not after.

Editorial conclusion

KnowStreaming fits teams running several Kafka clusters across versions who want a GUI and a health-scoring layer without touching broker code, and who can read Chinese documentation or work from the demo environment. It is the wrong choice if you need English-language docs, a documented rollback path, or a permissive licence for a closed product, since AGPL-3.0 governs the whole platform. Before adopting, verify the version compatibility of your exact Kafka release against the support matrix, and read docs/install_guide/版本升级手册.md to see whether the upgrade path from your current version is actually written down.

Frequently asked questions

Which Kafka versions does KnowStreaming support?

The README states that KnowStreaming can take over clusters from 0.10.x through 3.x.x without modifying Apache Kafka, including both ZK and Raft operating modes. The compatibility architecture is described as extensible, so the supported range is expected to grow.

Does KnowStreaming require changes to my Kafka brokers?

No. The README describes the design as zero-intrusion, meaning it manages Kafka without invasive changes to the brokers. The repository layout reflects this, with collection, console, REST and task handling split into separate modules that run alongside the cluster.

Where do I find the KnowStreaming installation and upgrade manuals?

They are in the repository under docs/install_guide/, including the source build manual, the single-machine deployment manual and the version upgrade manual. The README links these rather than inlining the steps, so the manuals are the authoritative source for commands.

What licence does KnowStreaming use?

KnowStreaming is licensed under AGPL-3.0, as stated in the repository's LICENSE file and the README badge. AGPL-3.0 carries a network-use source-availability obligation, which matters if you plan to expose a modified version to users over a network.

Official sources

  1. didi/KnowStreaming on GitHub
  2. License: AGPL-3.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/didi-knowstreaming.svg)](https://hysenlabs.com/projects/didi-knowstreaming)