Redpanda Connect Documentation

repository·main·Indexed 27 days ago

https://github.com/redpanda-data/connect

A declarative stream processor for moving data between sources and sinks with support for Bloblang transformations and Change Data Capture (CDC). Features include the Redpanda Unified Migrator for Kafka and Redpanda cluster migrations, RAG pipeline workflows for vector databases, an agentic developer framework for Python-based Redpanda Agents, and the a2a_message processor for AI-to-AI protocol communication.

Tokens
214.2K
Snippets
564
Records
1.3K
Agent score
93%

What's inside Redpanda Connect

  1. Overview of Redpanda Unified Migrator

    main

    The Redpanda Unified Migrator is a comprehensive data migration system designed for Apache Kafka and Redpanda clusters. It orchestrates three specialized sub-migrators to provide complete cluster-to-cluster migration, covering topics, schemas, and consumer groups.

    Core Components

    • Migrator: The central coordinator managing input/output lifecycles, message transformations, and timing of sub-migrator operations.
    • topicMigrator: Handles topic infrastructure, including name interpolation, partition mirroring, configuration copying, and optional ACL replication.
    • schemaRegistryMigrator: Synchronizes schemas and compatibility settings, supporting regex-based filtering and various ID translation modes.
    • groupsMigrator: Manages consumer group offset translation using timestamp correlation and embedded offset headers.
  2. Use the redpanda_migrator input

    main

    The redpanda_migrator input is a Kafka consumer designed for migration pipelines. It consumes records from a source cluster and forwards them downstream.

    IMPORTANT: This input requires a corresponding redpanda_migrator output in the same pipeline. The input itself does not handle topic, schema, or group synchronization; all migration coordination logic resides in the paired output component. Introduced in version 4.67.0.

  3. Use the otlp_http input component

    main

    The otlp_http input component exposes an OpenTelemetry Collector HTTP receiver that accepts traces, logs, and metrics via the OTLP/HTTP protocol. It converts incoming OTLP data (protobuf or JSON) into individual Redpanda OTEL v1 messages. Each signal (span, log record, or metric) is unbatched into a separate message with embedded Resource and Scope metadata.

    Endpoints:

    • /v1/traces - OpenTelemetry traces
    • /v1/logs - OpenTelemetry logs
    • /v1/metrics - OpenTelemetry metrics

    Supported Protocols:

    • application/x-protobuf
    • application/json

    Output Format Metadata: Each message includes:

    • otel_signal_type: "trace", "log", or "metric"
    • otel_encoding: "json" or "protobuf"
  4. Use the cached processor to optimize expensive operations

    main

    The cached processor caches the result of applying one or more processors to messages identified by a key. If the key exists in the cache, the message content is replaced with the cached result, bypassing the processors. This is ideal for reducing the cost of expensive operations (like HTTP requests) that produce consistent results for specific inputs.

    Note: The cache uses a custom versioned schema. You cannot point this processor to a cache pre-populated with data from other sources.

    pipeline:
      processors:
        - cached:
            key: my_key
            cache: my_cache
            processors:
              - http:
                  url: http://example.com/api
                  verb: GET
  5. Configure the Iceberg output

    main
    The Iceberg output writes streaming data to Apache Iceberg tables via a REST catalog API. It supports multiple storage backends (S3, GCS, Azure), automatic table creation with schema detection, partition transforms, and schema evolution. It is compatible with REST catalog implementations like Apache Polaris, AWS Glue Data Catalog, and Databricks Unity Catalog. It currently supports Iceberg specification version 2 (version 1 tables are automatically upgraded).
  6. Use the drop_on output component

    main
    The drop_on output component wraps a child output and attempts to write messages to it. If the write fails for specific configurable reasons, the message is dropped (acknowledged) instead of being retried or nacked. This is useful for relaxing standard Redpanda Connect back-pressure and retry mechanisms when you want to avoid blocking the pipeline due to transient errors or downstream unavailability.
  7. Use the Parquet input to read Parquet files

    main

    The Parquet input reads and decodes Apache Parquet files into a stream of structured messages. It was introduced in version 4.8.0.

    By default, BYTE_ARRAY or FIXED_LEN_BYTE_ARRAY values are extracted as byte slices ([]byte). If the logical type is UTF8, they are extracted as string. When these byte slices are later serialized to JSON, they are base64 encoded by default. You can convert these to strings or other types using Bloblang transformations (e.g., root.foo = this.foo.string()).