Re:Why use GraphQL, good and bad reasons
by headcanon on Friday August 24, 2018 @11:04AM
(#17835355)
I love clojure and appreciate what Datomic brings to the table, but it seems like you need the whole package (clojure backend) in order for the benefits to pay off. GraphQL is a much less risky proposal for most companies, since it can be implemented more iteratively, and is storage-layer agnostic.
Re:Why use GraphQL, good and bad reasons
by dustingetz on Friday August 24, 2018 @11:22AM
(#17835476)
Just different risks. Adopting GraphQL without also adopting Facebook's exotic graph datastore is the unknown-unknown sort of risk that eventually leads to intractable problems as demonstrated by Hibernate and a long history of ORM related failures, and it isn't even on the radar of 90% of GraphQL adopters, if HN comment activity is any indicator.
Re:Why use GraphQL, good and bad reasons
by headcanon on Sunday August 26, 2018 @01:31PM
(#17846841)
could you elaborate on that? we aren't using an ORM and are able to successfully batch queries to improve performance. Couple that with an understanding that the developer should not use overly-nested queries and its been working out fairly well so far, although we're not dealing with a massive user load yet.
Re:Why use GraphQL, good and bad reasons
by SmirkingRevenge on Friday August 24, 2018 @09:49AM
(#17834906)
Before clicking through, I never knew that datomic has dependancies on AWS specific services. That's a serious downside, for many cases.
Datomic "on premise" version is not dependent on any AWS services and can be run on any box using vanilla java
There appears to be an on premesis version, which doesn't use AWS services.
That threw me away, worse is that the cloud version and on-premise are different products and not compatible. Is not something like RDS where you can just move your postgres setup to your own server or some other cloud service.
As it just happened to you, you can see they are putting some effort in hiding on-premise from their front page. All their effor seems to be going to the cloud version.
You can use a variety of different backends as the data store.
Clojure ecosystem has an immutable database, Datomic, which is designed for functional programming and fully solves the impedance mismatch. Datomic "Pull queries" is essentially GraphQL – and even predates GraphQL by a year!
Unlike GraphQL, Datomic is also a real database, competitive with SQL and can express relational filters and joins. Datomic is designed for the read-heavy data modeling loads that, today, SQL (and mongo, etc) is used for in anger. https://www.datomic.com/