Apollo Client is a GraphQL client that allows developers to work with any front-end and any GraphQL spec-compliant server. It provides tools for working with mutations, including simple ways to update queries currently being watched and optimize UI updates. With optimistic UI, the application can simulate the result of a mutation by guessing what will happen and then validating the behavior with the server. The client normalizes results into a store to get benefits such as query caching and consistency across the store.