Caching GraphQL is harder than REST because there is one endpoint and requests are usually POST, so URL-based HTTP caching does not work out of the box. You cache at three layers instead: client, transport/CDN, and server.
Normalized client cache
Apollo Client and Relay store results in a keyed by + . Every object is stored once; different queries that reference the same share it, so a mutation that updates one entity refreshes every view automatically.
