[ https://issues.apache.org/jira/browse/SLING-10502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17366488#comment-17366488 ]
Bertrand Delacretaz edited comment on SLING-10502 at 6/21/21, 10:01 AM: ------------------------------------------------------------------------ [~radu] mentioned the Sling API's [LazyBindings|https://github.com/apache/sling-org-apache-sling-api/blob/master/src/main/java/org/apache/sling/api/scripting/LazyBindings.java] as a helper that uses {{Supplier}} for lazy evaluation in {{Maps}}. I'm also looking at patterns using {{Optional}} for lazy loading, will report here on my experiments. was (Author: bdelacretaz): [~radu] mentioned the Sling API's [LazyBindings|https://github.com/apache/sling-org-apache-sling-api/blob/master/src/main/java/org/apache/sling/api/scripting/LazyBindings.java] as a helper that uses {{Supplier}} for lazy evaluation. I'm also looking at patterns using {{Optional}} for lazy loading, will report here on my experiments. > Helpers for lazy loading of GraphQL query results > ------------------------------------------------- > > Key: SLING-10502 > URL: https://issues.apache.org/jira/browse/SLING-10502 > Project: Sling > Issue Type: Improvement > Components: GraphQL > Affects Versions: GraphQL Core 0.0.10 > Reporter: Bertrand Delacretaz > Priority: Minor > > Lazy loading of "expensive" field values can help the performance of GraphQL > queries, by omitting calls to methods that retrieve or compute data if the > corresponding fields are not used in the result set. > A natural way of doing that is to return a {{Supplier<SomeType>}} instead of > {{SomeType}} directly. I'm not sure if the GraphQL Core supports that > correctly out of the box, it would be good to try that and maybe implement > the corresponding improvements. -- This message was sent by Atlassian Jira (v8.3.4#803005)