Yesterday, Apollo introduced its Apollo GraphQL Platform for product engineering teams. It is built on Apollo’s core open source GraphQL client and server and comes with additional open source devtools and cloud services. This platform is a combination of open source components, commercial extensions, and cloud services.
The following diagram depicts its architecture:
The Apollo GraphQL platform consists of the following components:
Core open source components
- Apollo Client: It is a GraphQL client that manages data and state in an application. It comes with integrations for React, React Native, Vue, Angular, and other view layers.
- iOS and Android clients: These clients allows to query a GraphQL API from native iOS and Android applications.
- Apollo CLI: It is a command line client that provides access to Apollo cloud services.
- Schema registry: It is a central registry that acts as a central source of truth for a schema. It propagates all changes and details of your data,allowing multiple teams to collaborate with full visibility and security on a single data graph.
- Client registry: It is a registry that enables you to track each known consumer of a schema, which can include both pre-registered and ad-hoc clients.
- Operation registry: It is a registry of all the known operations against the schema, which similarly can include both pre-registered and ad-hoc operations.
- Trace warehouse: It is a data pipeline and storage layer that captures structured information about each GraphQL operation processed by an Apollo Server.
GraphQL gateway is the commercial plugin for Apollo Server. It allows multiple teams to collaborate on a single, organization-wide schema without mixing everyone’s code together in a monolithic single point of failure. To do that, the gateway deploys “micro-schemas” that reference each other into a single master schema. This master schema then looks to a client just like any regular GraphQL schema.
In addition to these components, Apollo also implements some useful workflows for managing a GraphQL API. Some of these workflows are:
Schema change validation: It checks the compatibility of a given schema against a set of previously-observed operations using the trace warehouse, operation registry, and (typically) the client registry.
Safelisting: Apollo provides an end-to-end mechanism for safelisting known clients and queries, a recommended best practice that limits production use of a GraphQL API to specific pre-arranged operations.
To read the full announcement check out Apollo’s official announcement.