Apollo Client has a particularly challenging responsibility: to make interconnected GraphQL data easy to use on the client-side. In most rich client applications, we need the ability to cache data and pass it to components. We also need to know when to re-fetch data vs. when to return what’s already cached; this helps to avoid making unnecessary network requests. This kind of caching logic can be
![Demystifying Cache Normalization | Apollo GraphQL Blog](https://cdn-ak-scissors.b.st-hatena.com/image/square/1b22c767dff0d85d0f3fd2899d8da07afa035687/height=288;version=1;width=512/https%3A%2F%2Fwp.apollographql.com%2Fwp-content%2Fuploads%2F2020%2F07%2F25.png)