Re:Eva – A distributed entity-attribute-value database in Cl...
by refset on Friday June 28, 2019 @12:38PM
(#20306164)
Interesting, I was fairly confident you were going to write about Datalog and about the flexibility of having such a minimal and evolvable schema :)
One of the motivations for Crux was that `as-of` queries still weren't powerful enough for what the business really needed, which was something like `as-of` that could cope with retroactive corrections for out-of-order and delayed ingestion (of upstream transaction data).
Re:Eva – A distributed entity-attribute-value database in Cl...
by dangoor on Friday June 28, 2019 @02:37PM
(#20307493)
PostgreSQL is behind on this particular SQL feature, but MariaDB has it: https://mariadb.com/kb/en/library/temporal-data-tables/
Re:Eva – A distributed entity-attribute-value database in Cl...
by haolez on Friday June 28, 2019 @06:22PM
(#20309266)
That’s a very cool addition! I wonder if this can be used in an event sourcing architecture with minimal overhead.
Re:Eva – A distributed entity-attribute-value database in Cl...
by refset on Saturday June 29, 2019 @01:11PM
(#20313629)
I think to be really useful an event sourcing data store needs `as at` support in addition to `as of` (i.e. bitemporality) to cope with retroactive and proactive events and corrections. There are a couple of references for this in the Crux docs: https://juxt.pro/crux/docs/bitemp.html#_known_uses
Additionally, the ability to pin a database at a specific point in time is useful for APIs. For one, on pagination so that you don't see pages change out underneath as records are updated. Another is in APIs that join configuration values with time-series data or aggregations. If our data decisions drive revenue, for example, looking at 2018-08-31 revenues with today's business data has a lot less insightful value than being able to see them with other data pinned at that same date. Pointing the queried DB to a fixed timestamp in Datomic is free.