Caching & State Management with Apollo Client

State management is about caching the data you need to provide experiences for your users. Apollo Client is both a GraphQL client and a state management library. In this collection, you’ll learn how to use the latest version of Apollo Client as your single source of truth for state in client-side UI libraries like React.

  • Frontend

Apollo Client handles the tasks of fetching, caching, and normalizing your remote data. Understanding what it does and how it works under the hood lets you focus on what matters: creating great user experiences.

Khalil Stemmler
Developer Advocate

Intro to Apollo Client 3.0

On this episode of Mission Briefing, Ben Newman walks Kurt Kemple through Apollo Client 3.0! Apollo Client 3.0 introduces some excited new changes like cache policies, reactive variables, and a lot more!


Blog post

Demystifying Cache Normalization

Apollo Client provides APIs for building rich client applications by normalizing, caching, and making sense of complex GraphQL data.

Khalil Stemmler · Apollo Client, Caching, Frontend


A Quick Overview of Cache Normalization in Apollo Client

In this two minute video Ben Newman and Kurt Kemple walk through how cache normalization works in Apollo Client

Ben Newman & Kurt Kemple · Frontend

Blog post

Previewing the Apollo Client 3 Cache

Apollo Client’s caching system is core to both the user experience and the developer experience it provides. As one of Apollo Client’s most powerful features, the cache has been our biggest focus area while building Apollo Client 3. This major-version release will include plenty of other new features (such as a consolidated @apollo/client package that includes both […]

Hugh Willson · Announcement, Frontend

Blog post

Dispatch This: Using Apollo Client 3 as a State Management Solution

Learn client-side state management basics and how to use Apollo Client 3 to handle your entire client-side data layer.

Khalil Stemmler · Apollo Client, Caching, Frontend, How-to

Blog post

Local State Management with Reactive Variables

In Apollo Client & Client-side Architecture Basics, we learned that most client-side apps work with a couple of different types of state. When we talk about local state management, we’re referring to the pattern of attaching properties and objects that only exist on the client-side. That’s shared (global) state. shared (global) state is state that we sometimes don’t want […]

Khalil Stemmler · Apollo Client, Caching


What are Reactive Variables in Apollo Client 3

In this two minute video Ben Newman teaches us what reactive variables are in Apollo Client 3.0

Ben Newman · Frontend


What are Type Polices in Apollo Client 3

In this three minute video Ben Newman teaches us about type policies in Apollo Client 3.

Ben Newman · Frontend

Blog post

Apollo Client & Client-side Architecture Basics

Architecture is the foundation, the skeleton, that sets your project up for success. It’s the stuff that we wish we got right from the start because making drastic architectural changes, later on, can be challenging and time-consuming. Today, we React developers have tools like Context, Hooks, Redux, and xState. We write code that deals with […]

Khalil Stemmler · Apollo Client, Architecture


A Treatise on State

A study of the different types of state we manage, how to think about each, and how to get them playing nicely together.

Jed Watson

Related collections

GraphQL for Android

Consume your GraphQL API on Android Devices with Apollo Android. Apollo Android is a GraphQL client that generates type-safe Kotlin models from your GraphQL queries. It also handles parsing and caching so you can focus on what matters most to your users and build beautiful mobile apps.

  • Frontend
  • Mobile

GraphQL Tooling and Code-gen

One of the many benefits of adopting GraphQL is the ever growing eco-system of tools and services available to help you build your apps even faster. From code-gen to configuring Apollo Server, this collection has a range of tools, tips, and configuration best practices designed to boost your productivity.

  • Backend
  • Frontend
  • How-to
  • Platform


When building a GraphQL endpoint, you’ll probably have to face the question of how to control who can see and interact with the data in your API. This typically involves authentication (determining who you are) and authorization (determining if you have access). In this collection, we’ll cover strategies and best practices for both.

  • Backend
  • Frontend

Error Handling with Apollo

At Apollo, we’ve heard a lot of desire from GraphQL developers for more guidance on how to do error handling. Learn how to communicate errors to your client in an organized way, and open up new possibilities for tooling.

  • Backend
  • Frontend

© 2021 Apollo Graph Inc.