Many of the problems faced by GraphQL client developers today boil down to having no reliable indication when it might be a good idea to refetch query data.
Refetching all your queries just in case they have new data tends to be prohibitively expensive, even/especially if nothing has changed. On the other hand, refetching some queries and neglecting to refetch others can lead to UI inconsistencies, disrupting end user experiences. Normalized caching helps propagate data changes throughout the UI in a consistent way, but there’s only so much one client can know about changes in (the availability of) data elsewhere in the system.
To address these issues, we’re looking to add support for various forms for real-time data in GraphQL and would love your feedback in this survey!