TerminusDB: Exciting stuff for fediverse projects

I have been actively reading up on a very interesting database product I came across, which - with its linked data support - is very interesting to fediverse impls. Copying from earlier posts on Solid forum:

I recently started delightful project, and - while adding a bunch of graph db’s to delightful-databases - bumped into TerminusDB.

I think this is a very interesting project for those working with linked data. I won’t duplicate its features here but give you the link:


If you found that interesting then you should really read the recent Hacker News discussion where the team gives lotsa background and answers a whole bunch of questions (such as why didn’t you implement SPARQL querying?):


Some small feature summary might be in order, to demonstrate why I find this so exciting:

  • The db schema is defined in OWL (used in a closed-world perspective)
  • Most operation occurs in-memory, but is persisted in a forward-only log (similar to git)
  • This “git-for-data” approach allows branch, merge, squash, rollback, diff, blame, and time-travel, etc.
  • JSON-LD is interchange format, suitable for web, but editing in turtle is possible
  • You can query any part of a graph and retrieve as a JSON-LD document (serialized to the depth you want)
  • Query format is also JSON-LD, making queries composable and you can store/query queries like normal data
  • Client-side the queries are created using fluent JS (for web devs) and/or Ruby (for data scientists)
  • Provides transaction processing and updates using immutable database data structures
  • Through this immutability the db regains full ACID support

The feature “AI code generation” is confusing but means:

We generate data-input forms automatically from the structure of schema definitions in the database - the same definitions which make it possible to marshall data from JSON-LD documents into a graph and back.

About the persistence of data:

The database is in memory but we journal all transactions to disk, so it is persistent. In fact it’s so persistent that it never goes away. We have an append-only storage approach allowing you to do time-travel. You can query past versions, or look at differences, or even branch from a previous version of the database.

The canary release of TerminusDB 2.0 was just unveiled in this video: https://invidio.us/watch?v=jX4DMGgfr5M
It allows branching, merging of db’s and cool stuff like time travel.