June 22, 2018·4 min read·engineeringkafkaconnectplugins

Confluent Hub turns Connect plugin discovery into an installation workflow

Confluent Hub launches with connectors, transformations and converters for Kafka Connect. Its catalog and client reduce artifact-handling work while leaving connector configuration and worker consistency as separate deployment concerns.

Finding a Kafka connector's repository does not put a usable plugin into a worker. Someone still needs a released artifact, its dependencies and an installation layout that Connect can discover. Confluent Hub's June 22 launch addresses that gap with a component catalog and a companion installation client. Its initial scope includes connectors, transformations and converters.

The announcement describes the preceding workflow in concrete terms. A directory entry could identify a project and its author, but users still had to locate released JARs or build the source. Hub provides downloadable packages and installation information. The client turns a selected component reference into an installation operation, with options for inspecting and automating that operation.

I find Kafka's independent consumers useful because the same retained stream can feed several systems. Connect is often the boundary where those systems meet the log. Reducing repeated plugin packaging work is valuable, provided the installed component and the configured data movement remain separately identifiable.

Discovery covers different extension points

A connector integrates a source or destination system with Connect's runtime. The Kafka 1.1 Connect guide explains that the connector divides work into tasks, and the tasks perform the copying. A catalog entry naming the connector therefore identifies an implementation that participates in a larger execution framework.

Transformations operate at a different point. Connect can apply a configured chain of lightweight, message-at-a-time changes. A transformation might wrap a value in a field or insert a static field before subsequent processing. Its purpose is different from establishing a connection to a database or implementing that database's reading protocol.

Converters handle the boundary between Connect's data representation and serialized Kafka records. The guide identifies separate key and value converters, and allows connector-level overrides of worker defaults. A connector's integration logic can consequently remain separate from the wire representation selected for its records.

Hub's initial categories correspond to those distinct extension points. Searching for a converter should not be confused with finding a complete source connector. Finding an extra transformation does not establish that a worker has acquired a new source-system integration. The catalog is more useful when its component descriptions preserve the role each implementation fills.

The client names an artifact to install

The launch demonstrates installation of the Debezium MySQL connector through a component reference. This is the invocation shown by the announcement, rather than an instruction to choose an unpinned version for a repeatable deployment.

confluent-hub install debezium/debezium-connector-mysql:latest

The client can also receive a specific version. The announcement describes --dry-run for inspecting the intended changes and additional options for automated installations. It says that the client is included beginning with Confluent Platform 5.0.0-beta2 and can be installed separately. Those details distinguish the new installation tool from the Connect runtime itself.

Selecting an exact version gives a deployment record a more precise artifact identity than the moving latest reference in the demonstration. The catalog helps locate the component, while the selected version identifies which release was installed. Neither one alone states which connector configuration the worker will later execute.

The announcement also describes manually downloading a ZIP and extracting it under Connect's plugin.path. The automated client and manual archive are two ways to deliver a plugin into a discoverable installation. They address the same artifact-handling problem without requiring the user to build every connector from source.

Installation and execution remain separate operations

Connect's distributed mode accepts connector configuration through a REST API. The configuration identifies the connector class and includes connector-specific properties. The guide also defines tasks.max as an upper bound, noting that the connector may create fewer tasks when it cannot achieve that parallelism.

Installing a connector therefore makes code available. Creating a configured connector asks Connect to use that code for a particular job. An installation command cannot infer every source credential, table selection or destination requirement that belongs to the job. The separation is useful because several configured connectors can use the same installed implementation with different purposes.

The guide's GET /connector-plugins endpoint has a scope that matters here. It reports plugins from the worker handling the request, and the documentation warns that results can differ during a rolling upgrade when workers have different JARs. A successful response from one worker does not prove that every worker has the same installation.

This creates an operational requirement around a distributed Connect deployment. The artifact installation needs to reach the workers that may receive its tasks. Hub simplifies obtaining and placing the artifact, but worker consistency still belongs to the deployment process. The catalog does not make a local filesystem change automatically visible to every process in a cluster.

I prefer to keep those steps explicit because they answer different failure questions. If the class is unavailable, the installation is relevant. If the class loads but the job fails, its task status and configuration become relevant. Connect exposes connector and individual task status through its REST interface, so those cases have distinct observations.

The guide also separates configuration, offset and task-status storage in distributed mode. Those records live in Kafka topics, while plugin code remains part of the worker installation. Restoring a connector configuration therefore does not manufacture its missing classes. This distinction explains why the artifact deployment must remain consistent even when Connect already has durable metadata describing the job it should execute.

Catalog membership and support have different meanings

The launch also describes Confluent's Verified Integration program. It says verification includes review of code, documentation and functionality, with support readiness and mandatory partner support among the requirements. That is a particular program described by the publisher, rather than an implication that every community package has identical support arrangements.

Hub's descriptions and support information let a user inspect who supplies a component and what relationship accompanies it. That information belongs alongside the artifact version and the connector configuration in an operational record. The June launch makes discovery and delivery easier, while the installed worker set and running tasks remain the concrete places where the selected integration executes.