A k6 extension for load testing Apache Kafka with support for multiple serialization formats, authentication, compression, and Schema Registry.
xk6-kafka is a k6 extension that enables load testing of Apache Kafka. It allows developers to produce and consume messages to simulate high traffic and test the performance of their Kafka-based systems. The extension supports various serialization formats, authentication methods, compression, and integration with Schema Registry.
Developers and performance engineers who need to load test Apache Kafka producers and consumers as part of their system validation and performance tuning.
It provides a native k6 integration for Kafka load testing with extensive feature support, including multiple serialization formats, authentication, and detailed metrics, making it a versatile alternative to custom scripting or commercial tools.
k6 extension to load test Apache Kafka with support for various serialization formats, SASL, TLS, compression, Schema Registry client and beyond
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports multiple formats including String, JSON, ByteArray, Avro, and JSON Schema, with options to fetch schemas from a Registry or embed them directly, as detailed in the example scripts.
Includes SASL PLAIN, SCRAM, SSL, AWS IAM, and TLS with JKS files, covering most enterprise security scenarios outlined in the README.
Exposes over 30 Kafka-specific metrics like reader/writer error counts and lag, compatible with k6 thresholds for in-depth performance analysis.
Allows programmatic creation, listing, and deletion of Kafka topics within test scripts, enabling dynamic test environment setup.
Requires installing Go, xk6, and building a custom k6 binary, which adds significant setup overhead compared to standalone load testing tools.
Maintained personally and not officially supported by the k6 team, posing potential risks for long-term updates, bug fixes, and enterprise support.
Default Kafka message size limits can cause errors; users must manually adjust configurations like batchBytes, as troubleshooting large messages requires extra steps per the FAQ.