Streamlining data flows with the new Bytewax and Redpanda integration

It just got even simpler for Python developers to build powerful streaming data apps

Redpanda's achievements have always captivated our attention. It appears that the same community drawn to Bytewax also tends to be attracted to Redpanda. As an Apache Kafka®-compatible event streaming platform, Redpanda streamlines the data management process, eliminating the need for Apache Zookeeper®, JVM, and any code alterations while supporting all favored open-source tools.

Recognizing this shared audience and technological compatibility, we've taken a step to integrate Redpanda more deeply into Bytewax. This blog post highlights how easily Redpanda and Bytewax click together, with an emphasis on the recently released Schema Registry integration in the latest v0.18 release.

Get to know Redpanda Schema Registry

Redpanda's Schema Registry is essential for managing schema and ensuring data integrity in streaming contexts. It centralizes schema management, facilitating easy access and sharing between producers and consumers. This setup enhances message serialization/deserialization and maintains compatibility across schema versions, supporting seamless schema evolution.

The registry uses a systematic approach to manage schema changes, allowing applications to adapt without data pipeline disruption. It organizes schemas in defined namespaces and tracks their versions, streamlining schema version control and ensuring data remains consistent and structured for evolving data models.

The Schema Registry allows consumers and producers to access schemas using a RESTful API.

The Schema Registry allows consumers and producers to access schemas using a RESTful API

Why integrate ByteWax and Redpanda?

The integration between Bytewax and Redpanda, particularly with the Redpanda Schema Registry, offers several key benefits:

  • Streamlined data processing: Developers can now build and deploy real-time data processing pipelines more efficiently, leveraging Bytewax's intuitive Python API and Redpanda's high-throughput streaming capabilities.
  • Schema management: With the native support for Redpanda's Schema Registry, schemas can be automatically managed and validated, reducing the risk of data inconsistencies and simplifying schema evolution over time.
  • Scalability and performance: Both Bytewax and Redpanda are designed with performance and scalability in mind. This integration ensures that as your data grows, your processing pipelines can scale seamlessly without sacrificing speed or reliability.
  • Ease of use: The combined power of Bytewax and Redpanda is now accessible through a simplified interface, making it easier for developers to implement complex data processing and streaming tasks without a steep learning curve.

How to Integrate ByteWax and Redpanda

To get this powerful integration up and running, developers can simply connect their Bytewax dataflows to Redpanda streams using the native support for the Redpanda Schema Registry. This ensures that data is automatically serialized and deserialized according to the schemas defined in the registry, facilitating a smooth and efficient data processing pipeline.

import bytewax.operators as op
from bytewax.connectors.kafka import operators as rop
from bytewax.connectors.kafka.registry import RedpandaSchemaRegistry, SchemaRef

REDPANDA_BROKERS = os.environ.get("REDPANDA_SERVER", "localhost:19092").split(";")
IN_TOPICS = os.environ.get("REDPANDA_IN_TOPIC", "in_topic").split(";")
REDPANDA_REGISTRY_URL = os.environ["REDPANDA_REGISTRY_URL"]

flow = Dataflow("schema_registry")
rinp = rop.input("redpanda-in", flow, brokers=REDPANDA_BROKERS, topics=IN_TOPICS)

# Inspect errors and crash
op.inspect("inspect-rp-errors", rinp.errs).then(op.raises, "redpanda-error")

# Redpanda's schema registry configuration
registry = RedpandaSchemaRegistry(REDPANDA_REGISTRY_URL)

# Deserialize both key and value
key_de = registry.deserializer(SchemaRef("sensor-key"))
val_de = registry.deserializer(SchemaRef("sensor-value"))
msgs = kop.deserialize("de", rinp.oks, key_deserializer=key_de, val_deserializer=val_de)

# Inspect errors and crash
op.inspect("inspect-deser", msgs.errs).then(op.raises, "deser-error")

What’s next?

The Bytewax and Redpanda partnership, especially the native integration with the Redpanda Schema Registry, marks a significant milestone for Python developers building streaming data solutions. By combining the strengths of both platforms, we’re making it easier for developers to build high-performance, scalable, and reliable applications. We invite you to explore this new integration and discover how it can benefit your projects!

Resources

Eager to start streamlining your data workflows? Experiment with the Bytewax and Redpanda integration today and join our buzzing communities to share your insights, get support, and collaborate with fellow developers on this exciting journey.

To explore Redpanda, check the documentation and browse the Redpanda blog for cool tutorials. If you have questions or want to chat with the team, join the Redpanda Community on Slack.

No items found.

Related articles

VIEW ALL POSTS
A tour of Redpanda Streamfest 2024
Jenny Medeiros
&
&
&
December 18, 2024
Text Link
What is a data streaming architecture?
Redpanda
&
&
&
November 14, 2024
Text Link
Batch vs. streaming data processing
Redpanda
&
&
&
November 8, 2024
Text Link