No release in over a year
Materialize is a streaming database for real-time applications. Materialize accepts input data from a variety of streaming sources (e.g. Kafka) and files (e.g. CSVs), and lets you query them using SQL.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 12.0
~> 3.9.0
~> 1.18
~> 3.1

Runtime

~> 6.0.3.7
~> 6.0.3.7
 Project Readme

ActiveRecord Materialize Adapter

Testing Doc reference Chat on Slack

An ActiveRecord adapter to connect to Materialize databases. The adapter includes support for materialized views as models supported by ActiveRecord::Base. Support for typical relational database tables are also supported but secondary.

Materialize is a streaming database for real-time applications. Materialize accepts input data from a variety of streaming sources (e.g. Kafka) and files (e.g. CSVs), and lets you query them using SQL.

https://materialize.com/

Usage

Add gem to your Gemfile

   gem 'activerecord-materialize-adapter'

Make sure you have the pg or a compatible gem installed. Update your database.yml

  production:
    reporting_analytics:
      adapter: materialize
      host: "materialize-database-host"
      port: "6875"
      database: "materialize_database_name"
      username: "materialize_user"

Gem is currently in an alpha state originally designed as a proof-of-concept.

Design

The ActiveRecord Materialize Adapter is heavily based on the PostgreSQL database adapter and also relies on the pg gem to be installed.

Read about Materialized architecture https://materialize.com/docs/overview/architecture/

Materialize has been designed to specifically solve problems with event streaming; therefore, some relational database functionality may not be supported.

Contributing

To contribute read the CONTRIBUTING.md first.

Fork the repository and create a pull request referencing tests and documentation.

A development stack can be setup with bin/build and tests can be run with bin/test.

Debugging with bin/materialize_psql and bin/psql allows you to connect directly with Materialize and PostgreSQL.

For testing and debugging a PostgreSQL configuration is available in postgres/postgresql.conf and pg_hba.conf.