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.

Introduction

RisingWave is a distributed SQL streaming database written in Rust that treats streams as tables and materialized views as continuously-updated query results. It speaks the Postgres wire protocol, so BI tools, ORMs, and psql just work — while under the hood it runs a fully incremental stream processor designed for the cloud.

What RisingWave Does

  • Ingests streams from Kafka, Pulsar, Redpanda, Kinesis, MySQL/Postgres CDC, and more.
  • Computes incremental materialized views using SQL: joins, windows, aggregations, time travel.
  • Stores state in tiered storage (S3/GCS/Azure) for cheap, elastic scaling.
  • Sinks results to Kafka, Iceberg, Postgres, MySQL, ClickHouse, Redis, and more.
  • Offers full Postgres-compatible query endpoint for ad-hoc analytics on live streams.

Architecture Overview

A RisingWave cluster separates compute (compute nodes running streaming operators), meta (catalog + cluster coordination), and storage (Hummock — an LSM-backed shared-storage engine on object storage). Streaming jobs are compiled to dataflow graphs; state is checkpointed to object storage, so compute nodes are stateless and elastic. Frontend nodes handle SQL parsing and the Postgres wire protocol.

Self-Hosting & Configuration

  • Run locally with risingwave playground, on Docker Compose, or on Kubernetes via the RisingWave Operator.
  • Point Hummock storage to S3/GCS/Azure and MinIO for on-prem deployments.
  • Configure auth and TLS via risingwave.toml; integrate with OIDC through a proxy or bouncer.
  • Scale compute and frontend pods independently; add compute nodes for throughput during bursts.
  • Observability via Prometheus metrics, Grafana dashboards, and structured logs.

Key Features

  • Incremental SQL — stream analytics expressed as CREATE MATERIALIZED VIEW.
  • Postgres-wire compatible; existing clients and drivers "just work".
  • Separation of compute and storage for elastic, cost-efficient scaling.
  • Built-in CDC sources for Postgres and MySQL without external Debezium deployment.
  • UDFs in Python, JavaScript, Java, and Rust for custom transformations.

Comparison with Similar Tools

  • Materialize — Closest peer; RisingWave emphasizes cloud-native storage + horizontal scale-out.
  • Apache Flink — DataStream/SQL APIs; Flink is a toolkit, RisingWave is a full database product.
  • ksqlDB — Kafka-centric; RisingWave supports broader sources and standard Postgres SQL.
  • Apache Pinot / Druid — Real-time OLAP; great for aggregations, less expressive joins than RisingWave.
  • Materialized views in Snowflake/BigQuery — Batch-refreshed; RisingWave updates continuously.

FAQ

Q: Is RisingWave Postgres-compatible? A: It implements the Postgres wire protocol and a large subset of SQL; it is not a drop-in OLTP Postgres.

Q: How is state stored? A: State lives in Hummock on S3/GCS/Azure; compute nodes are stateless and can be replaced freely.

Q: Can it replace a Kafka Streams app? A: Often yes — you get SQL semantics, auto-scaling, and a SQL surface instead of imperative JVM code.

Q: What is the license? A: Apache 2.0 for RisingWave; a paid cloud service is offered by RisingWave Labs for managed use.

Sources

Discussion

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

Related Assets