Open-source Kafka Connect 4.3.1: Redis Streams, JDBC, OpenSearch, MongoDB, ActiveMQ
361
A 100% open-source Kafka Connect image built on the official Apache Kafka distribution. No licence key, no trial period, no runtime licence validation, no proprietary or copyleft-heavy drivers. Every jar in plugin.path is audited on every build.
Tags: 4.3.1-<date>-<time> = Apache Kafka 4.3.1 + build timestamp. Pull the newest dated tag; there is no latest.
docker pull n8500x/kafka-connect-oss:4.3.1-20260917-155426
| Connector | Version | Licence |
|---|---|---|
Redis sink + Redis Streams source (redis-kafka-connect; its keys source is defective in 0.9.1 and unsupported, see the README inside the image) | 0.9.1 | Apache-2.0 |
Redis Streams SMT io.github.n8500x.connect.transforms.RedisStreamToKeyValue (built from source) | 1.0.0 | Apache-2.0 |
| JDBC source/sink (Aiven) | 6.10.0 | Apache-2.0 |
| OpenSearch sink (Aiven) | 3.2.0 | Apache-2.0 |
| MongoDB source/sink | 2.0.0 | Apache-2.0 |
| ActiveMQ/JMS source + sink (Apache Camel) | 3.21.0 | Apache-2.0 |
JDBC drivers: PostgreSQL (BSD), MariaDB Connector/J (LGPL-2.1, also serves MySQL), mssql-jdbc (MIT), Snowflake and SQLite (Apache-2.0). The Oracle ojdbc8, GPL mysql-connector-j and jtds jars that the Aiven package bundles are stripped at build time. No TIBCO, no Elasticsearch, no Confluent components.
Redis Streams is pinned to connector 0.9.1 on purpose: 1.0.0+ ships a Business Source Licence dependency.
services:
kafka-connect:
image: n8500x/kafka-connect-oss:4.3.1-20260917-155426
ports: ["8083:8083"]
environment:
CONNECT_BOOTSTRAP_SERVERS: kafka:29092
CONNECT_GROUP_ID: oss-connect
CONNECT_CONFIG_STORAGE_TOPIC: _oss-connect-configs
CONNECT_OFFSET_STORAGE_TOPIC: _oss-connect-offsets
CONNECT_STATUS_STORAGE_TOPIC: _oss-connect-status
CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 1
CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 1
CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 1
CONNECT_FOO_BAR=x becomes foo.bar=x, the same convention as the Confluent images. REST port: CONNECT_PORT=<port> (or CONNECT_LISTENERS=http://0.0.0.0:<port>; Kafka 4.x has no rest.port); the healthcheck and self-test follow it. A static self-test (plugins, drivers, licence guarantees) runs at every start unless SKIP_SELF_TEST=true.
Source: com.redis.kafka.connect.RedisStreamSourceConnector (XREADGROUP, at-least-once). Sink: com.redis.kafka.connect.RedisSinkConnector with redis.command=XADD. Add the bundled SMT to publish a stream entry's own fields as the Kafka key and value:
"transforms": "streamToKv",
"transforms.streamToKv.type": "io.github.n8500x.connect.transforms.RedisStreamToKeyValue",
"transforms.streamToKv.keyField": "key",
"transforms.streamToKv.valueField": "value"
Configs that already name the transform MapRedisStreamRecord keep working: the same transform is also registered as io.github.n8500x.connect.transforms.MapRedisStreamRecord (identical behaviour and properties), so only the package prefix of the type line changes.
Every supported connector moves a real record through its backend in the test (Redis SET, JDBC sink and source against PostgreSQL, OpenSearch, MongoDB sink and change-stream source, an ActiveMQ round trip, and Redis Streams in both directions).
Works with Podman + podman-compose (CONTAINER_CLI=podman COMPOSE_CMD=podman-compose) or Docker. Missing images are pulled by the script up front (--pull-only prepares a host); compose never pulls.
Everything required is inside the image at /usr/share/doc/kafka-connect-oss/: the test harness, the compose stack definition, licence inventory, Dockerfile and SMT sources.
docker run --rm n8500x/kafka-connect-oss:4.3.1-20260917-155426 \
tar -C /usr/share/doc/kafka-connect-oss -cf - integration-test.sh docker-compose.yml | tar -xf -
chmod +x integration-test.sh
CONNECT_IMAGE=n8500x/kafka-connect-oss:4.3.1-20260917-155426 CONNECT_PORT=9083 ./integration-test.sh --skip-build # CONNECT_PORT optional, default 8083
# expected: Summary PASS: 65 FAIL: 0
The suite starts Kafka, Redis, PostgreSQL, OpenSearch, MongoDB and ActiveMQ (pinned open-source images; set REGISTRY_PREFIX= to pull them from an internal registry), registers every connector and requires RUNNING tasks, runs Redis Streams end-to-end in both directions, then scans every plugin jar for restricted licence text and licence-enforcement classes. Full details in README.md and ONPREM-REFERENCE.html inside the image.
n8500x/cp-kafka-connect is retired. Its 8.2.0-ubi10-* tags were a Confluent Platform build (Confluent Community runtime, commercial ActiveMQ/TIBCO connectors, proprietary Oracle driver); its 4.3.1-oss-* tags were earlier builds of this image. Use this repository for all new deployments.
Content type
Image
Digest
sha256:8935c3bb2…
Size
793.9 MB
Last updated
5 days ago
docker pull n8500x/kafka-connect-oss:4.3.1-20260917-155426