Components Catalog
Use the following table to search for available inputs, outputs, and processors.
memory
Stores consumed messages in memory and acknowledges them at the input level.
none
Do not buffer messages. This is the default and most resilient configuration.
system_window
Chops a stream of messages into tumbling or sliding windows of fixed temporal size, following the system clock.
aws_dynamodb
Stores key/value pairs as a single document in a DynamoDB table.
aws_s3
Stores each item in an S3 bucket as a file, where an item ID is the path of the item within the bucket.
gcp_cloud_storage
Use a Google Cloud Storage bucket as a cache.
lru
Stores key/value pairs in a lru in-memory cache. This cache is therefore reset every time the service restarts.
memcached
Connects to a cluster of memcached services, a prefix can be specified to allow multiple cache types to share a memcached cluster under different...
mongodb
Use a MongoDB instance as a cache.
multilevel
Combines multiple caches as levels, performing read-through and write-through operations across them.
nats_kv
Caches key/value pairs in a NATS key-value bucket.
noop
Noop is a cache that stores nothing, all gets returns not found. Why? Sometimes doing nothing is the braver option.
redis
Use a Redis instance as a cache. The expiration can be set to zero or an empty string in order to set no expiration.
redpanda
A Kafka cache implemented using the Franz Kafka client library.
ristretto
Stores key/value pairs in a map held in the memory-bound Ristretto cache.
sql
Uses an SQL database table as a destination for storing cache key/value items.
ttlru
Stores key/value pairs in a ttlru in-memory cache. This cache is therefore reset every time the service restarts.
amqp_0_9
Connects to an AMQP (0.91) queue. AMQP is a messaging protocol used by various message brokers, including RabbitMQ.
aws_cloudwatch_logs
Consumes log events from AWS CloudWatch Logs.
aws_dynamodb_cdc
Reads change data capture (CDC) events from DynamoDB Streams.
aws_kinesis
Receive messages from one or more Kinesis streams.
aws_sqs
Consume messages from an AWS SQS URL.
azure_blob_storage
Downloads objects within an Azure Blob Storage container, optionally filtered by a prefix.
azure_cosmosdb
Executes a SQL query against Azure CosmosDB and creates a batch of messages from each page of items.
azure_queue_storage
Dequeue objects from an Azure Storage Queue.
azure_table_storage
Queries an Azure Storage Account Table, optionally with multiple filters.
batched
Consumes data from a child input and applies a batching policy to the stream.
broker
Allows you to combine multiple inputs into a single stream of data, where each input will be read in parallel.
csv
Reads one or more CSV files as structured records following the format described in RFC 4180.
gcp_bigquery_select
Executes a SELECT query against BigQuery and creates a message for each row received.
gcp_pubsub
Consumes messages from a GCP Cloud Pub/Sub subscription.
gcp_spanner_cdc
Consumes change records from a Google Cloud Spanner change stream.
generate
Generates messages at a given interval using a Bloblang mapping executed without a context.
git
Clones a Git repository, reads its contents, then polls for new commits at a configurable interval.
http_client
Connects to a server and continuously performs requests for a single message.
http_server
Receive messages POSTed over HTTP(S). HTTP 2.0 is supported when using TLS, which is enabled when key and cert files are specified.
inproc
Directly connects to an output within the same process by a chosen ID, to link isolated streams when running in streams mode.
jira
Streams Jira issues, comments, or changelog entries via JQL with incremental polling.
kafka
Connects to Kafka brokers and consumes one or more topics.
kafka_franz
A Kafka input using the Franz Kafka client library.
microsoft_sql_server_cdc
Enables Change Data Capture by consuming from Microsoft SQL Server's change tables.
mysql_cdc
Streams data changes from a MySQL or MariaDB database, using the binary log to capture data updates.
nats_jetstream
Reads messages from NATS JetStream subjects.
oracledb_cdc
Enables Change Data Capture by consuming from OracleDB.
otlp_grpc
Receive OpenTelemetry traces, logs, and metrics via OTLP/gRPC protocol.
otlp_http
Receive OpenTelemetry traces, logs, and metrics via OTLP/HTTP protocol.
pg_stream
Streams changes from a PostgreSQL database using logical replication.
postgres_cdc
Streams changes from a PostgreSQL database using logical replication.
read_until
Reads messages from a child input until a consumed message passes a Bloblang query, at which point the input closes.
redis_list
Pops messages from the beginning of a Redis list using the BLPop command.
redis_pubsub
Consume from a Redis publish/subscribe channel using either the SUBSCRIBE or PSUBSCRIBE commands.
redis_scan
Scans the set of keys in the current selected database and gets their values, using the Scan and Get commands.
redis_streams
Pulls messages from Redis (v5.0+) streams with the XREADGROUP command. The client_id should be unique for each consumer of a group.
redpanda_common
Consumes data from a Redpanda (Kafka) broker, using credentials defined in a common top-level redpanda config block.
redpanda_migrator
Consumes records from a source Kafka or Redpanda cluster for the redpanda_migrator output to migrate.
resource
Resource is an input type that channels messages from a resource input, identified by its name.
salesforce
Executes a Salesforce SOQL query once and emits a message for each record.
salesforce_cdc
Streams Salesforce Change Data Capture (CDC) and Platform Events from the Pub/Sub gRPC API, optionally preceded by a REST snapshot of the...
salesforce_graphql
Executes a Salesforce GraphQL (UIAPI) query once and emits a message for each record.
schema_registry
Reads schemas from a schema registry.
sequence
Reads messages from a sequence of child inputs, starting with the first and once that input gracefully terminates starts consuming from the next,...
slack
Connects to Slack using Socket Mode and receives events, interactions, and slash commands.
slack_users
Returns the full profile of all users in your Slack organization using the users.list API method. You can filter the returned users by team ID.
spicedb_watch
Consume messages from the Watch API from SpiceDB.
sql_raw
Executes a select query and creates a message for each row received.
sql_select
Executes a select query and creates a message for each row received.
timeplus
Executes a query on Timeplus Enterprise and creates a message from each row received.
websocket
Connects to a websocket server and continuously receives messages.
open_telemetry_collector
Sends metrics to one or more OpenTelemetry Collector endpoints.
prometheus
Host endpoints (/metrics and /stats) for Prometheus scraping.
arc
Writes data to an Arc database via the msgpack ingestion endpoint.
aws_kinesis_firehose
Sends messages to a Kinesis Firehose delivery stream.
aws_sns
Sends messages to an AWS SNS topic.
azure_data_lake_gen2
Sends message parts as files to an Azure Data Lake Gen2 filesystem. Each file is uploaded with the filename specified with the path field.
drop_on
Attempts to write messages to a child output and if the write fails for one of a list of configurable reasons the message is dropped (acked)...
elasticsearch_v8
Publishes messages into an Elasticsearch index. If the index does not exist then it is created with a dynamic mapping.
fallback
Attempts to send each message to a child output, starting from the first output on the list.
gcp_bigquery
Sends messages as new rows to a Google Cloud BigQuery table.
gcp_bigquery_write_api
Streams data into BigQuery using the Storage Write API.
iceberg
Writes data to Apache Iceberg tables using the REST catalog API.
opensearch
Publishes messages into an Elasticsearch index. If the index does not exist then it is created with a dynamic mapping.
reject
Rejects all messages, treating them as though the output destination failed to publish them.
reject_errored
Rejects messages that have failed their processing steps, resulting in nack behavior at the input level, otherwise sends them to a child output.
retry
Attempts to write messages to a child output and if the write fails for any reason the message is retried either until success or, if the retries...
salesforce_sink
Writes messages to Salesforce, routing each Kafka topic to its own sObject configuration.
slack_post
Posts a new message to a Slack channel using the Slack API method chat.postMessage.
slack_reaction
Adds or removes an emoji reaction on a Slack message.
snowflake_put
Sends messages to Snowflake stages and, optionally, calls Snowpipe to load this data into one or more tables.
snowflake_streaming
Ingests data into Snowflake using the Snowpipe Streaming classic architecture.
snowflake_streaming_pipe
Ingest data into Snowflake using Snowpipe Streaming, writing through a Snowflake pipe.
splunk_hec
Publishes messages to a Splunk HTTP Endpoint Collector (HEC).
sql_insert
Inserts a row into an SQL database for each message.
switch
The switch output type allows you to route messages to different outputs based on their contents.
sync_response
Returns the final message payload back to the input origin of the message, where it is dealt with according to that specific input type.
a2a_message
Sends messages to an A2A (Agent-to-Agent) protocol agent and returns the response.
archive
Archives all the messages of a batch into a single message according to the selected archive format.
avro
Performs Avro based operations on messages based on a schema.
aws_bedrock_chat
Generates responses to messages in a chat conversation, using the AWS Bedrock API.
aws_bedrock_embeddings
Computes vector embeddings on text, using the AWS Bedrock API.
aws_dynamodb_partiql
Executes a PartiQL expression against a DynamoDB table for each message.
aws_lambda
Invokes an AWS lambda for each message.
benchmark
Logs basic throughput statistics of messages that pass through this processor.
bounds_check
Removes messages (and batches) that do not fit within certain size boundaries.
branch
The branch processor allows you to create a new request message via a Bloblang mapping, execute a list of processors on the request messages, and,...
cached
Cache the result of applying one or more processors to messages identified by a key.
catch
Applies a list of child processors only when a previous processing step has failed.
cohere_chat
Generates responses to messages in a chat conversation, using the Cohere API.
cohere_embeddings
Generates vector embeddings to represent input text, using the Cohere API.
cohere_rerank
Reranks a list of documents by their relevance to a query, using the Cohere API.
compress
Compresses messages according to the selected algorithm. Supported compression algorithms are: [flate gzip lz4 pgzip snappy zlib]
decompress
Decompresses messages according to the selected algorithm. Supported decompression algorithms are: [bzip2 flate gzip lz4 pgzip snappy zlib]
dedupe
Deduplicates messages by storing a key value in a cache using the add operator. If the key already exists within the cache it is dropped.
for_each
A processor that applies a list of child processors to messages of a batch as though they were each a batch of one message.
gcp_vertex_ai_chat
Generates responses to messages in a chat conversation, using the Vertex AI API.
gcp_vertex_ai_embeddings
Generates vector embeddings to represent input text, using the Vertex AI API.
google_drive_download
Downloads files from Google Drive.
google_drive_list_labels
Lists labels for a file in Google Drive.
google_drive_search
Searches Google Drive for files matching the provided query.
group_by
Splits a batch of messages into N batches, where each resulting batch contains a group of messages determined by a Bloblang query.
group_by_value
Splits a batch of messages into N batches, where each resulting batch contains a group of messages determined by a function interpolated string...
http
Performs an HTTP request using a message batch as the request body, and replaces the original message parts with the body of the response.
insert_part
Insert a new message into a batch at an index. If the specified index is greater than the length of the existing batch it will be appended to the end.
jmespath
Executes a JMESPath query on JSON documents and replaces the message with the resulting document.
json_schema
Checks messages against a provided JSONSchema definition but does not change the payload under any circumstances.
mapping
Executes a Bloblang mapping on messages, creating a new document that replaces (or filters) the original message.
mutation
Executes a Bloblang mapping and directly transforms the contents of messages, mutating (or deleting) them.
nats_request_reply
Sends a message to a NATS subject and expects a reply back from a NATS subscriber acting as a responder.
ollama_chat
Generates responses to messages in a chat conversation, using the Ollama API.
ollama_embeddings
Generates vector embeddings from text, using the Ollama API.
ollama_moderation
Checks whether responses from a large language model (LLM) are safe, using the Ollama API.
openai_chat_completion
Generates responses to messages in a chat conversation, using the OpenAI API.
openai_embeddings
Generates vector embeddings to represent input text, using the OpenAI API.
openai_image_generation
Generates an image from a text description and other attributes, using OpenAI API.
openai_speech
Generates audio from a text description and other attributes, using OpenAI API.
openai_transcription
Generates a transcription of spoken audio in the input language, using the OpenAI API.
openai_translation
Translates spoken audio into English, using the OpenAI API.
parallel
A processor that applies a list of child processors to messages of a batch as though they were each a batch of one message (similar to the...
parquet_decode
Decodes Parquet files into a batch of structured messages.
parquet_encode
Encodes Parquet files from a batch of structured messages.
parse_log
Parses common log formats into structured data. This is easier and often much faster than grok.
processors
A processor grouping several sub-processors.
rate_limit
Throttles the throughput of a pipeline according to a specified rate_limit resource.
schema_registry_decode
Automatically decodes and validates messages with schemas from a Confluent Schema Registry service.
schema_registry_encode
Automatically encodes and validates messages with schemas from a Confluent Schema Registry service.
select_parts
Cherry pick a set of messages from a batch by their index. Indexes larger than the number of messages are simply ignored.
slack_thread
Reads a Slack thread using the Slack API method conversations.replies.
sleep
Sleep for a period of time specified as a duration string for each message.
split
Breaks message batches (synonymous with multiple part messages) into smaller batches.
string_split
Splits a string by a delimiter into an array.
text_chunker
Breaks text-based message content into chunks using a configurable strategy, typically to create vector embeddings of large documents.
try
Executes a list of child processors on messages only if no prior processors have failed (or the errors have been cleared).
try_catch
Executes a list of child processors on each message and, if any of them fail, executes a separate list of catch processors to recover from or...
unarchive
Unarchives messages according to the selected archive format into multiple messages within a batch.
while
A processor that checks a Bloblang query against each batch of messages and executes child processors on them for as long as the query resolves to...
workflow
Executes a topology of branch processors, performing them in parallel where possible.
xml
Parses messages as an XML document, performs a mutation on the data, and then overwrites the previous contents with the new value.
local
A simple X every Y rate limit that can be shared across any number of components within a pipeline.
chunker
Split an input stream into chunks of a given number of bytes.
json_array
Consumes a stream of one or more JSON elements within a top level array.
json_documents
Consumes a stream of one or more JSON documents.
re_match
Split an input stream into segments matching against a regular expression.
skip_bom
Skip one or more byte order marks for each opened child scanner.
to_the_end
Read the input stream all the way until the end and deliver it as a single message.
About Components
Every Redpanda Connect pipeline has at least one input, an optional buffer, an output and any number of processors:
input:
kafka:
addresses: [ TODO ]
topics: [ foo, bar ]
consumer_group: foogroup
buffer:
type: none
pipeline:
processors:
- mapping: |
message = this
meta.link_count = links.length()
output:
aws_s3:
bucket: TODO
path: '${! meta("kafka_topic") }/${! json("message.id") }.json'
These are the main components within Redpanda Connect and they provide the majority of useful behavior.
Observability components
There are also the observability components: logger, metrics, and tracing, which allow you to specify how Redpanda Connect exposes observability data.
http:
address: 0.0.0.0:4195
enabled: true
debug_endpoints: false
logger:
format: json
level: WARN
metrics:
statsd:
address: localhost:8125
flush_period: 100ms
tracer:
jaeger:
agent_address: localhost:6831
Resource components
Finally, there are caches and rate limits. These are components that are referenced by core components and can be shared.
input:
http_client: # This is an input
url: TODO
rate_limit: foo_ratelimit # This is a reference to a rate limit
pipeline:
processors:
- cache: # This is a processor
resource: baz_cache # This is a reference to a cache
operator: add
key: '${! json("id") }'
value: "x"
- mapping: root = if errored() { deleted() }
rate_limit_resources:
- label: foo_ratelimit
local:
count: 500
interval: 1s
cache_resources:
- label: baz_cache
memcached:
addresses: [ localhost:11211 ]
It’s also possible to configure inputs, outputs and processors as resources which allows them to be reused throughout a configuration with the resource input, resource output and resource processor respectively.
For more information about any of these component types check out their sections: