Materialize incrementally updates SQL results as data arrives rather than recomputing them, built on Timely and Differential Dataflow and reachable over the PostgreSQL wire protocol, with strict serializability by default.
Managed cloud, or self-managed on Kubernetes (environmentd, clusterd, balancerd) with a PostgreSQL metadata database and S3-class blob storage; a single-container emulator serves development. Clusters resize gracefully with ALTER CLUSTER. The self-managed Community Edition is free up to 24 GiB of memory.
How Materialize answers the questions Stream Processing turns on.
| How it works | |
| Processing model | Incremental view maintenance on Timely and Differential Dataflow; no separate batch mode |
| APIs | SQL over the PostgreSQL wire protocol; HTTP and WebSocket APIs |
| Windowing | No window operators: temporal filters on mz_now() |
| Event time and lateness | No watermarks: virtual timestamps only; rows outside the temporal filter are dropped, widen it to admit late data |
| State backend | In-memory arrangements with spill to scratch disk; persisted to blob storage |
| Delivery guarantee | Exactly-once: strict serializability by default; Kafka sinks use transactions |
| Reading results | SELECT and SUBSCRIBE over the PostgreSQL wire; indexes serve point lookups; sinks optional |
| Running it | |
| What you run | environmentd, clusterd, balancerd and the console on Kubernetes, plus a PostgreSQL metadata database and S3 blob storage; single-container emulator for development |
| Scaling | ALTER CLUSTER SET SIZE, graceful by default since v26.35, new replicas hydrate before the old retire |
| Connections | |
| Connectors | Kafka and Redpanda, Postgres, MySQL and SQL Server CDC, webhooks; sinks to Kafka, Iceberg on S3 Tables or BigLake, and S3 via COPY TO |
vs Materialize: Open source (permissive) · Self-hosted · Managed · Free · Streaming · Batch · Java, Python, Go
vs Materialize: Open source (permissive) · Self-hosted · Managed · Operational complexity: High · Streaming · Batch · Java, Scala, Python
vs Materialize: Open source (permissive) · Self-hosted · Managed · Operational complexity: High · Batch · Streaming · Scala, Python, Java