Skip to main content

Singer target for Kafka, built with the Meltano Singer SDK.

Project description

target-kafka

target-kafka is a Singer target for Apache Kafka, built with the Meltano Singer SDK. It writes tap output to Kafka topics (one topic per stream) with configurable batching, compression, and message keys. Delivery is at-least-once: on failure, records may be retried and duplicates are possible.

Installation

Install from PyPI:

uv tool install target-kafka

Install from GitHub (replace your-org with your GitHub org or username):

uv tool install git+https://github.com/your-org/target-kafka.git@main

Publishing: To publish to PyPI and add this loader to Meltano Hub, see docs/PUBLISHING.md. For version bumps and release steps, see docs/RELEASING.md.

Configuration

Accepted config options

Setting Required Default Description
bootstrap_servers Yes Kafka bootstrap servers (comma-separated, e.g. localhost:9092,localhost:9093)
topic_prefix No "" Prefix to add to all topic names
key_properties No [] Record properties to use as Kafka message key (empty = round-robin partition)
batch_size No 100 Number of records to batch before sending to Kafka
compression_type No snappy Kafka message compression: none, gzip, snappy, lz4, zstd
include_sdc_properties No true Include Meltano metadata (_sdc_extracted_at, _sdc_received_at, etc.)

A full list of supported settings and capabilities is available by running:

target-kafka --about

Configure using environment variables

With --config=ENV, the target reads configuration from environment variables (and from a .env file in the working directory if present). Use names like TARGET_KAFKA_BOOTSTRAP_SERVERS, TARGET_KAFKA_TOPIC_PREFIX, etc. See .env.example for a template.

Usage

Run with Meltano

You can run target-kafka in a pipeline using Meltano:

meltano run tap-smoke-test target-kafka

Run the target directly

target-kafka --version
target-kafka --help

# Example with config file
tap-smoke-test | target-kafka --config config.json

# Example with env config
tap-smoke-test | target-kafka --config ENV

This target works in any Singer environment and does not require Meltano.

Developer resources

Prerequisites

  • Python 3.10+
  • uv

Setup and tests

uv sync
uv run pytest
uv run target-kafka --help

Testing with Meltano

uv tool install meltano
meltano invoke target-kafka --version
meltano run tap-smoke-test target-kafka

SDK dev guide

See the Singer SDK dev guide for developing taps and targets.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

target_kafka-0.1.1.tar.gz (178.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

target_kafka-0.1.1-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file target_kafka-0.1.1.tar.gz.

File metadata

  • Download URL: target_kafka-0.1.1.tar.gz
  • Upload date:
  • Size: 178.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for target_kafka-0.1.1.tar.gz
Algorithm Hash digest
SHA256 dc721abca14535e92ea091ed765988c45ad6a6a3cc0274127e850cc2c2e83170
MD5 da3bb6203eddba013e84aab19d4f30a2
BLAKE2b-256 ed8f238c3cfb57fa3cc7ade6fafa74e44adb071c41b40b58544964dac0b9a47c

See more details on using hashes here.

Provenance

The following attestation bundles were made for target_kafka-0.1.1.tar.gz:

Publisher: build.yml on rishipradeep-think41/target-kafka

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file target_kafka-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: target_kafka-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for target_kafka-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4e0a46892f9c83a274255a1d4071e9a046aa1598645d6c0613bfbc679a3c7991
MD5 bed6ccb10befec3e400b279c6497acdb
BLAKE2b-256 a8ac26d81219de743741e520ab1f7089af987ec23c5540d01a4b73e6d2ba3904

See more details on using hashes here.

Provenance

The following attestation bundles were made for target_kafka-0.1.1-py3-none-any.whl:

Publisher: build.yml on rishipradeep-think41/target-kafka

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page