How risingwavelabs/risingwave works
RisingWave is a SQL-based event streaming database: it ingests live and historical data, maintains incremental results, and serves queries or writes results to downstream systems and Iceberg. The README documents these product stages and Iceberg maintenance; sampled source provides concrete evidence for distributed query execution, Hummock storage, and Iceberg catalog operations. Several broader subsystem links reflect README-described behavior rather than inspected implementation details.
Main entry points: stream Incremental Processing · hummock_storage.rs Hummock Row Store · query_manager.rs Distributed Queries · storage_catalog.rs Iceberg Catalog
Components 19
SQL and Operations
- Postgres SQL
src/frontend - Admin Dashboard
dashboard/pages
Data Ingestion
- Source Connectors
java/connector-node/connector-api/src/main/java/com/risingwave/connector/api/source/SourceHandler.java - Webhook Ingestion
src/connector - Historical Ingestion
src/connector - Sink Connectors
java/connector-node/connector-api/src/main/java/com/risingwave/connector/api/sink/SinkFactory.java
Query and Compute
- Incremental Processing
src/stream - Distributed Queries
src/frontend/src/scheduler/distributed/query_manager.rs - User Functions
Serving and Storage
- Hummock Row Store
src/storage/src/hummock/store/hummock_storage.rs - Object Storage
src/object_store - Storage Configuration
src/common/src/config/storage.rs - Storage Metrics
src/storage/src/monitor/monitored_storage_metrics.rs
Iceberg
- Iceberg Catalog
src/connector/src/connector_common/iceberg/storage_catalog.rs - Iceberg Queries
src/common/src/session_config/iceberg_query_storage_mode.rs - Iceberg Maintenance
src/common/src/config/storage.rs
Other components
- SQL Clients
- External Sources
- Applications and Sinks
Connections 23
- SQL Clients → Postgres SQL: issues SQL
- External Sources → Source Connectors: provides changes
- External Sources → Webhook Ingestion: sends events
- External Sources → Historical Ingestion: provides history
- Source Connectors → Incremental Processing: feeds streams
- Webhook Ingestion → Incremental Processing: feeds events
- Historical Ingestion → Incremental Processing: feeds data
- Postgres SQL → Distributed Queries: starts queries
- Incremental Processing → Hummock Row Store: maintains state
- Distributed Queries → Hummock Row Store: reads state
- Distributed Queries → SQL Clients: returns results
- User Functions → Incremental Processing: extends computation
- Hummock Row Store → Object Storage: persists state
- Storage Configuration → Hummock Row Store: configures storage
- Hummock Row Store → Storage Metrics: reports metrics
- Incremental Processing → Sink Connectors: dispatches results
- Sink Connectors → Applications and Sinks: writes results
- Postgres SQL → Iceberg Catalog: manages tables
- Distributed Queries → Iceberg Queries: selects storage mode
- Iceberg Queries → Iceberg Catalog: reads Iceberg tables
- Iceberg Catalog → Object Storage: accesses table files
- Iceberg Maintenance → Iceberg Catalog: configures maintenance
- SQL Clients → Admin Dashboard: views operations