<story><title>RedwoodJS 1.0</title><url>https://v1launchweek.redwoodjs.com/</url></story><parent_chain><item><author>Exuma</author><text>I have a simple question -- I&amp;#x27;ve looked at GraphQL in the past and it seems extremely limited when you start wanting to do more complicated types of joins for performance, etc. This is such a fundamental thing to any webapp in my mind, and yet when I ask this previously people are often like &amp;quot;uhhh yeah...... use joinMonster I GUESS?&amp;quot;&lt;p&gt;Has GraphQL improved? I literally can&amp;#x27;t fathom using some kind of external plugin just to load data using more complex queries for performance reasons.</text></item><item><author>thedavidprice</author><text>Co-founder of RedwoodJS here. We are so excited and proud of what Redwood has become, both as a project and as a community! Whether you are setting off to start your side project or looking to become an open-source contributor, I&amp;#x27;d like to personally invite you to join us.&lt;p&gt;With Redwood, no one has to go it alone.&lt;p&gt;If you have any questions along the way, don&amp;#x27;t hesitate to reach out to me. I&amp;#x27;ll be watching comments here. And my DMs are open everywhere.&lt;p&gt;Join the Redwood Community: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;redwoodjs.com&amp;#x2F;community&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;redwoodjs.com&amp;#x2F;community&lt;/a&gt;&lt;p&gt;So very excited to see what people with Redwood</text></item></parent_chain><comment><author>manquer</author><text>It really depends on how the resolvers are written, GraqhQL is just a interchange mechanism like RESTful APIs . You can do same things good or bad on both.&lt;p&gt;Depending on the framework that use for your DB-to-GraphQL layer (like Hasura &amp;#x2F; join monster&amp;#x2F; PostGraphile &amp;#x2F; subZero etc) there can be some there can be some limitations on what it can and cannot do, but that is not really a GraphQL problem.&lt;p&gt;The GraphQL specific gotchas for me where&lt;p&gt;-   For most part component level queries works well, occasionally batching in higher component is important for performance, for example instead of executing a secondary query on each row of the table  ( say fetching photos of user profiles from a different store) doing it one level up can speed things up.&lt;p&gt;-   Caching has to be solved very differently than RESTful APIs, GraphQL has everything in one endpoint as POST and you cannot leverage CDN&amp;#x27;s to cache the canonical resource URLs&lt;p&gt;- Less verbosity or nested request-responses could be important for UX performance, using HATEOS style discoverability usually results in many APIs calls 2-3 levels or more deep, in RESTful systems that is not a major problem as you are caching API responses in nodes in dozen locations&amp;#x2F;CDN PoPs near the user but that is not possible in GraphQL, so you have to keep mind of verbosity, that can also impact how you store and index your database and how you configure and run replicas etc at scale.&lt;p&gt;---&lt;p&gt;Anecdotally I have used Hasura as GraphQL frontend for an existing mature PostgreSQL db and APIs, (1 tb+, 1000&amp;#x27;s of concurrent users), and it scales fairly well even with 4-5 level nested joins or fetch ten of thousands of nested records. Hasura also does subscriptions reasonably well and they don&amp;#x27;t use triggers for implementing it.&lt;p&gt;Some areas that needed a bit work around for me - recursive CTEs, cross-db joins, performance of very large counts ( postgres problem - using HLL or tuples from the planner if approximate values are fine.</text></comment>
<story><title>RedwoodJS 1.0</title><url>https://v1launchweek.redwoodjs.com/</url></story><parent_chain><item><author>Exuma</author><text>I have a simple question -- I&amp;#x27;ve looked at GraphQL in the past and it seems extremely limited when you start wanting to do more complicated types of joins for performance, etc. This is such a fundamental thing to any webapp in my mind, and yet when I ask this previously people are often like &amp;quot;uhhh yeah...... use joinMonster I GUESS?&amp;quot;&lt;p&gt;Has GraphQL improved? I literally can&amp;#x27;t fathom using some kind of external plugin just to load data using more complex queries for performance reasons.</text></item><item><author>thedavidprice</author><text>Co-founder of RedwoodJS here. We are so excited and proud of what Redwood has become, both as a project and as a community! Whether you are setting off to start your side project or looking to become an open-source contributor, I&amp;#x27;d like to personally invite you to join us.&lt;p&gt;With Redwood, no one has to go it alone.&lt;p&gt;If you have any questions along the way, don&amp;#x27;t hesitate to reach out to me. I&amp;#x27;ll be watching comments here. And my DMs are open everywhere.&lt;p&gt;Join the Redwood Community: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;redwoodjs.com&amp;#x2F;community&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;redwoodjs.com&amp;#x2F;community&lt;/a&gt;&lt;p&gt;So very excited to see what people with Redwood</text></item></parent_chain><comment><author>ncrmro</author><text>Postgraphile turns postgres schema into GraphQL schema, can do, filtering, aggregates, computed columns, filtering on computer columns etc</text></comment>