Whenever I see GraphQL implementations I'm interested in two things:
1. How do you secure it?
2. How do you make sure that queries are performant?
Typically these are left "up to the implementation" and are probably both harder than the problem graphql proposes to solve itself. Took at look at this and here is what I could figure out:1. Use postgresql's row based access control. This is not a bad solution at all.
2. No clue. I see that you can write your own custom queries that could be used to optimize special cases, but the point of GraphQL is to be able to do composition and having to use custom queries that do a bunch of things in one query defeats the purpose. Is there any other way that this is handled? Or is just hoping that naive composition of SQL fragments will result in reasonable performance for a majority of cases?