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.)
common_topic No When set, all streams write to this topic; each record gets a stream field with the source stream name and validation is disabled. When unset, each stream uses its name as the topic (with optional topic_prefix).

Common topic (all streams to one topic): Set common_topic (e.g. raw-slack-events) to send every stream to that single topic. The target adds a stream property to each record with the source stream name so consumers can filter or route. Schema validation is disabled in this mode because records from different streams may have different shapes. If the tap already sends a stream property, it is overwritten with the target’s stream name.

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.2.tar.gz (179.5 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.2-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: target_kafka-0.1.2.tar.gz
  • Upload date:
  • Size: 179.5 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.2.tar.gz
Algorithm Hash digest
SHA256 9d247fe1e9d464804d788b6bf5f140427fc3a4205e4c23418e2b1d6e74d565dc
MD5 6a199538397ebf37da276608c9931f0b
BLAKE2b-256 a4a418f273464e0a0555132b4330a0538258c040df5f802f2598102173202361

See more details on using hashes here.

Provenance

The following attestation bundles were made for target_kafka-0.1.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: target_kafka-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 11.4 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b2d7dca19e76d27ea8e33d2106ecc854abfe0d8d8619444a0705f2fe71ee57bf
MD5 33bc52098136ac9188f72ed6e28f8f30
BLAKE2b-256 ee13419e52748ba87017132c6c65cfb03b9eeb461384a4fe6102b678aa49debb

See more details on using hashes here.

Provenance

The following attestation bundles were made for target_kafka-0.1.2-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