apache / kafka
git clone https://github.com/apache/kafka.git
🔥 on GitHub Trending today
Apache Kafka - A distributed event streaming platform
+32
stars, 24h · #257
+230
stars, 7 days · #271
+476
stars, 30 days · #583
34k
★ total · +1% this week
16k
forks · 655 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageJava
LicenseApache-2.0
Created2011-08-15 (15y ago)
Last pushtoday
Watchers1.1k
OwnerOrganization
Seen on GitHub Trending
- 2026-10-20 — #6 daily in java · +32 ★
- 2026-10-20 — #7 monthly in java · +476 ★
- 2026-10-20 — #7 weekly in java · +230 ★
GitHub topics
Links
- GitHub: github.com/apache/kafka
- Homepage: https://kafka.apache.org/
- Releases · Issues · Hacker News mentions
README excerpt
**Apache Kafka** is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. You need to have Java installed. We build and test Apache Kafka with Java versions 17 and 25. The `release` parameter in javac is set to `11` for the clients and streams modules, and `17` for the rest, ensuring compatibility with their respective minimum Java versions. Similarly, the `release` parameter in scalac is set to `11` for the streams modules and `17` for the rest. Scala 2.13 is the only supported version in Apache Kafka. ### Build a JAR and run it [code] Follow instructions in https://kafka.apache.org/quickstart ### Build source JAR [code] ### Build aggregated javadoc [code] ### Build javadoc and scaladoc [code] ### Run unit/integration tests [code] ### Force re-running tests without code change [code] ### Running a particular unit/integration test [code] ### Running a particular unit/integration test N times [code] ### Running a particular test method within a unit/integration test [code] ### Running a particular unit/integration test with log4j output By default, there will be only a small number of logs output while testing. You can adjust it by changing the `log4j2.yaml` file in the module's `src/test/resources` directory. For example, if you want to see more logs for clients project tests, you can modify the line in `clients/src/test/resources/log4j2.yaml` to `level: INFO` and then run: [code] And you should see `INFO` level logs in the file under the `clients/build/test-results/test` directory. ### Specifying test retries Retries are disabled by default, but you can set maxTestRetryFailures and maxTestRetries to enable retries. The following example declares -PmaxTestRetries=1 and -PmaxTestRetryFailures=3 to enable a failed test to be retried once, with a total retry limit of 3. [code] See Test Retry Gradle Plugin and build.yml for more details. ### Generating test coverage reports Generate coverage reports for the whole project: [code] Generate coverage for a single module, i.e.: [code] Coverage reports are located within the module's build directory, categorized by module type: Core Module (:core): `core/build/reports/scoverageTest/index.html` Other Modules: ` /build/reports/jacoco/test/html/index.html` ### Building a binary release gzipped tarball [code] The release file can be found inside `./core/build/distributions/`. ### Building auto-generated messages Sometimes it is only necessary to rebuild the RPC auto-generated message data when switching between branches, as they could fail due to code changes. You can just run: [code] See Apache Kafka Message Definitions for details on Apache Kafka message protocol. ### Running a Kafka broker Using compiled files: [code] Using docker image: [code] See docker/README.md for detailed information. ### Cleaning the build [code] ### Running