Risingwave best practices
Skill risingwavelabs/agent-skills/skills/risingwave-best-practices
Agent Skills for RisingWave.
npx -y skills add risingwavelabs/agent-skills --skill risingwave-best-practicesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 9 stars9 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when designing RisingWave schemas, writing materialized views, configuring sources or sinks, optimizing streaming SQL performance, troubleshooting slow backfills, setting up CDC, designing time-windowed aggregations, or reviewing a RisingWave streaming pipeline
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.1 KB, as published. Nobody here has run it
RisingWave Best Practices
14 rules covering schema design, streaming SQL patterns, sink configuration, and performance.
How to Apply
- Read the relevant rule files for the review type below
- Apply rules to the design or code under review
- Explain violations with their impact and the fix
Review Procedures
Schema Review
- schema-source-vs-table.md — SOURCE vs TABLE selection
- schema-append-only.md — APPEND ONLY for immutable streams
- schema-watermark.md — Watermark placement
Materialized View Review
- mv-emit-on-window-close.md — EOWC for windowed queries
- mv-background-ddl.md — Non-blocking DDL for large tables
- mv-no-order-by.md — ORDER BY in MVs
Streaming SQL Review
- stream-tumble-windows.md — Time window functions
- stream-cdc-pattern.md — Two-step CDC setup
- stream-temporal-join.md — Joining streams with CDC tables
Sink Review
- sink-snapshot-false.md — Prevent backfill duplicates
- sink-force-compaction.md — Reduce output volume
Performance Review
- perf-shared-source.md — Shared Kafka source
- perf-indexes-on-mv.md — Indexes on materialized views
- perf-parallelism.md — MV parallelism tuning
Rule Categories
| Priority | Category | Impact | Prefix | Rules |
|---|---|---|---|---|
| 1 | Schema Design | CRITICAL / HIGH | schema- | 3 |
| 2 | Materialized Views | CRITICAL / HIGH | mv- | 3 |
| 3 | Streaming SQL | CRITICAL / HIGH | stream- | 3 |
| 4 | Sink Configuration | HIGH / MEDIUM | sink- | 2 |
| 5 | Performance | HIGH / MEDIUM | perf- | 3 |
Quick Reference
Schema:
schema-source-vs-table— CDC requires TABLE; SOURCE is for append-only streamsschema-append-only— APPEND ONLY enables optimizations; use for immutable event dataschema-watermark— Define watermarks at ingestion point (source/table), not in MVs
Materialized Views:
mv-emit-on-window-close— Use EOWC for final window results; default emits partial updatesmv-background-ddl— SET BACKGROUND_DDL=true before creating MVs over large tablesmv-no-order-by— ORDER BY in MV applies only at creation, not to ongoing results
Streaming SQL:
stream-tumble-windows— Use TUMBLE/HOP/SESSION, not date_trunc, for streaming windowsstream-cdc-pattern— Two-step: CREATE SOURCE (shared) → CREATE TABLE ... FROM sourcestream-temporal-join— Join streaming source with CDC table using FOR SYSTEM_TIME AS OF
Sinks:
sink-snapshot-false— Always usesnapshot = falsewhen adding sinks to existing MVssink-force-compaction— Useforce_compaction = truefor high-cardinality upsert sinks
Performance:
perf-shared-source— Multiple MVs from one Kafka topic should use shared sourceperf-indexes-on-mv— Create indexes on MV columns used in WHERE/JOIN predicatesperf-parallelism— Increase parallelism for high-throughput MVs