Build Real-Time Event Streaming Pipelines with SQL
If you've ever felt like building real-time data pipelines requires stitching together a dozen different tools and learning a new framework for each one, you're not alone. The modern data stack can feel heavy. What if you could define a streaming pipeline, process events as they happen, and get continuously updated results using a tool you already know? That's the promise of RisingWave.
It turns the complex world of stream processing into something you can manage with SQL. Instead of writing and maintaining complex code in a stream processing framework, you write queries. RisingWave handles the rest, letting you build real-time features and dashboards without the typical infrastructure overhead.
What It Does
RisingWave is a distributed SQL streaming database. In simpler terms, it's a system that consumes real-time events from sources like Kafka, PostgreSQL, or databases, lets you process and transform that data using SQL queries, and then lets you query the results in a low-latency way. You define materialized views with SQL, and RisingWave keeps them updated as new data flows in. It handles the stateful computation, fault tolerance, and scaling for you.
Think of it as a materialized view, but for infinite, real-time streams of data instead of static tables.
Why It's Cool
The big win here is developer ergonomics. You don't need to spin up a separate stream processing cluster (like Flink), a separate database for results, and a service to glue them together. RisingWave consolidates that into one system you interact with via Postgres-compatible SQL.
Some specific highlights:
- PostgreSQL Wire Compatibility: You can connect to it with any standard PostgreSQL client or driver (
psql,libpq, your favorite ORM). This dramatically lowers the barrier to entry. - Rich SQL Support: It's not just simple filters. You get window functions, joins between streams and tables, temporal filters, and user-defined functions. You can express complex business logic.
- Built-in Connectors: It has native sources and sinks for Kafka, AWS Kinesis, PostgreSQL CDC, and more, making it easy to fit into your existing data infrastructure.
- Operational Simplicity: It's designed to be managed like a database, with familiar concepts of schemas, tables, and views, rather than the job-centric model of many stream processors.
Use Cases: Real-time dashboards, monitoring and alerting, live session analysis, real-time recommendations, and simplifying ETL pipelines that need to move to real-time.
How to Try It
The fastest way to get a feel for RisingWave is to run it locally with Docker. It's a single command to get the standalone version up and running.
docker run -it --pull=always -p 4566:4566 -p 5691:5691 risingwavelabs/risingwave:latest playground
Once it's running, you can connect to it just like any PostgreSQL database on port 4566 (username and password are not required for the playground). Use psql or your GUI tool of choice:
psql -h localhost -p 4566 -d dev -U root
From there, you can follow one of the quickstart guides in the documentation, which will walk you through creating a source, defining a materialized view, and watching it update with streaming data.
For production deployments, you can check out the docs for deploying with Kubernetes or using RisingWave Cloud.
Final Thoughts
RisingWave feels like a pragmatic step forward for stream processing. It acknowledges that SQL is the lingua franca for data manipulation for most developers and leverages that strength to make real-time systems more accessible. If your team knows SQL but has been hesitant to dive into the deep end of dedicated stream processing frameworks, this is absolutely worth a weekend experiment.
It won't replace every Apache Flink job, especially those requiring ultra-custom logic, but for a huge class of real-time applications—the ones where you're filtering, aggregating, joining, and windowing data—it can massively simplify your architecture. It lets you focus on the what (the business logic in SQL) and not the how (the distributed systems engineering).
Give the Docker command a run and see if you can prototype that real-time feature you've been thinking about in an afternoon.
@githubprojects
Repository: https://github.com/risingwavelabs/risingwave