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

Related Articles

View all articles
S
SciChart
The Fastest JavaScript Charts - Built for React and Beyond
For most developers, browser charting works fine — until it doesn’t. Once you push beyond tens of thousands of points, add live streaming, or need advanced interactions, the story changes: frame drops, frozen dashboards, memory issues. That’s where S...
The Fastest JavaScript Charts - Built for React and Beyond
DC
Daniel Cranney
Dev Digest 161: Gemini 2.5, AI killing search, EU A11Y Act
Inside last week’s Dev Digest 161 . 🤖 Most traffic to web sites comes from AI chatbots 🖼️ Google releases Gemini 2.5 and OpenAI adds native image generation ⬛︎ Next.js has a big security issue 👨‍💻 How hackers weaponise code agents 📜 WikiTok analysed...
Dev Digest 161: Gemini 2.5, AI killing search, EU A11Y Act
DC
Daniel Cranney
Dev Digest 159: AI Pipelines, 10x Faster TypeScript, How to Interview
Inside last week’s Dev Digest 159 . 🤖 How to use LLMs to help you write code ⚡ How much electricity does AI need? 🔒 Is your API secure? Learn all about hardening it… 🟦 TypeScript switches to go and gets 10 times faster 🖼️ An image cropper in your ap...
Dev Digest 159: AI Pipelines, 10x Faster TypeScript, How to Interview

From learning to earning

Jobs that call for the skills explored in this talk.