[
https://issues.apache.org/jira/browse/SLING-10502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17366488#comment-17366488
]
Bertrand Delacretaz commented on SLING-10502:
---------------------------------------------
[~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)