hawkeye
hawkeye

Reputation: 35732

What's different about Database as a Value in Datomic vs BiTemporal Indexes in Cassandra?

The Datomic database has the concept of 'Database as a Value'. This means that you can get a reference to the database at a point in time - and query against it.

It appears that BiTemporal Indexes in Cassandra do almost the same thing.

My question is: What's different about Database as a Value in Datomic vs BiTemporal Indexes in Cassandra?

Upvotes: 4

Views: 469

Answers (1)

Arcsech
Arcsech

Reputation: 46

The two concepts are very similar, in that they allow you to query the database at a specific point in time. There are a few points that separate them though:

  1. Temporal query is built into Datomic from the ground up, whereas it's a plugin to Cassandra. Also, with Cassandra, you will have to maintain the temporal fields yourself - the plugin from that presentation only helps with querying, not inserts or updates.
  2. "Database as a Value" extends beyond point-in-time query. For example:

    • You can get a database value in a middleware of a web request and passing it along to the following middlewares and handler functions. This ensures that all queries made during a request are automatically consistent - you can do as many queries as you want against it and never have to worry about doing them inside a read transaction. You might be able to make something similar to this work using the point-in-time query, but it would be a lot uglier code-wise.
    • You can do "what-if" updates to a database value without having any impact on the actual database.

Upvotes: 3

Related Questions