RisingWave
By RisingWave Labs
RisingWave is an open-source streaming database that lets users define materialized views over continuous data streams using standard SQL, automatically keeping results incrementally updated as new data arrives. It targets real-time…
Definition
RisingWave is an open-source streaming database that lets users define materialized views over continuous data streams using standard SQL, automatically keeping results incrementally updated as new data arrives. It targets real-time analytics use cases that traditionally required stream-processing frameworks like Apache Flink, but with a SQL interface closer to a conventional database. RisingWave addresses the steep learning curve of stream-processing frameworks that require writing jobs in a general-purpose language or a framework-specific API, letting teams instead express streaming logic as SQL views familiar from ordinary database work.
Overview
RisingWave positions itself between traditional stream-processing frameworks, such as Apache Flink or Kafka Streams, and conventional databases. Instead of writing stream-processing jobs in a general-purpose programming language or a framework-specific API, users define materialized views using standard SQL, and RisingWave incrementally maintains those views as new events arrive from sources such as Kafka, Pulsar, or Kinesis, without recomputing results from scratch on every update. Under the hood, RisingWave decouples compute and storage, similar to modern cloud-native databases, storing state in object storage while using local compute nodes to process incoming events and serve queries. This separation allows independent scaling of ingestion, computation, and storage, and supports elastic scaling in response to changing stream volume, a design goal shared with other cloud-native streaming systems. Incremental view maintenance is the key mechanical idea: only the delta caused by each new event is computed and applied to the stored view state, rather than rerunning the full query over all historical data. Because RisingWave presents a Postgres-compatible SQL interface, existing tools, drivers, and BI clients built for PostgreSQL can often connect to it directly, lowering the learning curve compared to stream-processing frameworks with bespoke APIs. This SQL-first design is what separates RisingWave most clearly from Flink or Kafka Streams, which expose lower-level programming APIs rather than a database-like query surface. In practice, RisingWave is used to build real-time dashboards over streaming event data, maintain incrementally updated aggregates from Kafka topics, and replace hand-written stream-processing jobs with declarative SQL views, often for fraud detection or monitoring pipelines that need continuously fresh results. It also supports joining streaming data with reference tables for enrichment, a common requirement when combining fast-moving events with slower-changing lookup data. RisingWave is not a general-purpose transactional database; it is optimized for continuously ingesting and transforming streaming data into queryable, up-to-date results, rather than handling arbitrary transactional workloads with complex multi-row updates. It competes with stream-processing frameworks like Apache Flink and Kafka Streams, as well as with streaming-oriented database features found in systems like Materialize, and it still depends on careful handling of watermarking and event-time semantics common to all stream-processing systems. Teams with existing investment in a mature framework like Flink, or workloads needing exotic custom processing logic beyond what SQL expresses well, may prefer to stay with a general-purpose stream-processing framework instead, since expressing arbitrarily complex, stateful business logic sometimes remains easier in a general-purpose programming language than in SQL alone, even one extended for streaming use cases.
Key Features
- SQL-defined materialized views incrementally updated from streaming data
- Postgres wire-protocol compatibility for existing SQL tooling
- Decoupled compute and object storage for elastic scaling
- Native connectors for Kafka, Pulsar, and Kinesis sources
- Incremental computation avoiding full recomputation on new events
- Support for both streaming and batch-style historical queries
- Open-source core with a managed cloud offering
- Designed for real-time analytics rather than general OLTP workloads