Fork me on GitHub
#crux
<
2020-08-17
>
denik17:08:28

It looks like crux does not have anything similar to datomic's noHistory? https://docs.datomic.com/on-prem/schema.html#nohistory

refset17:08:51

Not currently. You can lookup data from a custom source within your query using a custom predicate though

jarohen17:08:23

that's correct, yes - apart from being schema-less, our bitemporality also means that you can insert data at any point in the past/future, which wouldn't play so well with noHistory

dominicm21:08:05

Some of those use cases would be covered by the eviction in crux instead.

✔️ 1
refset22:08:26

^ eviction - that's an interesting point, it could be a good option to create something similar. It doesn't incur expensive index rewrites like excision does (in case that's a concern)

jarohen15:08:45

> there is only one version for any point in time not sure I quite get what you're looking for here 😕 let's say we were to consider bitemporality as a 2D graph, valid-time on one access, transaction-time on the other - the update pattern you're talking about would currently look like a lot of dots along the vt=tt 45° diagonal - what might you want it to look like?

refset15:08:09

based on that, I think "noCorrectionHistory" is probably a more accurate description as far as Crux is concerned 🙂

refset16:08:52

got it. Do you require atomicity with the regular Crux transactions?

refset08:08:21

It's possible you could do something clever with (e.g.) Kafka transactions to keep the main tx-log free from atemporal churn, whilst retaining atomicity. Is this a deal breaker? It might be a good point to chat

denik17:08:20

yes, happy to chat

denik17:08:36

monday or tuesday? I’m on EST time, mostly available 12-6pm

👍 1
Casey17:08:43

Are there any examples or open source real apps in the wild yet that build on crux with the helpers you'd need to run crux as a general app DB? I'm thinking of things like validation, wrappers around common query patterns etc?

lgessler18:08:12

i'd be curious to know as well--i've begun https://github.com/lgessler/glam/blob/master/src/main/glam/crux/easy.clj in my own project by expanding transaction ops with update and merge via transaction and writing a few other convenience functions. but this is not a mature solution at all

👍 1