返回排行榜

redpanda-data/connect

Godocs.redpanda.com/connect/home/

Fancy stream processing made operationally mundane

message-queuestream-processingstreaming-datamessage-buslogsstream-processorcqrsevent-sourcinggogolangkafkaamqp
Star 增长趋势
Star
8.7k
Forks
951
周增长
Issues
177
5k
2016年3月2019年8月2023年2月2026年7月
制品库Go Modulesgo get github.com/redpanda-data/connect
README

Redpanda Connect

Build Status Apache V2 API Enterprise API

Redpanda Connect is a stream processor that moves data between a wide range of sources and sinks, with support for hydration, enrichment, transformation, and filtering along the way.

That includes a rich set of change-data-capture (CDC) connectors — for Postgres, MySQL, MongoDB, Oracle, MSSQL, and more — so database changes can flow through your pipelines as first-class events.

It uses Bloblang for mapping, runs as a single static binary or container image, and is easy to operate and monitor.

Highlights

  • Declarative pipelines — a stream topology fits in a single YAML file.
  • At-least-once delivery by default — in-process transactions, no disk state required.
  • A large connector catalog — cloud services, message brokers, databases, HTTP, and more.
  • First-class CDC — change-data-capture connectors for Postgres, MySQL, MongoDB, Oracle, and MSSQL.
  • Bloblang — a mapping language designed for stream data.
  • Cloud-friendly — stateless and horizontally scalable, with metrics and tracing built in.

Example

Stream Postgres changes into Apache Iceberg tables on S3, one Iceberg table per source table:

input:
  postgres_cdc:
    dsn: postgres://user:pass@db.example.com:5432/app?sslmode=require
    schema: public
    tables: [ orders, customers ]
    stream_snapshot: true

output:
  iceberg:
    catalog:
      url: https://glue.us-east-1.amazonaws.com/iceberg
      warehouse: "123456789012"
      auth:
        aws_sigv4:
          region: us-east-1
          service: glue
    namespace: cdc
    table: ${! meta("table") }
    storage:
      aws_s3:
        bucket: my-iceberg-warehouse
        region: us-east-1
    schema_evolution:
      enabled: true
      table_location: s3://my-iceberg-warehouse/cdc/

Quickstart

Install

Linux:

curl -LO https://github.com/redpanda-data/redpanda/releases/latest/download/rpk-linux-amd64.zip
unzip rpk-linux-amd64.zip -d ~/.local/bin/

macOS (Homebrew):

brew install redpanda-data/tap/redpanda

Docker:

docker pull docker.redpanda.com/redpandadata/connect

See the getting started guide for more options.

Run

rpk connect run ./config.yaml

With Docker:

# From a config file
docker run --rm -v /path/to/your/config.yaml:/connect.yaml docker.redpanda.com/redpandadata/connect run

# With inline overrides
docker run --rm -p 4195:4195 docker.redpanda.com/redpandadata/connect run \
  -s "input.type=http_server" \
  -s "output.type=kafka" \
  -s "output.kafka.addresses=kafka-server:9092" \
  -s "output.kafka.topic=redpanda_topic"

Connectors

The catalog includes AWS (DynamoDB, Kinesis, S3, SQS, SNS), Azure (Blob, Queue, Table), GCP (Pub/Sub, Cloud Storage, BigQuery), Kafka, NATS (JetStream, Streaming), NSQ, MQTT, AMQP 0.91 (RabbitMQ), AMQP 1, Redis, Cassandra, Elasticsearch, HDFS, HTTP (server, client, websockets), MongoDB, and SQL (MySQL, PostgreSQL, ClickHouse, MSSQL) — and a lot more in the components documentation.

Delivery guarantees

Delivery guarantees can be a tricky subject. Redpanda Connect processes and acknowledges messages using an in-process transaction model with no disk-persisted state, so when it's connecting at-least-once sources and sinks it can guarantee at-least-once delivery — even through crashes, disk corruption, or other server faults.

That's the default, with no caveats, which keeps deployment and scaling straightforward.

Observability

Health checks

Two HTTP endpoints are exposed for orchestration probes:

  • /ping — liveness probe; always returns 200.
  • /ready — readiness probe; returns 200 once both input and output are connected, otherwise 503.

Metrics

Redpanda Connect exposes metrics to Statsd, Prometheus, a JSON HTTP endpoint, and other backends.

Tracing

OpenTelemetry traces are emitted natively, so you can visualize what's happening inside a pipeline end-to-end.

Configuration

Redpanda Connect ships with tooling for configuration discovery, debugging, and organization — see the configuration guide.

Documentation

Build from source

Requires a currently supported Go version:

git clone git@github.com:redpanda-data/connect
cd connect
task build:all

Plugins with external dependencies

Components that link against external C libraries (for example zmq4) aren't included by default. To pull them in, set the x_benthos_extra build tag:

# With go
go install -tags "x_benthos_extra" github.com/redpanda-data/connect/v4/cmd/redpanda-connect@latest

# With task
TAGS=x_benthos_extra task build:all

This tag may change or be split into more granular tags in future releases. If the required system libraries aren't installed, the build will fail with an error like ld: library not found for -lzmq.

Docker image

A multi-stage Dockerfile builds a minimal scratch-based image:

task docker:all
docker run --rm \
    -v /path/to/your/config.yaml:/config.yaml \
    -v /tmp/data:/data \
    -p 4195:4195 \
    docker.redpanda.com/redpandadata/connect run /config.yaml

Custom plugins

Writing your own plugins in Go is straightforward — check out the API docs and the example plugin repository for reference implementations.

Development

Redpanda Connect uses golangci-lint for linting and gofumpt for formatting. You can configure your editor to use gofumpt automatically — instructions are here.

task fmt    # format the codebase
task lint   # lint the codebase
task test   # unit and template tests

Contributing

Contributions are welcome. Before opening a pull request, please make sure it has been:

  • Unit tested with task test
  • Linted with task lint
  • Formatted with task fmt

Most integration tests spin up Docker containers, so they're skipped by task test. You can run them individually with:

go test -run "^Test.*Integration.*$" ./internal/impl/<connector directory>/...
相关仓库
doocs/advanced-java

😮 Core Interview Questions & Answers For Experienced Java(Backend) Developers | 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识

JavaMavenCreative Commons Attribution Share Alike 4.0 Internationaljavadistributed-systems
java.doocs.org
79k19.2k
redis/redis

For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine.

COtherdatabasekey-value
redis.io
75.6k24.7k
nsqio/nsq

A realtime distributed messaging platform

GoGo ModulesMIT Licensegomessaging
nsq.io
25.8k2.9k
nats-io/nats-server

High-Performance server for NATS.io, the cloud and edge native messaging system.

GoGo ModulesApache License 2.0gogolang
nats.io
20.3k1.9k
emqx/emqx

The most scalable and reliable MQTT broker for AI, IoT, IIoT and connected vehicles

ErlangOthermqttiot
emqx.com
16.5k2.5k
OptimalBits/bull

Premium Queue package for handling distributed jobs and messages in NodeJS.

JavaScriptnpmOthernodejsmessage-queue
16.2k1.4k
pgmq/pgmq

A lightweight message queue. Like AWS SQS and RSMQ but on Postgres.

PLpgSQLPostgreSQL Licensemessage-queue
pgmq.github.io/pgmq/
5k139
goldbergyoni/nodejs-testing-best-practices

Beyond the basics of Node.js testing. Including a super-comprehensive best practices list and an example app (April 2025)

JavaScriptnpmtestingjavascript
4.4k287
vernemq/vernemq

A distributed MQTT message broker based on Erlang/OTP. Built for high quality & Industrial use cases. The VerneMQ mission is active & the project maintained. Thank you for your support!

ErlangApache License 2.0mqttm2m
vernemq.com
3.6k427
superstreamlabs/memphis

Memphis.dev is a highly scalable and effortless data streaming platform

GoGo ModulesOtherdatadata-stream-processing
docs.memphis.dev
3.4k222
testjavascript/nodejs-testing-best-practices

✅ Beyond the basics of Node.js testing. Including a super-comprehensive best practices list and an example app (March 2025)

JavaScriptnpmtestingjavascript
3.4k219
testjavascript/nodejs-integration-tests-best-practices

✅ Beyond the basics of Node.js testing. Including a super-comprehensive best practices list and an example app (March 2024)

JavaScriptnpmtestingjavascript
3.3k219