This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
- # admin-announcements (283)
- # announcements (1)
- # aws (3)
- # beginners (24)
- # cider (32)
- # clara (13)
- # cljs-dev (1)
- # cljsjs (10)
- # cljsrn (24)
- # clojure (179)
- # clojure-dev (6)
- # clojure-russia (149)
- # clojurecup (5)
- # clojurescript (33)
- # cursive (23)
- # datomic (35)
- # devops (6)
- # emacs (1)
- # jobs-rus (11)
- # ldnclj (77)
- # lein-figwheel (1)
- # luminus (3)
- # off-topic (3)
- # om (179)
- # onyx (13)
- # proton (6)
- # reagent (60)
- # testing (1)
but if you have a
uuid and you don't know if you want a
bus or a
route then the former is probably what you want
@bostonaholic: using squuids, yes. No idea about the queries, beyond
pull api yet, working through this now.
In my case, those guids are secondary, as I need them only (for now) to maintain relationships between entities during export/import db data, and to have common id (ref) between ui (datascript) and be (datomic(s)). Most of the other things I thought of – will/can be covered with pull api or other attributes.
@misha: if you’re ever going to seek using this uuid, you should make schema for each entity type. otherwise your queries will have larger datasets to seek through
@robert-stuttaford: What do you mean by "seek?" Does that include using a global id in a lookup ref?
yeah. it has to scan through the AVET index to find your value when you use lookup refs or any [?unbound-id :attr ?bound-value] datalog clause. using semantically assigned attrs lessens the size of that seek space.
this might be a dumb question, but why doesn't datomic have an edn or json type? or does it? sometimes I want to tuck away some random bag of data to an attribute of an entity, do I have to convert that to a string and save it that way?
I would think that depends on the scope of "random bag of data". At some point you're working against datomic, no?
we use it for very small edn blobs, under 1k, where only the client-side consumer cares about it
a trade-off decision against making unnecessary schema for stuff we’ll never query against or call on directly
worth highlighting that that's
is there a commonly accepted name for databases like Datomic in the academic world? It seems that 'Functional Database' is already taken for something else: https://en.wikipedia.org/wiki/Functional_Database_Model
@bhagany: I'm actually more interested in the 'database as a value' quality, not the data schema
I'll go ask on the mailing list, the guys in the Datomic team have probably done that research
While I’m not going to add anything definitive, I’ll note you have to be cautious when pulling terminology from the literature or generalizing from terminology we or others use like “deductive database”, “universal schema”, “triple store”, “append only”, “accumulate only”, etc. — because a lot of the assumptions/typically included components with those models historically largely do not match Datomic’s architecture as a whole.
The literature itself isn’t always crystal clear on what a lot of these are precisely, so it’s not just Datomic per se. I think the problem implied by the questions, i.e. something like “If I only knew what Datomic’s data model was called precisely I could find an article on how to design my schema to represent X”, isn’t necessarily solvable on those terms, if that makes sense.
I have started getting exceptions like these in my peer:
This is a peer that does a couple of large queries, then does some computation and saves the result to disk. It does not write anything to datomic. The queries work fine, and in fact the computation is able to finish after the exceptions appear in the log. Any idea what's going on?
HornetQNotConnectedException: HQ119006: Channel disconnected HornetQNotConnectedException: HQ119010: Connection is destroyed ExceptionInfo: Error communicating with HOST 10.43.180.240 on PORT 4334 HornetQInternalErrorException: HQ119001: Failed to create session IllegalStateException: Connection is null HornetQInternalErrorException: HQ119001: Failed to create session