2 min read

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:

Apollo GraphQL

Source: Apollo GraphQL

The Apollo GraphQL platform consists of the following components:

Core open source components

  • Apollo Server: It is a JavaScript GraphQL server used to define a schema and a set of resolvers that implement each part of that schema. It supports AWS Lambda and other serverless environments.
  • 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.

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.

Apollo Gateway

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.

Workflows

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.

Read Next

Apollo 11 source code: A small step for a woman, and a huge leap for ‘software engineering’

7 reasons to choose GraphQL APIs over REST for building your APIs

Baidu open sources ApolloScape and collaborates with Berkeley DeepDrive to further machine learning in automotives