Ask questions on the official Q&A site at https://ask.datomic.com!

i apologize if this is a naive question. if a datomic transaction fails, for whatever reason, does datomic log the failure and the data it failed to transact?

ghadi 2021-05-03T18:00:00.440400Z

what if the transaction failed to reach the transactor?


i'm not sure whether this question is meant rhetorically? as in, would i still ask my original question if i had known to first ask, and then answer, yours?


again, i apologize if my question is naive


is there a version of my original question that is not naive? that you might ask about other databases?

ghadi 2021-05-03T18:26:58.441700Z

I guess I’m trying to say that the domain of failures is pretty large

ghadi 2021-05-03T18:27:21.442500Z

Are you trying to find some debug info on a previously failed tx?


as part of a security threat model, we're trying to ask about user auditing. if we set up our system to audit user actions to create, update, or delete datomic entities (which we have, using the log-why functionality), and we fail to persist an audit record... yeah, would we be able to recover that data.


my intuition is that this question might be about a write ahead log, but i'm not sure


in our case, the audit log is atomic with the actual create, update, or delete

ghadi 2021-05-03T18:38:00.443400Z

audit logs need to be in "user space"

ghadi 2021-05-03T18:38:09.443600Z

datomic does not have entity/datom level access control

ghadi 2021-05-03T18:38:37.443800Z

ostensibly the log-why stuff is transacted in the same tx as the CRUD

ghadi 2021-05-03T18:38:43.444Z

it will all succeed or all fail together


perhaps since it will all succeed or fail together, i can push back on this question.

Dave A 2021-05-03T20:03:41.447900Z

Trying to get my head wrapped around implementing a product recommendation system using Datomic. For example implementing a 'weighted graph' with a pre-calculated similarity score 'edge' between products. Or a "people who bought this item also bought these items" type approach. Anyone have experience with this or have any thoughts on an approach that might be workable?

Joe Lane 2021-05-03T20:11:36.448Z

Hi @vanchuck, do you already have a Datomic system with this data or are you evaluating Datomic for a new system?

Dave A 2021-05-03T20:12:35.448200Z

The latter -- haven't committed to Datomic yet, would like to use it for other reasons, but this one aspect I'm not clear on whether it would be a good choice

Joe Lane 2021-05-03T20:24:34.449100Z

As you begin to plan a system you should reach out to us via the support channels, we always enjoy meeting our customers and helping them succeed!

Dave A 2021-05-03T22:19:19.449300Z

Thanks for the reply Joe. My product data sets are pretty well-defined, so I'm hoping I can get a reasonably good result with running graph-like traversals to find similar products in Datomic, vs. using a full-blown separate ML solution or service like AWS Personalize. This post https://hashrocket.com/blog/posts/using-datomic-as-a-graph-database provides some hope of achieving that with decent performance. Just wondering if anyone else has worked on this particular problem.