title: "What is Materialize?" description: "Learn more about Materialize" disable_list: true aliases:
Materialize is a real-time data integration platform that enables you to use SQL to transform, deliver, and act on fast changing data.
To keep results up-to-date as new data arrives, Materialize incrementally updates results as it ingests data rather than recalculating results from scratch.
{{< callout primary_url="https://materialize.com/register/?utm_campaign=General&utm_source=documentation" primary_text="Get Started">}}
{{</ callout >}}
Materialize combines the accessibility of SQL databases with a streaming engine that is horizontally scalable, highly available, and strongly consistent.
In traditional databases, materialized views help you avoid re-running heavy queries, typically by caching queries to serve results faster. But you have to make a compromise between the freshness of the results, the cost of refreshing the view, and the complexity of the SQL statements you can use.
In Materialize, you don't have to make such compromises. Materialize supports incrementally updated view results that are always fresh (even when using complex SQL statements, like multi-way joins with aggregations) for both:
How? Its engine is built on Timely and Differential Dataflow — data processing frameworks backed by many years of research and optimized for this exact purpose.
Like most databases, you interact with Materialize using SQL. You can build complex analytical workloads using any type of join (including non-windowed joins and joins on arbitrary conditions) as well as leverage new SQL patterns enabled by streaming like Change Data Capture (CDC), temporal filters, and subscriptions.
{{% materialize-postgres-compatibility %}}
Materialize provides native connectors that allow ingesting data from various external systems:
{{< include-md file="shared-content/multilink-box-native-connectors.md" >}}
For more information, see Ingest Data and Integrations.
Every database needs a protocol to standardize communication with the outside world. Materialize uses the PostgreSQL wire protocol, which allows it to integrate out-of-the-box with many SQL clients and other tools in the data ecosystem that support PostgreSQL — like dbt.
Don't see the a tool that you’d like to use with Materialize listed under Tools and integrations? Let us know by submitting a feature request!
By default, Materialize provides the highest level of transaction isolation: strict serializability. This means that it presents as if it were a single process, despite spanning a large number of threads, processes, and machines. Strict serializability avoids common pitfalls like eventual consistency and dual writes, which affect the correctness of your results. You can adjust the transaction isolation level depending on your consistency and performance requirements.