Deepstream compatibility question

hello - Wolfram from deepstream was asking me why i wanted to use cockroach, and i answered “referential integrity” and here was his reply:

deepstream doesn’t use relational constructs. In relational databases it’s basically just independent tables with two columns each - one for key, one for value. The ones that work best are the ones that provide support for binary json - searchable JSON docs a la Postgres or MySQL or pub/sub as Postgres provides.

it is my impression that cockroachDB will handle just about everything that Postgres will. We now have a deepstream–>cockroachDB connector written but not yet tested.

any suggestions how i might reply? this was on the deepstream slack page.

CockroachDB is missing a bit of functionality that Postgres supports. The JSON and JSONB column types are one example of this and I believe what Wolfram is referring to.

ok - is this something that CockroachDB will possibly support?

if not, i am going to wonder why i spent $$$$ on a deepstream connector. :wink:

Yes, we’d like to support JSON columns (tracked in, but we don’t have any concrete plans for when we’d start working on this.

As for the original question, there are a couple of reasons why you might want to use CockroachDB even if your schema is just key/value. First, consistency is more than referential integrity, and so with CockroachDB you don’t have to worry about queries not seeing some records due to eventual consistency or losing records on failover due to asynchronous replication. Second, CockroachDB is designed to scale with minimal operational effort, so it should be much easier to run a large CockroachDB cluster than a comparable cluster of sharded relational databases. I don’t know enough about deepstream to say whether these reasons are compelling in that case or if they can make up for the absence of JSON support.

the deepstream people seem to support Postgres. currently i am using MariaDB, but wish to move to cockroachDB. however, i would also like to use deepstream, if possible, which is why i paid to have a cockroachdb–>deepstream connector written.

sadly, i am not even quite sure what the connector does for me, since i have not seen one work.