What is our primary use case?
Before Apollo GraphOS, we struggled with manual composition, breaking changes in production, no visibility into client usage, and self-hosting the gateway. Since moving to Apollo GraphOS, the big wins I have seen are schema checks and contracts, which let us catch breaking changes in continuous integration now, and the router and observability, which let us finally see which clients use which fields and our P95 latency. We also have federated composition that just works, and no more merge conflicts.
Here is a specific example of how I use Apollo GraphOS in my day-to-day work, in which a team almost broke checkout. At 9:30 AM, the payments team opened a PR to rename order.total to order.totalAmount in their subgraph. At 9:31 AM, the Apollo GraphOS schema check failed in continuous integration. Instead of finding out in production, the check commented right on the PR breaking feed. By 9:35 AM, it was fixed before merge. We saw in Apollo GraphOS Studio that the web checkout had zero downtime, and we shipped the new field, migrating the clients over two weeks while watching the usage metrics in Apollo GraphOS.
Our main use case for moving to Apollo GraphOS in the first place is a federated supergraph for more than 10 teams. Before Apollo GraphOS, we managed composition and the gateway ourselves; every schema publish was a Slack thread and a manual check. Now, Apollo GraphOS is our source of truth, the router pulls the supergraph, composition happens in the cloud, and every subgraph owner can publish independently. The process changed from 'don't break the graph' to 'ship wherever.'
How has it helped my organization?
Apollo GraphOS has been a big net positive for my organization, mainly because it turned our GraphQL from something we had to operate into something we just use. The three biggest impacts are that teams can ship independently without fear of breaking the graph, we finally have client-aware observability, and we shifted to less OPS and more platform. The bottom line is faster shipping, zero breaking changes in production since we adopted it, and real data to safely deprecate fields.
What is most valuable?
The best features Apollo GraphOS offers include Federation Subgraph, Schema Registry, Schema Checks, Usage Insights, Observability, Apollo Explorer, Studio, Router performance features, Apollo Connectors for REST, and a new AI plus OPS layer.
Schema Registry and Schema Checks have helped my team, and Usage Insights and Observability make a significant difference. Before Apollo GraphOS, we had zero visibility. If a subgraph was slow, we didn't know who was calling it or why. With Apollo GraphOS Usage Insights, two things changed: safe deprecation, in which we could see that field X was still used by 15% of traffic from the iOS app, and performance debugging. We encountered a P95 spike to 1.8 seconds, and in Apollo GraphOS traces, we saw that one query from web checkout was calling a subgraph 800 times. GraphQL transformed from a black box into precise knowledge about which client, which version, and which field was costing us.
Governance and security are key focuses for us regarding Apollo GraphOS's AI capabilities. The AI capabilities are actually why we recently renewed and upgraded. We started using the Apollo MCP server, which is simple. Instead of letting our LLM agents hit 20 different REST APIs and subgraphs directly and hallucinate fields, we expose our supergraph as a set of governed MCP tools. In Apollo GraphOS, we curated 15 approved operations, such as getting customer orders or searching products, which are the only tools the LLM can call, so we do not expose our entire 4,000 field schema to it. That is huge for governance. For security, we chose Apollo GraphOS over self-hosting because it is SOC 2 Type 2 compliant, we have SSO with Okta SAML, and we have role-based access with four roles. Viewers can only see metrics but cannot publish. The router runs in our VPC, so the data never leaves, and for connectors, the API keys are in Apollo GraphOS secret manager, not in code, giving us security while still ensuring cloud governance.
The accuracy and reliability of Apollo GraphOS's AI output are very good, but not because the AI itself is magical; it is due to governance. Before using the MCP server, our LLM was guessing fields and hallucinating, with maybe 30% of the queries failing because it invented a field that didn't exist. With Apollo GraphOS, we only expose curated, approved operations via the MCP server. We cut down from 4,000 fields to 15 approved tools. Regarding reliability, it has been very reliable; the router is deterministic, ensuring the same output and query plan. The AI doesn't generate GraphQL; it simply picks an approved operation and fills in arguments, leading to high accuracy, around 95%, I think.
What needs improvement?
To improve Apollo GraphOS, I suggest focusing on specific outcomes, reducing incidents, and enhancing performance. If I had to pick one thing to improve, I would pick two small things: first, the local development experience can be a bit heavy, and second, the documentation for new features such as connectors and the MCP server is still catching up.
Regarding needed improvements, I want to add two top insights that real users mentioned: local dev and debugging, router cold start with more than 10 subgraphs, pricing and observability retention, documentation for new features, and small UX improvements in Studio or Explorer.
For how long have I used the solution?
I have been using Apollo GraphOS for over five years.
What do I think about the stability of the solution?
Apollo GraphOS is stable; we had been using a self-hosted Apollo gateway on Node, and managing composition ourselves was painful. We didn't have any managed schema checks, so breaking changes could slip into production. Therefore, I can confidently say it is stable.
What do I think about the scalability of the solution?
Scalability was a significant reason we moved from the Node gateway to Apollo GraphOS, which handles scalability on two sides. On the data plane, the router is Rust-based, which is more efficient than the old Node gateway. On the control plane, Studio and managed federation handle everything for us as we add more subgraphs. Consequently, we haven't hit a limit yet, and adding a new subgraph doesn't impact the existing ones.
How are customer service and support?
We didn't have a deep formal bake-off for customer support since we were already using Apollo Federation and Apollo Server. Our evaluation revolved around Apollo GraphOS versus staying self-hosted on the open-source gateway and building our own registry and checks in-house. Although we looked at other options briefly, we selected Apollo GraphOS because we didn't want to maintain our own federated tooling and desired managed composition via uplink, schema checks included, and Studio's observability ready out of the box. Support has been stable for us; we handle it via Slack and the support portal or account team, and the response time has been really quick, usually within a day for non-urgent matters. The documentation and Apollo community have also been helpful for Rover and router setup.
I would rate customer support an 8 out of 10. We get support via Slack, and the response time is usually within a few hours for urgent requests. They have helped us with issues related to router upgrades, schema check configurations, and federation directives. The documentation is solid too. The reason I don't give it a 10 is that they take some time; while support is knowledgeable when we reach them, the community or Discord documentation has been more helpful for quick questions. Since the product itself is stable, we don't need support all the time.
Which solution did I use previously and why did I switch?
I previously used a different solution before Apollo GraphOS; we had REST microservices with a cluster of BFFs. The front end had to call five APIs, and we switched to Apollo GraphOS to achieve a single supergraph, allowing teams to own their domains, so the frontend now makes just one query.
What was our ROI?
I have seen a return on investment with Apollo GraphOS, mainly regarding engineering time. Before, we managed composition ourselves; now schema checks block breaking changes before production, allowing eight teams to deploy independently, resulting in fewer incidents and less coordination time.
Which other solutions did I evaluate?
Before choosing Apollo GraphOS, I evaluated a couple of options. We considered staying on self-hosted Apollo Gateway with our custom checks and briefly looked at building a schema registry in-house. We also examined other gateways, such as WonderGraph and Azura, at a high level. Ultimately, we chose Apollo GraphOS because we were already deep into Apollo client and Federation V2, making Apollo GraphOS a good fit for managed composition via uplink, schema checks in-situ, and client-aware observability with operation insights ready out of the box, and we didn't want to maintain the infrastructure.
What other advice do I have?
On a scale of 1 to 10, I would rate Apollo GraphOS as a 9 out of 10. It solved our biggest problems: federated development at scale, zero breaking changes in production thanks to schema checks, and real client-aware observability. Previously we managed the gateway ourselves, which was painful. Now, teams ship independently. The one point off is primarily the local dev experience and docs for newer features such as connectors and MCP.
I chose 9 out of 10 specifically because it has been excellent for the core job. We bought Apollo GraphOS for federated supergraph, schema checks, and observability, aspects that I would rate a 10 out of 10. It has eliminated breaking changes in production and enabled eight teams to ship independently, which was our main goal. The reason it is not a 10 is the maturity of some newer areas; specifically, the local development with many subgraphs can be heavy, and cold starts and composition errors aren't always clear for new developers. Additionally, observability retention and pricing for longer trace history could be more flexible, hence nine is honest. Nothing is perfect at 10, and for our daily use, it is as close to perfect as you get.
Apollo GraphOS is deployed in our organization through a hybrid model, where the control plane, which includes Apollo GraphOS Studio, schema registry, composition, schema checks, operation insights, and traces, is all in the public cloud managed by Apollo. We didn't want to manage that ourselves, so it is in the Apollo cloud. However, the data plane, the actual Apollo GraphOS router that serves traffic, we self-host in our private cloud. We run it in AWS EKS within our own VPC, giving us the best of both worlds.
I recommend looking into Apollo GraphOS. For us, the biggest value is not having to maintain our own registry, with managed composition via uplink, schema checks that block breaking changes in PRs, and having Studio's client-aware observability and operation insights all in one place. Transitioning from the Node gateway to the Rust router also improved performance. It is less useful if you only have a single monolithic GraphQL API or one or two developers. The power comes when you have multiple subgraphs and want teams to deploy independently with contracts and safe schema changes. My advice is to start by federating your existing services, get Rover and schema checks into CI early, and self-host the router in your VPC, allowing for managed control while keeping your data plane in your environment.
Which deployment model are you using for this solution?
Hybrid Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Amazon Web Services (AWS)