ConfigsApr 16, 2026·3 min read

RisingWave — Cloud-Native Streaming Database in Rust

Postgres-compatible SQL streaming database for building real-time materialized views on event data.

TL;DR
RisingWave processes streaming data with standard SQL and incrementally maintained materialized views, replacing Flink plus a database.
§01

What it is

RisingWave is a cloud-native streaming database written in Rust. It ingests data from Kafka, Pulsar, Kinesis, and other sources, processes it with standard SQL including joins, aggregations, and window functions, and serves results through incrementally maintained materialized views. It replaces the common pattern of pairing a stream processor (Flink, Spark Streaming) with a serving database.

RisingWave is designed for data engineers and backend developers who need real-time analytics, event-driven applications, or continuous data pipelines. If you are running Flink plus PostgreSQL for stream processing, RisingWave consolidates both into a single system with a PostgreSQL-compatible interface.

§02

How it saves time or tokens

RisingWave eliminates the operational complexity of maintaining separate stream processing and serving layers. You write SQL to define your streaming logic instead of Java/Scala Flink jobs. Materialized views update incrementally as new data arrives, so queries return fresh results without manual refresh. The PostgreSQL wire protocol means existing tools (psql, Grafana, Metabase) connect directly. Less infrastructure means fewer things to configure, monitor, and debug.

§03

How to use

  1. Start RisingWave: docker run -it --pull=always -p 4566:4566 risingwavelabs/risingwave:latest playground.
  2. Connect with any PostgreSQL client: psql -h localhost -p 4566 -d dev.
  3. Create sources, materialized views, and sinks using standard SQL.
§04

Example

-- Connect a Kafka source
CREATE SOURCE orders (
    order_id INT,
    user_id INT,
    amount DECIMAL,
    created_at TIMESTAMP
) WITH (
    connector = 'kafka',
    topic = 'orders',
    properties.bootstrap.server = 'kafka:9092'
) FORMAT PLAIN ENCODE JSON;

-- Create an incrementally maintained materialized view
CREATE MATERIALIZED VIEW hourly_revenue AS
SELECT
    date_trunc('hour', created_at) AS hour,
    SUM(amount) AS total_revenue,
    COUNT(*) AS order_count
FROM orders
GROUP BY date_trunc('hour', created_at);

-- Query real-time results
SELECT * FROM hourly_revenue ORDER BY hour DESC LIMIT 5;
§05

Related on TokRepo

§06

Common pitfalls

  • Treating RisingWave as a general-purpose OLTP database. It excels at streaming queries and materialized views but is not designed for high-frequency point updates or transactional workloads.
  • Not planning for state storage. Materialized views consume memory and storage proportional to the result set size. Monitor state size for high-cardinality aggregations.
  • Expecting full PostgreSQL compatibility. While RisingWave supports the PostgreSQL wire protocol and many SQL features, some PostgreSQL-specific functions and extensions are not available.

Frequently Asked Questions

How does RisingWave compare to Apache Flink?+

Flink is a general-purpose stream processor that requires Java/Scala programming. RisingWave is a streaming database that uses SQL. RisingWave also serves query results directly via PostgreSQL protocol, while Flink typically writes to an external database for serving.

Is RisingWave PostgreSQL-compatible?+

RisingWave uses the PostgreSQL wire protocol, so you connect with psql, pgAdmin, or any PostgreSQL client library. It supports a large subset of PostgreSQL SQL syntax but does not implement all PostgreSQL functions and extensions.

What data sources does RisingWave support?+

RisingWave ingests from Kafka, Pulsar, Kinesis, PostgreSQL CDC, MySQL CDC, S3, and other connectors. Sinks can write to Kafka, PostgreSQL, MySQL, Elasticsearch, and more.

Can RisingWave handle late-arriving data?+

Yes. RisingWave supports watermarks for handling out-of-order and late-arriving events. You can configure watermark delays when creating sources to handle typical latency in your data pipeline.

Is RisingWave suitable for production?+

Yes. RisingWave is used in production by companies for real-time analytics and event processing. RisingWave Cloud offers a managed service. Self-hosted deployments use Kubernetes with etcd for metadata and S3-compatible storage for state.

Citations (3)

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets