What is GraphQL?
GraphQL is a query language for your APIs with a server for fulfilling queries from your user interfaces. GraphQL provides a more powerful and flexible alternative to REST for pulling data from your microservices.
GraphQL enables declarative data fetching where a client specifies exactly what data it needs from an API and underlying services. Instead of multiple endpoints that return fixed data structures, a GraphQL server only exposes a single endpoint and responds with precisely the data a client requested.
The declarative model creates a consistent, predictable API. Even as your backend services and data sources change, the API doesn’t change from the client’s perspective.
Bringing GraphQL to Istio and Envoy Proxy
Solo.io’s GraphQL extension embeds a GraphQL server natively into Gloo Mesh and Gloo Edge enabling federated GraphQL queries of your APIs using your service mesh and API gateways. No additional GraphQL servers required!
GraphQL meets Istio and Envoy
Combine the developer-friendly GraphQL query language for APIs with Istio’s ability to secure, manage, and observe application traffic across microservices. This eliminates the need for a distinct system of servers and schema libraries of parsers and resolvers for GraphQL; all of your policies and requests can be managed in Envoy Proxy filters.
Performance, Scalability & Reliability
Solo.io’s GraphQL extension leverages Envoy for its network performance and minimal footprint, and it scales independently of your services. Run GraphQL as federated filters in Envoy sidecars efficiently handling the queries, directing the data requests to the appropriate microservices, and coordinating responses. You can automatically leverage Gloo’s infrastructure for routing, rate limiting, load balancing, and global failover.
Monitoring & Tracing
Monitor GraphQL requests from HTTP endpoints, per query, per resolver or data-loader, or via tracing with a tracing-ID tagged to your query. Easily observe your operation’s resolver to understand performance and debug issues. Export metrics with Prometheus and Grafana.
Manage GraphQL lifecycle and collaborate across teams
Store GraphQL schemas as code, observe usage and publish information, and manage schema and server changes in Gloo Portal. With the Gloo Portal developer portal this makes GitOps and CI/CD approaches easier than ever.
Security, Authentication and Authorization
GraphQL simplifies developer access to APIs, but what about the underlying authorization and authentication for data and services? Gloo Mesh and Gloo Edge offer comprehensive security capabilities, providing safe and granular role-based access to data.
FEDERATION AND RBAC
- For Producers
- For Consumers
- For Platform Operators
- Provide a unified endpoint for accessing all your services and data
- Seamlessly provide caching, security, rate-limiting, and RBAC capabilities to your API
- Use YAML to define the behavior of your GraphQL API, no code
- Evolve your APIs without worrying about versions or breaking clients
- Leverage GraphQL for service-to-service communication, not just for clients
- GraphQL provides a complete and understandable description of the data in an API
- Clients can ask for exactly what they need and efficiently receive just that
- Retrieve the data with requests to one API endpoint vs. mapping queries to multiple services
- Automatically aggregate, join, and transform data responses
- Use GraphQL alongside an Istio-native developer portal for GitOps and CI/CD
- Don’t need to build an extra layer of GraphQL servers or manage libraries
- Leverage your existing scalable and secure Envoy and Istio infrastructure
- Deliver GraphQL consistently and reliably to all your developers
- Monitor performance and troubleshoot issues with deep observability
- Use built-in advanced security capabilities to protect sensitive application data