This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-06-28
Channels
- # announcements (6)
- # aws (8)
- # bangalore-clj (1)
- # beginners (249)
- # calva (27)
- # cider (5)
- # clara (8)
- # clj-kondo (11)
- # cljs-dev (14)
- # cljsrn (21)
- # clojars (1)
- # clojure (206)
- # clojure-europe (3)
- # clojure-greece (2)
- # clojure-italy (39)
- # clojure-nl (19)
- # clojure-spec (50)
- # clojure-uk (19)
- # clojurescript (31)
- # clojurex (24)
- # community-development (10)
- # core-async (32)
- # core-typed (4)
- # cursive (8)
- # data-science (15)
- # datomic (42)
- # figwheel (1)
- # fulcro (18)
- # graalvm (6)
- # joker (1)
- # kaocha (1)
- # nyc (1)
- # off-topic (1)
- # reagent (5)
- # reitit (2)
- # remote-jobs (2)
- # shadow-cljs (3)
- # spacemacs (2)
- # tools-deps (65)
- # xtdb (3)
We have released a new version of Client-pro, Datomic On-prem, and Datomic Cloud. See announcements below for more info: https://forum.datomic.com/t/new-client-pro-release-0-9-37/1041
@nolan if we bump codec, any reason not to bump to 1.12 (i.e. do you need 1.11 specifically?)
@stuarthalloway no specific need for 1.11. 1.12 would probably make most sense if you guys were to bump it
Will test ASAP, this is an easy change if they didn't break anything.
Right on, thanks for looking into this Stu! Would be huge for us, but I also recognize there’s a lot beyond my line of sight here. Will be following closely!
wahey! \o/ tuples! specs!
Am I reading it right that tuples can be used as composite keys? If so, that's fantastic! Are there any non-obvious surprises that I would run into if I treat them like I would a SQL composite key?
yep! no idea on the SQL thing. i'm also curious about how the performance changes
@shaun-mahood http://blog.datomic.com/2019/06/tuples-and-database-predicates.html
Question: for composite attrs, list of allowed types does not mention refs, but the example in the docs uses a ref
can you put a ref in a composite attr? is the system aware of it's ref-ness? this seems like an easy way to accidentally introduce an internal weak eid reference
Hm, I feel tricked, this seems like more than one question 🙂
Yes, yes, and probably yes.
Reading through all the changes right now - that's some amazing timing! I added https://receptive.io/app/#/case/17932 3 years ago on after asking @stuarthalloway about it at my first Datomic training, and I just finished writing the last required feature in my first real Datomic application for work yesterday. It's the same domain that I wanted composite keys for, so I should be able to add them in before we move it to full production mode. Days like this make me feel like the universe (or the Datomic team) really has my back. 🙂
"The day after you asked for it" would probably have been better timing... 🙂
Ok, next time I want something big and new I'll expect it right away then! 🙂
hey guys, small question, if I have 2 databases on transactor, are transactions serializable in scope of each db, or in scope of transactor?
so if I have multi-tenant app, then I can scale with database for each tenant :thinking_face:
As a datomic-cloud user, please bump datomic-free. There is some tooling that use it.
I can only second this. I’m a paying on-prem user and like to see all flavors of Datomic at the same version. I also will release the free Docker image ASAP.
Soooooo theoretically, couldn't you assert an Entity Spec that ensures you can't ever modify the entity, including retracting the Entity Spec itself? Looks like a wonderful prank. 😈
No. "Specs must be requested explicitly per transaction+entity" -- https://docs.datomic.com/cloud/schema/schema-reference.html#entity-specs
@stuarthalloway thanks, here's the part of the docs that confused me: > Entity specs can be asserted or retracted at any time, and will be enforced starting on the transaction after they are asserted
Might want to change to "and will be enforceable starting on the transaction after they are asserted"
so, does that mean it won't show up in tx logs? "decanting" will lose the ensure assertions?
@U09R86PA4 nails it. ":db/ensure is a virtual attribute. It is not added in the database; instead it triggers checks based on the named entity." -- https://docs.datomic.com/cloud/schema/schema-reference.html#entity-specs
In Datomic Cloud, attribute predicates and entity predicates just need to be on the classpath of your application, not installed as Ions, correct?
Database predicates must be on the classpath where transactions execute. In Cloud this means ions. In On-Prem, it is up to you to start a transactor with the appropriate code on the classpath.
can I use many :db/ensure
?
like [[:db/add :souenzzo :name "Enzzo"] [:db/add :souenzzo :db/ensure :op1] [:db/add :souenzzo :db/ensure :op2]]
?
How do you guys handle schemas in production, do you let your application code-base run through your schema updates (functions) on startup and send them to datomic or do you have an external application which takes care of it?
right now I just transact my schemas as a part of my application init.
we wrote a tool that we run to update the schema. We have lots of microservices using datomic, so transacting on startup doesn’t make sense for us
We transact the schema on startup. When we move to microservices, we won't be doing that anymore. @UFQT3VCF8 -- how did you architect the use of datomic with microservices?