
Build a real-time lakehouse architecture with Redpanda and Databricks
One architecture for real-time and analytics workloads. Easy to access, governed, and immediately queryable
Breaking the language barrier with runtime-loaded plugins via gRPC
Today, we're excited to introduce dynamic plugins for Redpanda Connect — a new Apache 2.0 licensed feature that makes our data streaming platform even more flexible and interoperable. This plugin framework allows you to create and load plugins at runtime, opening up a world of new integration possibilities beyond Go. The dynamic plugins framework is available in Beta as part of Redpanda Connect v4.56.0.
Redpanda Connect has always supported plugins, but they've been "compiled plugins," meaning they needed to be built in Go and compiled directly into the Redpanda Connect binary. While this approach works well for many use cases, it creates limitations when you want to:
Dynamic plugins solve these challenges by allowing Redpanda Connect to load plugins at runtime from external executables. These executables communicate with the main Redpanda Connect process via gRPC, creating a flexible, language-agnostic plugin system.
Under the hood, Redpanda Connect orchestrates different plugins as subprocesses and uses gRPC over a Unix socket to pass data back and forth between processes. The protocol definition for these plugins closely mirrors the existing interfaces defined for plugins within Redpanda Connect's core engine, Benthos.
The architecture is elegant in its simplicity:
Using gRPC for our plugin system offers several advantages:
Out of the gate, we have support for creating plugins in both Golang and Python.
# Initialize the environment
uv init yell_plugin
cd yell_plugin
uv add redpanda_connect
# Create a plugin
cat <<EOF > main.py
import asyncio
import logging
import redpanda_connect
@redpanda_connect.processor
def yell(msg: redpanda_connect.Message) -> redpanda_connect.Message:
msg.payload = msg.payload.upper()
return msg
if __name__ == "__main__":
logging.basicConfig(level=logging.INFO)
asyncio.run(redpanda_connect.processor_main(yell))
EOF
# Create the plugin configuration
cat <<EOF > plugin.yaml
name: yell
summary: Just the simplest example
command: ["uv", "run", "main.py"]
type: processor
fields: []
EOF
# Create the pipeline
cat <<EOF > connect.yaml
pipeline:
processors:
- yell: {}
EOF
# Run the pipeline
rpk connect run --rpc-plugins=plugin.yaml connect.yamlThe configuration follows the same pattern for input, processor, and output plugins.
While introducing gRPC does add some serialization and IPC overhead, we've designed the system to minimize performance impact:
That said, for performance-critical workloads where every microsecond counts, the best approach remains using native Go plugins compiled directly into the Redpanda Connect binary. Dynamic plugins shine for flexibility and language choice, while compiled plugins offer maximum performance.
To make plugin development as smooth as possible, we're launching with official SDKs for both Go and Python:
We're particularly excited about the Python SDK as it bridges the gap between the streaming data world and the rich Python ecosystem. This includes access to:
Python plugins create a seamless bridge between streaming data pipelines and AI/ML capabilities, all without needing to leave your Redpanda Connect environment.
Dynamic plugins open up exciting new possibilities for Redpanda Connect:
For example, a media company could implement a Python processor plugin that analyzes the sentiment of social media posts about their content. Using PyTorch and a pre-trained transformer model, the plugin can classify posts in real-time, tag content with emotions (such as joy, anger, and surprise), and route high-impact messages to the appropriate teams—all while maintaining the performance and reliability benefits of Redpanda's streaming infrastructure.
While dynamic plugins are powerful, they're not always the right choice. We recommend:
Let's walk through creating and running your first dynamic plugin using the fizzbuzz_processor.py example from our GitHub repository.
1. Install or update to the latest Redpanda Connect version:
rpk --version
rpk version (Redpanda CLI): v25.1.4 (rev 6cd1d4ef6b)
rpk connect upgrade
Redpanda Connect successfully upgraded from 4.55.1 to the latest version (4.56.0).2. Set up a Python environment
# Create a new directory for your plugin
mkdir fizzbuzz_plugin
cd fizzbuzz_plugin
# Initialize with uv (or use pip/conda)
uv init .
uv add redpanda_connectDownload the fizzbuzz_processor.py example from our repository:
# Download the example processor
curl -o fizzbuzz_processor.py https://raw.githubusercontent.com/redpanda-data/connect/main/public/plugin/python/examples/fizzbuzz_processor.pyThe FizzBuzz processor transforms numeric messages according to the classic FizzBuzz rules, demonstrating how to:
@redpanda_connect.processor decoratorCreate plugin.yaml:
name: fizzbuzz
summary: Transforms numbers according to FizzBuzz rules (3=Fizz, 5=Buzz, 15=FizzBuzz)
command: ["uv", "run", "fizzbuzz_processor.py"]
type: processor
fields: []Create connect.yaml:
input:
generate:
interval: 1s
mapping: |
root = counter() % 20 + 1 # Generate numbers 1-20
pipeline:
processors:
- fizzbuzz: {}
output:
stdout:
codec: linesExecute the pipeline with your dynamic plugin:
rpk connect run --rpc-plugins=plugin.yaml connect.yamlYou should see output like:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
BuzzThe configuration follows the same pattern for input, processor, and output plugins:
plugin.yaml): Defines the plugin name, command to execute, type, and any configurable fields@redpanda_connect.processor decorator and implements the transformation logicconnect.yaml): Uses your custom plugin just like any built-in Redpanda Connect componentDynamic plugins represent a significant step forward for Redpanda Connect, breaking down language barriers and enabling more flexible integrations. By leveraging the proven Go-plugin framework and gRPC, we've created a robust system that maintains the performance and reliability you expect from Redpanda while dramatically expanding what's possible.
This is just the beginning. We're excited to see how our community uses dynamic plugins to solve real-world streaming data challenges. We'd love to hear your feedback on this new feature and learn what use cases you're building. Your input helps us prioritize future enhancements and keeps us focused on solving the right problems. So let us know what you think in the Redpanda Community Slack!
Want early access to upcoming features? Be the first to try out new Redpanda Connect capabilities and beta features. Just send us your cloud username on Slack and we'll happily add you to our early access program.
Chat with our team, ask industry experts, and meet fellow data streaming enthusiasts.

One architecture for real-time and analytics workloads. Easy to access, governed, and immediately queryable

Putting governed agents to work, plus a refreshed onboarding UX

Highlights from the second day of Redpanda Streamfest 2025
Subscribe and never miss another blog post, announcement, or community event. We hate spam and will never sell your contact information.