How does Xtdb compare to Rama, anyone considered whether they’d make sense together?
The obvious is that Xtdb has firsts-class bitemporality, works with SQL (v2), is open-source, whereas Rama works with streams of data, Clojure data types, has its own dataflow language for built-in scalability, but is closed-source.
I think Xtdb’s focus on bitemporality has a lot of value for many applications, as reporting is a common use-case.
Though Rama’s built in scalability model and consolidation of databases into Clojure data types is also huge value add (despite data being locked into offering of a closed-source vendor).
I don’t know if it’d make sense using them together since they’re both have their own kafa-esque streaming behavior, and Xtdb has it’s custom query dialect for bitemporality.
Opening discussion in case anyone else wants to chime in.
Hey @ac1, and welcome
Yes, I think this is a fair comparison In terms of implementation, our focus on bitemporality means we have a more bespoke primary index that aims to make current queries fast and historical queries possible (albeit not quite as fast as current-time queries). I do like the idea of basing indices on Clojure’s data types and getting users to think in this way, and we certainly agree on the value of ‘turning the database inside-out’, but I don’t think it’d be trivial (as a Rama user) to implement something like our bitemporal indices on top of just maps and vectors (I’m obviously biased here!).
I, too, would love to hear what others think - I recognise I’m probably the wrong person to ask
related: we were very fortunate to speak with Nathan himself on the JUXT Cast last year - I particularly enjoyed recording this one.
I just left a few comments on this Rama-related HN post covering some of my perspectives on Rama: 3GL vs. 4GL, the need for incremental view maintenance in relational databases, horizontal/distributed scaling etc. (I’m “refset” there also)
Further to those thoughts, I think XTDB v2 and Rama could be quite complementary in the near future, as Rama doesn’t solve cold storage or offer an ad hoc analytical query engine, and XT doesn’t offer a scale-out stream processing engine.