Skip to content
CAI
Software that uses CAICheck a score

simingwang/emqx-plugin-kafkav5

35.1

Weak · 17 September 2026

870

lines of production code

Erlang

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is the EMQX Kafka plugin, an integration component for the EMQX MQTT broker that publishes MQTT messages and client lifecycle events to Apache Kafka. It enables users to route specific MQTT topics and session data to Kafka brokers for downstream processing through configurable connection settings and topic filters.

Features

Add EMQX Kafka plugin (v5.0.0) and ASN.1 dependency (v5.0.18)

This change introduces the \emqx\_plugin\_kafka\ plugin (version 5.0.0), which enables EMQX to publish client lifecycle events (connect, disconnect, subscribe, unsubscribe) and message traffic to a Kafka topic. The plugin is configured via environment variables (\KAFKA\_ADDRESS\_LIST\, \KAFKA\_TOPIC\, etc.) and registers hooks for client and session events. Additionally, the \asn1\ Erlang library (version 5.0.18) is added to the release, providing ASN.1 compilation and encoding/decoding capabilities required by the plugin's dependencies.

_\_build/default/emqx\_plugrel/emqx\_plugin\_kafka-5.0.0/emqx\_plugin\_kafka-5.0.0, \_build/default/rel/emqx\_plugin\kafka · high confidence

Add default configuration files for Kafka plugin

The plugin now ships with two new configuration files: \emqx\_kafka.conf\ (in Erlang/OTP format) and \emqx\_plugin\_kafka.hocon\ (in HOCON format). These files provide default settings for the Kafka connection, including the broker address list, reconnection cooldown, API version querying, target topic, and MQTT topic filters, establishing the baseline configuration for the plugin.

priv · high confidence

Added EMQX Kafka plugin and supporting dependencies

The build now includes the emqx\_plugin\_kafka plugin (v5.0.0), which enables EMQX to publish client lifecycle events (connect, disconnect, subscribe, unsubscribe) and MQTT messages to a Kafka topic. The plugin is configured via environment variables (KAFKA\_ADDRESS\_LIST, KAFKA\_TOPIC, etc.) or config files, defaulting to a test topic and a list of Kafka brokers. This change also adds several Erlang dependencies required by the plugin and the broader EMQX stack, including brod (Kafka client), cowboy/cowlib (HTTP server), crc32cer (CRC32C NIF), getopt, and others.

_\build/default · high confidence

Added EMQX Kafka plugin release package

The build output now includes the \emqx\_plugin\_kafka-5.0.0\ release package, bundling the plugin application with its Erlang dependencies (\brod-3.16.3\, \kafka\_protocol-4.0.3\, \crc32cer-0.1.8\, \snappyer-1.2.8\). This package provides the necessary configuration files, schema definitions, and native code to enable EMQX 5.0 to connect to Kafka brokers for message publishing and consumption.

_\build · high confidence

Initial release of EMQX Kafka plugin template

This change introduces the initial codebase for the emqx-plugin-kafka, a plugin for EMQX 5.0 that publishes MQTT messages to Kafka. The project includes build infrastructure (Makefile, rebar.config) and dependencies (hocon, brod, crc32cer, jsx) to compile and package the plugin. It supports configuration via an external file at /etc/emqx\_kafka.conf or environment variables (e.g., KAFKA\_ADDRESS\_LIST, KAFKA\_TOPIC) to define Kafka connection details and MQTT topics for publishing.

(repo-wide) · high confidence

Initial release of the EMQX Kafka plugin

The \emqx\_plugin\_kafka\ plugin is now available, enabling EMQX to publish MQTT events (such as client connect/disconnect, subscribe/unsubscribe, and message publishing) to Apache Kafka. The plugin supports configuration via environment variables (e.g., \KAFKA\_ADDRESS\_LIST\, \KAFKA\_TOPIC\) and an external HOCON configuration file at \/etc/emqx\_kafka.conf\, allowing users to route specific MQTT topics to Kafka for downstream processing.

src · high confidence

Dependencies

Added brod 3.16.3 Apache Kafka Erlang client library

The EMQX Kafka plugin now includes the brod 3.16.3 Erlang client library, providing the underlying implementation for Kafka connectivity. This addition introduces core client APIs for producing and consuming messages, consumer group coordination, and a command-line interface (brod\_cli) for inspecting metadata, offsets, and groups, enabling the plugin to communicate with Apache Kafka brokers.

(repo-wide) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 35.

Lenses

  • Code Health 97
  • Architecture 69
  • Maturity 36
  • Readiness 10
  • Security 85

Changes since last survey

  • 76 commits — 51 feature/other, 25 fixes

By area

  • (root) — 20 commits
  • src/emqx_plugin_kafka.erl — 19 commits
  • src/emqx_plugin_kafka_app.erl — 17 commits
  • _build/default — 4 commits
  • config/config.hocon — 3 commits
  • priv/config.hocon — 3 commits
  • (repo) — 2 commits
  • etc/emqx_plugin_kafka.conf — 2 commits
  • .vscode/configurationCache.log — 1 commit
  • config/emqx_plugin_kafka.hocon — 1 commit
  • priv/config.hacon — 1 commit
  • priv/emqx_plugin_kafka.hocon — 1 commit
  • src/emqx_plugin_kafka.app.src — 1 commit
  • src/emqx_plugin_kafka_schema.erl — 1 commit

Notable commits

  • fix: fix bug
  • fix: fix bug
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • fix: fix log issue
  • …and 56 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

simingwang/emqx-plugin-kafkav5 was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 17 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 156d860672c9c4eda27838dc0cbf3672efdd3b9b — the exact code this score is about.
  • Scored under rubric-2026.09.13 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-d1ef6c0bd534.