Server side caching
Typically gateway caches are used to check if the data is still up to date in the cache to avoid additional round trips.
The advantage is that Hasura doubles up as your server side cache.
Client side caching
Client side caches at the browser level use HTTP caching to avoid refetching data that is still fresh. This is set by response headers by the server for the request. GraphQL Clients cache data with an in-memory cache.
Control the number of times a resource should be considered fresh with response headers like Cache-Control. This is typically well suited for data that doesn’t change in real time or as often as up to 5 mins.
Control cache lifetime with Hasura using the “ttl” argument on the `@cached` directive.