Proposal: ActiveRecord dialect for YugabyteDB

(Moving this here from rubyonrails-talk)

I would like to contribute an ActiveRecord dialect for YugabyteDB - a cloud-native distributed database which is wire-compatible with PostgreSQL.

Why a separate dialect:

  • To let users use Ruby driver for YugabyteDB which leverages YugabyteDB features.
  • One example is connection load balance feature which distributes the client connections equally across either all nodes in the entire cluster or nodes in specific cloud locations.
  • Existing PostgreSQL dialect uses ‘pg’ gem which cannot be overridden without a separate dialect.

Who will contribute the dialect:

  • We at YugabyteDB will be happy to contribute and maintain this dialect for Active Record
  • I have already written a dialect which is essentially a modified copy of PostgreSQL dialect of Active Record version 7.0.4

Please provide comments and guidance for the next steps.

Thanks!

Could this be explored as a gem, rather than adding it to core?

1 Like

I believe that the approach should be similar to how Oracle and DB2 are supported - external gems that people can use.