This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2024-05-06
Channels
- # announcements (37)
- # babashka (17)
- # beginners (20)
- # calva (2)
- # clj-kondo (15)
- # cljs-dev (1)
- # clojure (6)
- # clojure-austin (2)
- # clojure-china (3)
- # clojure-europe (27)
- # clojure-korea (1)
- # clojure-nl (1)
- # clojure-norway (18)
- # clojurescript (13)
- # conjure (3)
- # datomic (31)
- # events (3)
- # honeysql (14)
- # jobs-discuss (33)
- # leiningen (4)
- # lsp (57)
- # membrane (3)
- # missionary (5)
- # off-topic (1)
- # releases (3)
- # shadow-cljs (18)
- # slack-help (2)
- # specter (2)
- # yamlscript (10)
thanks for sharing this! is it possible to execute a pull pattern on an eem for its derived attributes?
It was designed for the problems I was seeing in particular when using entity maps with Lacinia. (That’s also why metadata support: for tagging!) I no longer control whether it actually gets used though!
If you are in a position to have and use pull expressions, I really recommend just using Pathom instead of this—it is designed to give a pull interface over anything
i’ll check out pathom. it’s not possible otherwise? d/pull doesn’t operate on entity maps ?
But that said, it shouldn’t be too hard to write something that takes a pull expr and touches a map in the same way
Sorry missed your comment. No, pull produces a map from an id, it doesn’t touch an entity map
It’s really an alternate (eager) interface to map-projection, vs entity-map’s lazy interface
i made need to use Lacinia over pathom due to work constraints so i’ll have this in my toolkit now
Pathom also provides a lazy version. It’s called “smart-maps” over there. Lacinia +pathom would be a good match if you can line up fully-qualified graphql fields to pathom-provided fields. If you convert the gql query to an eql query, you could even use pathom’s execution engine instead
Ie just run the query and return an entire nested result for Lacinia to pull keys out of
You need to give it key dependencies , but it doesn’t need to know anything about their values
gql typically has better data and schema exploration tooling , so your customers can figure it out in their own , so sounds like a lethal combo
pathom is 🔥 thanks for the recommendation, i actually used fulcro a long time ago before pathom existed, I believe it was extracted out of there or inspired by its backend, so can't believe it took me this long.
this might be a good time for us to move to https://www.juxt.pro/blog/atomic-architecture/ too, and use mutations for domain ops.
I also started out as a monolith codebase, then moved to polylith, but took our existing monolith and just dumped it in bases/megacorp, and haven't had a ton of time to disentangle the monolith into polylith, so i feel like everythings aligning for a major refactoring.
maybe one qq for you, when writing the EQL Resolvers -> Datomic, what's your suggestion on the building block to implement those? d/entity, eem, d/pull or d/q?
@U0J3J79FE it is same as datomic’s entity maps, which is the database’s unique name plus entity db id