Earliest Version of Apollo client which supports @defer fully

Hey all!

As of right now, our current used version of Apollo client is 3.7.2, which to my understanding, supports @defer, to some extent? We need to add full support for @defer, but I’m not sure which version has full support for defer. Our api already supports this, but we need to make clientside support it as well.

It seems that since version 3.8.0, there have been some changes regarding updating cache, and it will effectively require big changes to our codebase. So, my question is, does using 3.7.2 version provide full @defer support, or do I need a newer version?

Hi @WEe,
could you specify what you mean by “full support” for @defer?

Generally, our @defer support hasn’t changed a lot since we released it, apart from some bug fixes - but that’s not a thing specific to @defer, you should always try to stay up to date with updates to get bug fixes.

@defer still hasn’t made it into the official spec, so there is no “final” version.
We do not support all different versions of @defer that have been suggested over time as that would bloat bundle size by a lot, and we also haven’t changed the version we support, as that would be a breaking change to people using it.
We support the version of @defer that was specified on 2022-08-24, which is shipping with graphql in the version 17.0.0-alpha.2.

We are planning to make @defer support more pluggable in the upcoming Apollo Client 4.0, which would enable people to use Apollo Client with different versions of the defer spec without breaking changes and bundle size bloat.