Tooling

Stream Processing

Flink, Spark, RisingWave, Materialize, Bytewax — compute over event streams.

Stream processing computes results over unbounded streams (events, CDC feeds, IoT) — joins, windowed aggregates, materialized views. Sits on top of Message Brokers, feeds Data Warehouses and Time-Series Databases. For batch DAGs, see Data Orchestration.

SQL-on-streams (streaming databases)

  • RisingWave — Postgres-wire-compatible streaming database; create materialized views over Kafka / Pulsar / Postgres CDC, query with SQL. Apache 2.0; managed Cloud is paid. The most-recommended new pick in 2026 for "I want a SQL view that updates in real time."
  • Materialize — same niche, Postgres-wire-compatible streaming SQL database. Was open core under BSL, but re-licensed to a closed-source SaaS in 2024 — only the older OSS releases remain Apache 2.0. Watch licensing carefully.
  • ksqlDB (Confluent) — SQL over Kafka topics; Confluent Community License (not OSI-approved). Less popular in 2026 than RisingWave for greenfield.
  • TimePlus / Proton — open-source streaming SQL on top of ClickHouse; Apache 2.0; small community.
  • Tinybird — hosted ClickHouse + ingest API; SQL-defined materialized streams; small free tier.

JVM stream processors

  • Apache Flink — the heavyweight; stateful, exactly-once, event-time-aware; Apache 2.0. Production default at large scale (Stripe, Uber, Pinterest). Ververica is the commercial sponsor.
  • Apache Spark Structured Streaming — micro-batch; Apache 2.0; tight integration with Spark batch + ML.
  • Apache Beam — unified batch/stream API; runs on Flink / Dataflow / Spark; Apache 2.0.
  • Kafka Streams — JVM library, runs in your app process; Apache 2.0; great for "modest stream processing inside a Java service."

Python-native stream processors

  • Bytewax — Rust core + Python API; dataflow-style; Apache 2.0. Default for "I want Flink semantics, Python ergonomics."
  • Pathway — Python streaming framework; reactive; supports LLM-on-stream patterns; BSL-1.1 (free up to a generous size threshold).
  • Quix Streams — Python library for Kafka-based stream processing; Apache 2.0; pairs with Quix Cloud.
  • Faust-streaming — community-maintained fork of the original Robinhood Faust; Apache 2.0; less active.

Lightweight / library-style

  • Benthos / RedPanda Connect — Go-based stream-processor + connector toolkit; MIT; great for routing and small transforms on streams. Often replaces Kafka Streams for small jobs.
  • Vector (Datadog) — observability-focused but capable of general stream transforms; see Log Aggregation.
  • NATS JetStream consumers — for simple consume + process loops; see Message Brokers.

Patterns to know

  • Event time vs. processing time. Late events, watermarks, allowed lateness — Flink and RisingWave handle this; many lightweight tools punt.
  • Exactly-once requires checkpoints + idempotent sinks. Flink + Iceberg sink, RisingWave's checkpoint store.
  • Joins over streams need state. RocksDB-backed state in Flink; storage planning matters.
  • Windowed aggregates. Tumbling, hopping, session — pick the right one for the metric.
  • Hot keys. A small number of partitions can hot-spot; pre-aggregate locally before keying.
  • Replay > live retry. Keep raw events durable in Kafka / Iceberg so you can re-run if the processor logic changes.

License & licensing watch-outs

  • RisingWave — Apache 2.0 OSS; managed Cloud paid.
  • Materialize — closed-source SaaS now; OSS Apache 2.0 versions only up to v0.26; do not assume current builds are open.
  • ksqlDB — Confluent Community License (CCL); usable but not OSI-approved.
  • Pathway — BSL-1.1 with a usage threshold; review the threshold before betting on it for paid product.
  • Flink, Spark, Beam, Bytewax, Quix Streams, Kafka Streams, Benthos — all permissive (Apache 2.0 / MIT).

Pick this if…

  • Default OSS streaming SQL in 2026: RisingWave.
  • Default heavy-duty stream processing: Apache Flink.
  • Python team, modest scale: Bytewax or Quix Streams.
  • You're in the Spark ecosystem already: Spark Structured Streaming.
  • Mostly routing + light transforms on Kafka: Benthos / RedPanda Connect.
  • LLM enrichment on streams: Pathway.

On this page