RisingWave is a PostgreSQL-compatible streaming database that maintains materialized views incrementally rather than recomputing them, storing state and tables in object storage so compute and storage scale separately.
Frontend, compute, compactor, and meta nodes over object storage, with a Postgres, MySQL, or SQLite meta store; a single-binary standalone mode serves development. Query views directly over the PostgreSQL wire. Apache-2.0 and free to self-host; RisingWave Cloud is the managed option.
How RisingWave answers the questions Stream Processing turns on.
| How it works | |
| Processing model | Incremental materialized view maintenance; batch queries over the same tables |
| APIs | PostgreSQL-compatible SQL; UDFs in Python, JavaScript, Rust and Java |
| Windowing | Tumbling, hopping, session |
| Event time and lateness | Watermarks declared on the source with WATERMARK FOR; late rows are dropped, no side outputs |
| State backend | Hummock: LSM store on object storage, local SSD cache |
| Delivery guarantee | Exactly-once; end-to-end depends on the sink |
| Reading results | Query materialized views directly over the PostgreSQL wire; sinks optional |
| Running it | |
| What you run | Frontend, compute, compactor and meta nodes, plus object storage and a Postgres, MySQL or SQLite meta store; single-binary standalone mode for development |
| Scaling | Online: adaptive parallelism by default, or ALTER ... SET PARALLELISM, no restart |
| Connections | |
| Connectors | Kafka, Pulsar, Kinesis, Pub/Sub, NATS, MQTT, S3, GCS, Azure Blob, Iceberg; Postgres, MySQL, SQL Server and MongoDB CDC; around 27 sinks |
vs RisingWave: Self-hosted · Managed · Free · Streaming · Batch · Java, Python, Go
vs RisingWave: Self-hosted · Managed · Operational complexity: High · Streaming · Batch · Java, Scala, Python
vs RisingWave: Self-hosted · Managed · Operational complexity: High · Batch · Streaming · Scala, Python, Java