San Francisco based Apollo GraphQL announced today the release of the company’s next-generation tool for GraphQL programming, Apollo Client 3.0. ProgrammableWeb conducted an interview with the company’s CTO Matt DeBergalis where we discussed this new offering.
Apollo Client 3.0 ships with a number of new features that are intended to increase productivity for client-side Node.js developers who are creating applications that use GraphQL as their underlying data management technology. The core improvements in the 3.0 release are:
A Single NPM Package that Segments the Apollo GraphQL’s Libraries
Developers can choose to use only the libraries required to mee the task at hand, for example using only @apollo/client/utilities to access utility objects or @apollo/client/cache to perform caching activities.
Improved Client-Side Caching
This provides a finer degree of control over activities in the client-side data cache and caching mechanisms. Eviction allows programs to remove data objects and fields from the cache that are no longer useful. Garbage collection can be used by programs to remove all data objects from the cache that are not reachable when traversing the cache from the root of the graph.
Configurable policies for types and fields make it so additional fields can be defined as a data object’s primary key. Pagination helpers simplify the way clients retrieve chunks of data incrementally from a cache that stores a large data graph.
Improved Local State Management
Improved local state management automatically integrates data stored in the cache with data the resides on the remote GraphQL server. Developers can execute queries that include both local and remotely fetched fields.
Expanded and Refined UI Reactivity
Reactive variables allow developers to create variables that are separate from the client-side in-memory data graph. The data structure of a reactive variable does not have to conform to the GraphQL format. For example, data in a reactive variable can be structured as JSON or XML
More Reliable Cache Broadcast Behavior
This makes it so that a change in the state of the client-side, in-memory cache broadcasts changes to affected queries more efficiently and with greater accuracy. The result is a faster automatic refresh of cached data in web pages that use Apollo Client.
In addition to the new and improved public-facing features, the internal code in Apollo Client 3.0 has been extensively refactored to provide a programming experience that is more efficient and more reliable.
According to CTO DeBergalis, “Apollo Client 3 is all about functionality that we've built hand in hand with customers and developers that help teams build those data-rich experiences with a minimum of code and a really high-quality User Experience.”
You can download Apollo Client 3.0 on GitHub here.