Simone Sanfratello

Event based cache invalidation in GraphQL

Stop serving stale data. Use event-based invalidation to keep your GraphQL cache instantly up-to-date.

Event based cache invalidation in GraphQL
#1about 2 minutes

Understanding GraphQL resolvers as cacheable functions

GraphQL resolvers can be treated as pure functions, allowing their results to be memoized and cached based on query arguments.

#2about 5 minutes

Comparing time-based and event-based cache invalidation

Time-based invalidation is simple but can serve stale data, whereas event-based invalidation keeps data synced but is more complex to implement.

#3about 4 minutes

Choosing a storage backend and generating cache keys

A cache can use fast in-memory storage for small, frequent data or a shared Redis instance for larger datasets across multiple nodes.

#4about 4 minutes

Using references for targeted cache invalidation

By tagging cache entries with references to the underlying data entities, you can precisely invalidate them when a write event occurs.

#5about 7 minutes

Live demo of setting up a basic GraphQL server

A Fastify server is configured with the Mercurius plugin to serve a GraphQL schema with user and country data from an in-memory database.

#6about 3 minutes

Live demo of implementing a time-based cache policy

The Mercurius Cache plugin is configured with a time-to-live policy for a query, using onHit and onMiss events to verify its effectiveness.

#7about 5 minutes

Live demo of solving stale data with event invalidation

An invalidation function is added to a mutation resolver, which uses references to clear the relevant user data from the cache upon update.

#8about 3 minutes

Exploring advanced features of Mercurius Cache

Mercurius Cache also supports custom key generation, request deduplication, programmatic invalidation with wildcards, and garbage collection for references.

#9about 4 minutes

Q&A on career advice and GraphQL best practices

Common GraphQL pitfalls are discussed, such as neglecting to use DataLoaders to solve the N+1 query problem.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.