Datomic is free and unpopular(?)

Datomic is now free for roughly one year. I was expecting at the time of the announcement, that this would increase its popularity, since one could tinker with it without thinking about payment. But it seems, that it is still super niche. When I search for tutorials on youtube there are just a few and most of them are more than 4 years old.

Personally I really like the concept, without actually having used it in production. I am wondering why it is not taking off (or is it only my perception?). What’s your view on this?

4 Likes

First of all, the amount of YouTube videos that one particular person can find on the topic is a very poor metric for popularity, for all sorts of reasons.

Second of all, the popularity of something is not a very useful metric by itself.

Finally, while Clojure is niche, Datomic is even more niche, and there’s at least one alternative with a heavily intersecting set of features that has been free and open source from the get go - XTDB. I’m not saying it’s more popular but I can imagine how it could siphon off some of the users.

If you think Datomic or anything else is a good fit for your project - by all means, use it. Something being perceived as unpopular should stop you only if the project that you’re working on is fueled by popularity of its constituents, which is definitely a weird scenario. :slight_smile:

5 Likes

At least it’s in the top 150 here:

We have been using Datomic in production for years. It was challenging to configure everything on Google Cloud. There is no storage driver for Firebase datastore. Therefore we need to run a PostgreSQL via Cloud SQL. Our Datomic backups are stored in S3 since the incremental backup is not supported for Google Cloud Storage. You need to know a lot of details to set up a Datomic production environment, which is okay, but most people will not be willing to invest the time to learn it. Running it on top of AWS is more straightforward, but even for Datomic Cloud, I find the learning curve very steep.

2 Likes

I think there are several contributing factors:

  • Datomic pretty much assumes Clojure as a client
  • Datomic requires you learn (a variant of) Datalog – which also means all the database tools people already know do not work with it
  • Datomic was a licensed product for a long time so a lot of people probably discounted it because of that and may never consider it again – because they may not know it is now free
  • Datomic is still a proprietary system and very much a niche technology

XTDB addresses several of these issues but is still pretty new and also very much a niche technology.

  • XTDB v2 supports Kotlin and several other client languages (as well as Clojure) – and I believe someone in the community has already built a Python client
  • XTDB v2 supports SQL and will have native PostgreSQL wire-protocol support so you can use a lot of traditional tools and approaches
  • XTDB has always been free and open source

I would expect XTDB to become more widely used than Datomic over time since it is “friendlier” to non-Clojure/non-Datalog folks, but I wouldn’t expect it to ever become “mainstream” like several well-known SQL-native databases.

If you have an existing SQL database (as we have at work), migrating to Datomic is a huge amount of work. Even migrating to XTDB v2 where you could theoretically keep all your SQL queries and DDL (mostly) intact is still a huge amount of work.

Setting up a SQL database – even in clustered form – is well-documented and mostly fairly straightforward. Setting up Datomic or XTDB has much less documentation and is substantially more work as a cloud service that almost any SQL database.

10 Likes

Datalevin is another open-source Datalog tool.

XTDB has a Datalog capability. But XTDB is fundamentally a document database. If you want to work with documents, then this is a major benefit, but it is more complex than datoms and entities.

I learnt my lesson working with closed source proprietary systems. Won’t be working with either datomic or Learn Rama through their current licensing model no matter how free the closed source is. Skill plays second fiddle to openness when choosing a sustainable core for any platform.

The issue has and always will be that the buyer has no say in the supplier keeping their licencing model. The price can go up at any time and the buyer is essentially locked in without anywhere to go.

XTDB has a Datalog capability. But XTDB is fundamentally a document database. If you want to work with documents, then this is a major benefit, but it is more complex than datoms and entities.

To be honest, in practice the distinction hasn’t really made a difference for me. I model and work with data in pretty much the same way in both DBs.