What is Apollo?

A complete ecosystem for modern API development


Apollo is a comprehensive ecosystem for building, deploying, and scaling APIs. With its federated GraphQL-based approach, Apollo enables data consumers and producers to orchestrate all of their APIs with a single platform.

The Apollo ecosystem includes:

  • The Apollo GraphOS platform

  • Client and server SDKs

  • Developer tools

Apollo GraphOS: The core platform

Apollo GraphOS is a platform for creating, running, and maintaining federated graphs of APIs.

The main components of GraphOS are:

  • The control plane manages the GraphQL schemas that model each API and the composed schema that unifies them into a single graph.

  • The runtime component serves client requests sent to the graph.

  • User interfaces (GUI and CLI) and programmatic APIs.

Control plane

The control plane includes schema management and governance tools to safely evolve GraphQL schemas and deliver them to the runtime component. These tools guarantee consistent API usage patterns across all your applications through centralized schema enforcement and access policies. The control plane also offers an insights suite to analyze and understand your graph's usage and performance.

GraphOS Runtime

The runtime component serves client requests. A crucial part of the graph is the unified endpoint it presents to clients. The Apollo Router is this single entry point.

The router uses its built-in query planner to distribute requests to the appropriate APIs and returns a unified response. Because it's integrated with GraphOS, the router gets a validated composed schema automatically from GraphOS whenever constituent APIs' schemas are updated.

Apollo Federation

The router's ability to work with multiple APIs and coordinate between them is powered by Apollo Federation. This unified graph architecture is what enables the router to present a single cohesive API to clients while orchestrating requests across multiple APIs behind the scenes.

Apollo Connectors

Apollo Connectors allow you to plug your existing REST APIs directly and declaratively into your graph. Apollo Connectors are built on Apollo Federation, extending the same orchestration capabilities to REST APIs that Federation already provides for GraphQL APIs.

User and programmatic interfaces

GraphOS offers a UI, command-line tool, and Platform API to address your organization's needs.

InterfaceDescription
GraphOS StudioGraphOS Studio is the primary web interface for GraphOS. Among other capabilities, you use Studio to create your organization and its supergraphs, view schemas and metrics, and test out operations in the Explorer.
The Rover CLIThe Rover CLI is the primary command-line interface for GraphOS. Among other capabilities, you use Rover to publish subgraph schemas to the registry, run schema checks from CI, and test out your graph within your development environment.
GraphOS Platform APIIf you want to automate your own DevOps workflows and pipelines outside of Studio or Rover, you can use the official GraphOS Platform API to do so.

The wider Apollo ecosystem

Apollo's ecosystem includes several key components beyond GraphOS, including client and server SDKs and other developer tools.

Apollo Client SDKs

  • Apollo Client (for web): A comprehensive state management library for web applications that enables you to manage both local and remote data. Built for use with TypeScript/JavaScript, with a particular focus on React.

  • Apollo iOS: A GraphQL client for native iOS apps written in Swift with robust type safety and caching mechanisms.

  • Apollo Kotlin: A strongly typed GraphQL client that generates Kotlin models for Android, JVM, and Kotlin projects.

This client ecosystem ensures consistent GraphQL experiences across frontend technologies while maintaining idiomatic implementations for each platform's best practices.

Apollo Server

Apollo Server is an open-source, spec-compliant GraphQL server that's compatible with any GraphQL client. It's a production-ready solution for building self-documenting GraphQL APIs that can use data from any source, including gRPC APIs, databases, and third-party services.

Developer tooling

Apollo provides developer tooling to improve the GraphQL development experience. The Apollo Language Server powers the GraphQL extension for VS Code and JetBrains IDEs, offering features like syntax highlighting, validation, autocompletion, and schema navigation.

What Apollo is not

While it's important to understand what Apollo is, it's equally valuable to clarify what Apollo and GraphQL are not.

Apollo vs. GraphQL

  • GraphQL is the query language and specification created by Facebook (now Meta). It defines a way to request and deliver data through a single endpoint.

  • Apollo is a set of tools that provides a complete implementation stack for API orchestration that also supports the GraphQL specification.

Apollo makes it easier to implement and use GraphQL as an abstraction layer in your software.

GraphQL is not a graph database

Despite having "graph" in its name, and the fact that GraphQL APIs are often referred to as graphs, GraphQL is not a graph database. GraphQL works with any data source—including relational databases, NoSQL databases, and REST APIs.

GraphQL is not a replacement for REST

GraphQL and REST represent complementary rather than competing technologies in API architecture. GraphQL serves as an abstraction layer that can enhance REST APIs by providing a unified interface. Apollo Connectors exemplify this integration by offering declarative schema directives that connect REST endpoints to GraphQL fields.

Feedback

Ask Community