Support for additional RDBMS

Hi all,

I‘m wondering if it is possible to have temporal using other relational database systems besides MySQL if there is a stable go sql driver available. In my particular case I‘m interested in SQL Server and Postgress, just because it‘s already established infrastructure at customer sites.

Could someone comment on this or on a roadmap about it? Additionally appreciation for pointing to a description of the (now stable) existing database schema on GitHub to have a look at.

Thanks, Martin

2 Likes

Hey, thanks for the great question. Today we officially support MySQL and Cassandra. We are planning on support for Postgres as its the most requested database. That being said I do not have a timeline for this. We currently do not have concrete plans for supporting SQL server but its definitely possible.

Here is the MySQL schema for V1. Note this could change if critical bugs are found before V1:

Let me know if this helps.

Hi Ryland, thanks for your very quick response. If I wanted to sum it up in my own words, it’s „a handful of narrow tables with some indices, but no views, stored procs, functions, etc., i.e. nothing really complicated in terms of porting it“. That’s really good news for me. Thanks, Martin.

I tested this in mysql 5.7.21 and there are couple of issues with that ( i am not able to bring up temporal, did not dig deep) but it temporal works just find with 5.7.30,

Haven’t tested on mysql 8.

Hi all, I made a quick experiment and piped the mysql DDL mentioned through a converter. The resulting, sightly augmented sql script creates all 24 tables. If you’re interested, it is here: https://gitlab.com/lercher/wf/-/blob/master/temporal-28-sqlserver.sql

The script creates all the objects in a schema “temporal” in your default database so that the tables can co-exist with existing other schemas. However, I have no idea if it would work with a go based sql driver and how it behaves under load, which is a secondary concern for myself currently.