Want to connect with Materialize? Join our growing community on Slack!
Deep-diveLateral Joins and Demand-Driven Queries

In today’s post we are going to show off Materialize’s LATERAL join (courtesy @benesch), and how you can use it to implement some pretty neat query patterns in an incremental view maintenance engine! In particular, in the streaming SQL setting, lateral joins automatically turn your SQL prepared statement queries into what is essentially a streaming, […]

StreamingChange Data Capture (part 1)

At Materialize we traffic in computation over data that change. As a consequence, it is important to have a way to write down and read back changes to data. An unambiguous, robust, and performant way to write down and read back changes to data. What makes this challenging? Why not just write out a log […]

Use CaseWhy Use a Materialized View?

TL;DR: Querying materialized views, unlike querying tables or logical views, can reduce query costs by maintaining results in memory that are only updated when necessary. To learn more, check out the rest of the post! The Cost of Querying Each time you query a database you incur some cost. Your database will parse, validate, plan, […]

Deep-diveWhy not RocksDB for streaming storage?

A roadmap for a storage engine for Materialize

Deep-diveRobust Reductions in Materialize

Materialize is an incremental view maintenance engine, one which takes your SQL queries expressed as views and continually maintains them as your data change. Surely there are a lot of ways one could do this, ranging from the very naïve (just recompute from scratch) to the more sophisticated end of the spectrum (what we do). […]

NewsRelease: Materialize 0.4

We’re proud to announce that we’ve just released Materialize version 0.4. Here is a quick overview of the main features. What’s changed in Materialize 0.4 Materialize 0.4 includes a number of stability improvements, which we’ve identified through customer feedback, as well as improving our own unit tests.  We’ve built a chaos testing harness, which has […]

Deep-diveStreaming TAIL to the Browser – A One Day Project

Last week concluded up my first week at Materialize, with Friday being my first Skunkworks Friday. Skunkworks Friday is a Materialize sponsored day of the week to spend on personal development and learning. Given that it was my first week, I challenged myself to build something using Materialize. Having spent most of my career working […]

Deep-diveEventual Consistency isn’t for Streaming

Streaming systems consume inputs and produce outputs asyncronously: the output of a system at any moment may not reflect all of the inputs seen so far. These systems provide various guarantees about how their outputs relate to their input. Among the weaker (but not unpopular) guarantees is eventual consistency. Informally, eventual consistency means if the […]

Deep-diveRust for Data-Intensive Computation

I have some thoughts on the use of Rust for data-intensive computations. Specifically, I’ve found several of Rust’s key idioms line up very well with the performance and correctness needs of data-intensive computing. If you want a tl;dr for the post: I’ve built multiple high-performance, distributed data processing platforms in Rust, and I never learned […]

Deep-diveMaterialize: Roadmap to Building a Streaming Database on Timely Dataflow

How do you build a streaming database from scratch?

About This Blog

Welcome! On our blog, you’ll hear more about the inner workings of Materialize – what we’ve built, what we plan to build, and how it all works together.

New here? Read these