activerecord-materialize-adapter

ActiveRecord Materialize.io database adapter based on Postgres adapter

MIT License

Downloads
4K
Stars
3
Committers
2

ActiveRecord Materialize Adapter

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.

Package Rankings
Top 32.52% on Rubygems.org
Badges
Extracted from project README
Testing Doc reference Chat on Slack