Tools and integrations
Materialize is wire-compatible with PostgreSQL, which means it integrates with most client libraries, ORM frameworks and other third-party tools that support PostgreSQL. This page describes the status, level of support, and usage notes for commonly used and requested Materialize integrations and tools.
If there’s a tool that you’d like to use with Materialize but is not listed, let us know by submitting a feature request!
For listed tools that are not yet production-ready, you can register your interest by clicking the Notify Me button. This helps us prioritize integration work, and follow up with you once the support level for the tool has evolved.
Support level | Description |
---|---|
Production | We are committed to prioritizing bugs in the interaction between these tools and Materialize. |
Beta | There may be small performance issues and minor missing features, but Materialize supports the major use cases for this tool. We can’t guarantee bug reports or feature requests will be prioritized. |
Alpha | Some of our community members have made this integration work, but we haven’t tested it internally and can’t vouch for its stability. |
In Progress | There are known issues preventing the integration from working, but we are actively developing features that unblock the integration. |
Researching | There are known issues preventing the integration from working, and we are gathering user feedback and gauging interest in supporting these integrations. |
Message brokers
Kafka
Kafka is supported as a source and as a sink, with features like upserts, Debezium CDC, and exactly-once processing.
Service | Support level | Notes | |
---|---|---|---|
Apache Kafka | Production | See the source and sink documentation for more details. | |
Confluent Cloud Kafka | Production | See the source and sink documentation for more details. | |
AWS MSK (Managed Streaming for Kafka) | Production | See the source documentation for more details, and the AWS MSK guide for a step-by-step breakdown of the integration. | |
Heroku Kafka | Alpha | Use SSL Authentication and the Heroku-provided provided keys and certificates for security, and the KAFKA_URL as the broker address (replacing kafka+ssl:// with ssl:// ). Heroku is not supported as a sink yet (#8378). |
Redpanda
Being Kafka API-compatible, Redpanda is supported as a source and as a sink at the same level and with the same features as Kafka.
Service | Support level | Notes | |
---|---|---|---|
Redpanda | Beta | See the source and sink documentation for more details. | |
Redpanda Cloud | Beta | Use SASL authentication to securely connect to Redpanda Cloud clusters. See the Redpanda documentation for more details, and the Redpanda Cloud guide for a step-by-step breakdown of the integration. |
Kinesis Data Streams
Kinesis Data Streams is supported as a source, but not as a sink (#2372).
Service | Support level | Notes | |
---|---|---|---|
AWS Kinesis Data Streams | Beta | See the source documentation for more details. |
Other message brokers
Service | Support level | Notes | |
---|---|---|---|
GCP Pub/Sub | Researching | Integration requires implementing a new connector (#2678). | |
Azure Event Hubs | Researching | Integration requires implementing a new connector (#2851). Event Hubs provides a Kafka-compatible endpoint that may enable interoperability with Materialize, but this hasn’t been officially tested. |
|
Apache Pulsar | Researching | Integration requires implementing a new connector (#3517). Pulsar provides a Kafka-compatible wrapper that may enable interoperability with Materialize, but this hasn’t been officially tested. |
👋 Is there another message broker you’d like to use with Materialize? Submit a feature request.
Databases
Materialize can efficiently maintain real-time materialized views on top of Change Data Capture (CDC) data originating from a database, either by directly consuming its replication stream or via Debezium.
PostgreSQL
Postgres is supported as a source, both through the direct PostgreSQL source and through Debezium (via Kafka or Redpanda). Using a PostgreSQL instance as a source requires enabling logical replication.
Service | Support level | Notes | |
---|---|---|---|
PostgreSQL (direct) | Beta | See the source documentation for more details, and the PostgreSQL CDC guide for a step-by-step breakdown of the integration. | |
PostgreSQL (via Debezium) | Production | See the PostgreSQL CDC guide for a step-by-step breakdown of the integration. | |
Amazon RDS for PostgreSQL | Beta | See the Amazon RDS CDC guide for a step-by-step breakdown of the integration. | |
GCP Cloud SQL for PostgreSQL | Beta | See the GCP Cloud SQL CDC guide for a step-by-step breakdown of the integration. | |
Amazon Aurora | Beta | See the Amazon Aurora CDC guide for a step-by-step breakdown of the integration. | |
Amazon Aurora Serverless | Researching | Aurora serverless v1 does not support logical replication, which is required for PostgreSQL CDC. | |
Heroku Postgres | Researching | Heroku Postgres does not support logical replication, which is required for PostgreSQL CDC. Heroku provides Heroku Data Connectors that may enable interoperability with Materialize, but this hasn’t been officially tested. | |
Azure Database for PostgreSQL | Beta | See the Azure Database CDC guide for a step-by-step breakdown of the integration. | |
DigitalOcean Managed PostgreSQL | Beta | See the DO Managed PostgreSQL guide for a step-by-step breakdown of the integration. | |
CrunchyBridge Postgres | Beta | Logical replication is enabled by default. See the PostgreSQL CDC guide for a step-by-step breakdown of the integration. |
MySQL
MySQL is indirectly supported as a source through Debezium (via Kafka or Redpanda). Using a MySQL instance as a source requires enabling row-based replication.
Service | Support level | Notes | |
---|---|---|---|
MySQL (direct) | Researching | Not supported yet (#8078). Subscribe via “Notify Me” to register interest. | |
MySQL (via Debezium) | Production | See the MySQL CDC guide for a step-by-step breakdown of the integration. |
Other databases
Debezium has an extensive ecosystem of connectors, but each database has its own quirks. Materialize expects a specific message structure that includes the row data before
and after
the change event, which is not guaranteed for every connector.
Service | Support level | Notes | |
---|---|---|---|
MongoDB (via Debezium) | Researching | Not supported yet (#7289). Subscribe via “Notify Me” to register interest. | |
SQL Server (via Debezium) | Alpha | Supported with known limitations unrelated to Materialize. See the Debezium documentation for details on how to configure a SQL Server instance for CDC. |
👋 Is there another database you’d like to use with Materialize? Submit a feature request.
Object storage services
S3
S3 is supported as a source, but not as a sink (#7256).
Service | Support level | Notes | |
---|---|---|---|
Amazon S3 | Beta | See the source documentation for more details. | |
MinIO Object Storage | Researching | Not supported yet (#6568). MinIO provides a S3-compatible API that may enable interoperability with Materialize, but this hasn’t been officially tested. |
Other object storage services
Service | Support level | Notes | |
---|---|---|---|
GCP Cloud Storage | Researching | Integration requires implementing a new connector (#10349). Subscribe via “Notify Me” to register interest. | |
Azure Blob Storage | Researching | Integration requires implementing a new connector. Subscribe via “Notify Me” to register interest. |
👋 Is there another object storage tool you’d like to use with Materialize? Submit a feature request.
Database management tools
dbt
Materialize integrates with dbt through the dbt-materialize
adapter. The adapter implements custom materializations and macros to build, run and version-control models that transform streaming data in real time.
Service | Support level | Notes | |
---|---|---|---|
dbt Core | Beta | See the dbt documentation for more details, and the dbt + Materialize guide for a step-by-step breakdown of the integration. | |
dbt Cloud | In Progress | Not supported yet. We are working with the dbt community to bring native Materialize support to dbt Cloud soon. |
SQL clients
Service | Support level | Notes | |
---|---|---|---|
DBeaver | Production | Connect using the PostgreSQL database driver. | |
DataGrip IDE | In Progress | Not supported yet (#9720). Subscribe via “Notify Me” to register interest. | |
pgAdmin | In Progress | Not supported yet (#5874). Subscribe via “Notify Me” to register interest. | |
TablePlus | Alpha | Connect using the PostgreSQL database driver. |
👋 Is there another SQL client you’d like to use with Materialize? Submit a feature request.
Client libraries and ORMs
Applications can use any common language-specific PostgreSQL drivers and PostgreSQL-compatible ORMs to interact with Materialize and create relations, execute queries and stream out results.
Client libraries
Language | Support level | Tested drivers | Notes |
---|---|---|---|
Go | Production | pgx |
See the Go cheatsheet. |
Java | Production | PostgreSQL JDBC driver | See the Java cheatsheet. |
Node.js | Production | node-postgres |
See the Node.js cheatsheet. |
PHP | Production | pdo_pgsql |
See the PHP cheatsheet. |
Python | Production | psycopg2 |
See the Python cheatsheet. |
Ruby | Production | pg gem |
See the Ruby cheatsheet. |
ORM frameworks
👋 Is there another client library or ORM framework you’d like to use with Materialize? Submit a feature request.
Other tools
As a rule of thumb: if a tool has support for PostgreSQL, it might work out-of-the-box with Materialize using the native PostgreSQL connector. This will depend on the complexity of the queries each tool runs under the hood, and the configuration settings, system tables and features involved.
The level of support for these tools will improve as we extend the coverage of pg_catalog
in Materialize (#2157) and join efforts with each community to make the integrations Just Work™️.
Data integration
Service | Support level | Notes | |
---|---|---|---|
FiveTran | Researching | Not supported yet (#5188). Subscribe via “Notify Me” to register interest. | |
Stitch | Researching | Not supported yet. Subscribe via “Notify Me” to register interest. | |
Meltano | Researching | Not supported yet. Subscribe via “Notify Me” to register interest. | |
Airbyte | Researching | Not supported yet. Subscribe via “Notify Me” to register interest. |
Business Intelligence (BI)
Service | Support level | Notes | |
---|---|---|---|
Metabase | Beta | Connect using the PostgreSQL database driver. See the Metabase integration page for more details. | |
Superset | Alpha | Connect using the PostgreSQL database driver. | |
Preset | Alpha | Connect using the PostgreSQL database driver. | |
Looker | Alpha | Connect using the PostgreSQL database driver. | |
Google Data Studio | Alpha | Connect using the PostgreSQL database driver. | |
Tableau | Researching | Not supported yet. Subscribe via “Notify Me” to register interest. | |
Microsoft Power BI | Researching | Not supported yet. Subscribe via “Notify Me” to register interest. | |
Mode Analytics | Researching | Not supported yet. Subscribe via “Notify Me” to register interest. |
Headless BI
Service | Support level | Notes | |
---|---|---|---|
Cube.js | Alpha | Connect using the Materialize driver. |
Reverse ETL
Service | Support level | Notes | |
---|---|---|---|
Census | Researching | Not supported yet. Subscribe via “Notify Me” to register interest. | |
Hightouch | In Progress | Connect using a PostgreSQL source. |
Data collaboration
Service | Support level | Notes | |
---|---|---|---|
Hex | Alpha | Connect using a PostgreSQL connection. | |
Retool | Alpha | Connect using the PostgreSQL integration. |
👋 Is there another tool you’d like to use with Materialize? Submit a feature request.