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:
- 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.
"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.