After the completion of a successful beta program, we’re excited to announce that Gloo GraphQL is moving to GA status. We appreciate everyone that has been adopting the technology, and we’re equally grateful for all of the feedback on areas to improve.
When our Gloo Edge and Gloo Mesh Gateway customers first started bringing their GraphQL use cases to our attention, they highlighted several areas that were challenging for them.
- Battling the increased operational overhead of managing additional GraphQL server/framework deployments for every GraphQL API.
- Establishing a common operational model and shared ownership boundaries across platform, frontend, and backend development teams.
- Maintaining a consistent approach to availability, security, and resiliency across all components of their platform architecture.
Based on this experience, we saw a unique opportunity to build on the robust foundations of Envoy and Istio to incorporate GraphQL as a first class concern in the application network.
What is Gloo GraphQL?
Solo.io knows Envoy Proxy inside and out. We enhance and create new Envoy filters to help our customers make the best use of Envoy in their platform. When we think about GraphQL from an application networking standpoint, we consider it to be an additional protocol layer (let’s call it Layer 7+) that Envoy can be enhanced to understand natively. We have implemented a full-featured GraphQL server component as an Envoy filter to support everything you need in GraphQL directly in the proxy layer.
This results in a drastically simplified and optimized platform architecture that consolidates GraphQL and Application Network considerations into a single component in your architecture: the proxy.
Gloo GraphQL benefits
I’d like to take a moment to highlight the key benefits to GraphQL users in this release and provide some insight into the exciting things our team is working on next.
Building upon a proven, scalable, security platform: Gloo GraphQL takes all the lessons we’ve learned about building scalable API management (using Gloo Edge), with some of the largest deployments in the world, and extends that to Gloo GraphQL. Leveraging the scalability and flexibility of Envoy Proxy, enabling it to run in any private or public cloud environment, and bringing all the cloud-native best-practices (Kubernetes, GitOps, DevOps) enables Gloo GraphQL to take on your most challenging GraphQL environments.
Simplifying data access at the platform layer: The Gloo GraphQL implementation of a full GraphQL server as a native Envoy filter allows users to create GraphQL APIs anywhere they have a proxy.
- Using declarative configuration, platform and application teams can build GraphQL APIs from existing gRPC and REST services without the overhead of separate GraphQL server or framework deployments.
- This approach pairs naturally with GitOps practices used for the rest of your platform resources, ensuring predictable and repeatable behavior across all your environments.
Secure, resilient, and scalable: Building GraphQL APIs with Gloo GraphQL leverages the most advanced API gateway and proxy technologies available in the market.
- Scalable, production-ready features for transport-layer security, JWT, OIDC, OAuth, WAF, data loss prevention, query depth protection, and a wealth of other security features to secure your GraphQL APIs.
- Built-in support for detailed GraphQL metrics integrated with Prometheus and Grafana to monitor your GraphQL APIs.
- DataLoader-style resolver caching, Edge CDN-compatible persisted queries, and response caching to optimize the performance of your GraphQL APIs.
Accelerating development with a GraphQL toolchain: Our goal is not just to be the best GraphQL runtime – we aim to be the best end-to-end GraphQL solution in the market. To realize that goal, we have invested heavily in the development toolchain around creating, discovering and interacting with GraphQL APIs.
- At the center of this toolchain is our new GraphQL UI and schema registry that supports the ability to create and configure GraphQL directly within the Edge UI without writing a line of code.
- Change management controls allow you to implement policies for how to handle compatible and incompatible changes to your graph.
- Mock resolvers and automatic generation of GraphQL APIs from existing REST and gRPC services allow you to create instant GraphQL APIs to accelerate front end development workflows.
Building unified data graphs: The introduction of schema stitching in this release brings the ability to federate multiple subgraphs into a single unified graph for your organization.
- The ability to create monolithic or federated GraphQL APIs using a single declarative configuration approach supports an incremental approach to GraphQL adoption while remaining consistent and familiar as you scale from basic monolithic APIs to multi-cluster federated graphs.
- Schema stitching is available as a beta feature in this release.
What’s next
We packed a ton of features into this GA, but we’re just getting warmed up. Here are some highlights of where we’re going next:
- Schema stitching will transition to a fully supported feature in our next release along with the ability to unify subgraphs implemented in other GraphQL frameworks.
- Support for GraphQL within Gloo Mesh for north-south and east-west traffic in an Istio service mesh. We leverage the same core GraphQL filter implementation in Envoy here while taking advantage of the unique control plane characteristics of Gloo Mesh. Examples include the ability to perform multi-cluster composition, graph management using workspaces, and the ability to inject GraphQL data plane features in client and destination sidecars.
- The ability to leverage Web Assembly (WASM) to extend existing GraphQL resolvers and create entirely new custom resolvers.
- Deeper integration with existing Envoy filters for additional GraphQL capabilities, including:
- Distributed tracing support to analyze GraphQL requests through all stages of the request lifecycle.
- Enhanced rate limiting support to compute query cost based on static hints and real-time latency metrics for upstream APIs.
Get started with Gloo GraphQL
Interested in learning more or getting hands on to start building your own GraphQL APIs? Here are some great ways to get started:
- Attend a GraphQL workshop as part of Solo Academy. We’ll be hosting these on a regular basis across timezones, so keep an eye on the Solo.io events calendar for a session.
- Jump right in with Gloo GraphQL by requesting a trial and getting hands on immediately to build your own GraphQL APIs.
- Review our sessions at SoloCon2022 to get the full background and details on GraphQL support in Gloo Edge.
- Check out the docs!