Fork me on GitHub
#untangled
<
2016-10-31
>
tony.kay02:10:39

@darrellesh The new support for server mutation return value handling. I think we added post-mutation because we didn’t leave a hook in merge to handle the returns from mutations.

tony.kay02:10:06

I’m curious where you’ve needed to use post-mutation, since I know you’re doing optimistic updates.

tony.kay02:10:23

usually in that case you’d do follow-on reads with post mutations. Oh wait, do you mean load post-mutations? That is not what I was talking about actually

tony.kay02:10:28

I was talking about the GLOBAL post-mutate mulitmethod

ethangracer13:10:51

@darrellesh @tony.kay we’re making pretty extensive use of load post-mutations for things like reporting that don’t conform with the database schema. I’m not sure anyone is using the global post-mutate multimethod, We originally added it in because I was working on todomvc and wanted to save to local storage after every mutation, regardless of which one it was.

ethangracer13:10:31

and didn’t want to have to manually write in the save-to-storage function call in for each mutation

tony.kay15:10:21

Ah, right. I knew we added it for some reason. I lean towards composition in mutation methods for that sort of code re-use. Truly global operations on every UI transaction are kind of an invitation for heavy-handed design.

currentoor20:10:24

hope to see you there

currentoor20:10:21

do live in SF or just here for the week?

jasonjckn20:10:25

@currentoor do you work for adstage?

jasonjckn20:10:36

there was some article about real-time om.next from adstage

currentoor20:10:43

yeah, been here for 1.5 years

currentoor20:10:48

yeah i wrote that article

currentoor20:10:22

where do you work?

jasonjckn20:10:52

we're in civic center

currentoor20:10:33

this was all built with untangled?

jasonjckn20:10:09

@currentoor no, we used it to build an internal admin/management tool for the platform

currentoor20:10:15

i wish datomic had an open source admin app/service

jasonjckn20:10:22

our external facing website has pretty stringent binary size requirements, and would need server side rendering for google indexing, etc

currentoor20:10:25

or even a paid service would be nice

jasonjckn20:10:27

so not as good a choice

jasonjckn20:10:57

i wish datomic was open source

currentoor20:10:00

i didn’t mean your external site, just the app itself

jasonjckn20:10:04

also a clojurescript client would be nice

jasonjckn20:10:22

i'm a little nervous about coupling our product to datomic for those reasons, it would be interesting if there was a om.next server that supported a variety of databases, so for example I could use query expressions to interact with mongo, s3, datomic, etc

jasonjckn20:10:46

the facebook graphql server equivalent for clojure

currentoor20:10:47

yeah i looked into graphql, used it in a rails app also

jasonjckn20:10:02

i guess we sort of have that going with the untangled server, but our mutations and reads is too specific to app we're developing, maybe that's just my own fault, not sure if it's a design limitation

currentoor20:10:33

java has an alright graphql library, and i think it shouldn’t be too hard to translate om.next queries to graphql

jasonjckn20:10:56

what's it called?

currentoor21:10:13

this also looks promising but not as complete

currentoor21:10:23

personally I am pretty happy with datomic at the moment but we are supplamenting it with postgres

jasonjckn21:10:18

@currentoor very cool, I wish there was an equivalent of https://github.com/tendant/graphql-clj for query expressions, we're so very close

currentoor21:10:19

i wrote this to make it easier to use with the pull API https://github.com/AdStage/pluck-api#external-blob-store

jasonjckn21:10:44

your data flows from datomic -> postgres?

jasonjckn21:10:52

then you compute views of datomic?

currentoor21:10:27

with the pluck-api we pull with datomic.api/pull then decorate the result based on the query and which keys implement the -pluck multi-method.

jasonjckn21:10:03

ok, so basically it's like datomic pull syntax, + automatic joins with external store?

currentoor21:10:18

yeah pretty much

currentoor21:10:50

can easily result in n+1 queries but that hasn’t hit us yet

currentoor21:10:28

but we’ll probably have to implement pluck-many at some point

currentoor21:10:45

anyway looking forward to seeing you at the meetup

jasonjckn21:10:58

we're on mongo for historical reasons, I would love to see some generic library for doing joins across multiple storage services

jasonjckn21:10:16

if you have a large fanout, maybe datomic returns several IDS, and then you want to query that set of IDS in parallel on the external store

jasonjckn21:10:26

this library would parallelize the joins as much as possible

jasonjckn21:10:44

yah likewise, i think i'll be there, i also sent the link out to the office 🙂

jasonjckn21:10:06

glad to see more om.next presentations, cheers man