Apollo Introduces a GraphQL Platform for Shared Data Graphs
GraphQL tooling provider Apollo released a major update to its Apollo Data Graph Platform that enables teams to operate a single shared data graph for the organization, which promises to dramatically improve “application delivery and user experience,” according to the company.
The work follows up on Apollo Federation, an architecture released earlier this year, for building a distributed graph that implements GraphQL in a microservice architecture. Apollo Federation provides “the best of both worlds: a complete schema to connect all of our data with a distributed architecture so teams can own their portion of the graph,” according to a company blog post.
In an interview with The New Stack, Matt DeBergalis, chief technology officer and co-founder of Apollo, explained that the GraphQL API query language has accelerated development teams to provide richly connected data where before they would be preoccupied writing glue code that failed to provide value.
“Companies are facing a challenge around building great digital experience today. The basic conundrum is there’s enormous pressure to deliver high-quality applications on more and more platforms, not just web and mobile, but everything from IoT to the watch to CarPlay to voice and the list grows and grows. These application experiences are connected to more and more data,” said DeBergalis. “What’s driving the rise of GraphQL is fundamentally teams have found that building high-quality applications that are connected to all of this amazing data they have is really slow and difficult because they have to write a ton of plumbing to get all that data onto all the screens. This ends up being all kinds of custom APIs, backends, front-ends, that UI developers have to write and none of it creates any value. Instead of these point-to-point APIs, people have to painstakingly write, teams are able to roll out a data graph.”
While the initial release of the open-source Apollo Federation provided the basic capabilities of a distributed data graph, the latest release adds on a number of features, including validation checks that wired directly into a continuous integration system to ensure against breaking changes and conflicts. Similarly, the updates include managed service deployments that coordinate changes to the shared graph, making sure that it is properly deployed and integrated into CI/CD processes. Finally, the Apollo Data Graph Platform provides analytics into graph performance, so teams can rewrite queries according to performance metrics.
“A data graph brings extraordinary benefits to how fast organizations can build high-quality apps with rich data-driven experience,” said DeBergalis in a statement. “The challenge is operating this new layer without introducing a monolith that creates development chokepoints and central points of failure. That’s why we’re introducing managed federation; the tooling and infrastructure to implement and manage a data graph that’s operated by many different teams working together.”
DeBergalis explained that GraphQL adoption often starts with a single team in an enterprise and then spreads from there. As time goes on, the graph starts to take on more and more roles, becoming a shared asset — this is where the federated graph comes in. With the latest updates to the Apollo Data Graph Platform, developers can own their individual piece of the graph without worrying that they are making breaking changes. While a single graph for an organization offers benefits, it also presents difficulties, and that is what DeBergalis says these updates are intended to handle.
“If we think about at the scale of an enterprise, there comes a point where you need a single graph for your organization, but you need a way to implement a distributed implementation so that there isn’t one giant code base that sits on top of every single service you have and powers every application you have,” said DeBergalis. “The idea of a federated graph is that it’s implemented in parts as a set of GraphQL microservices. That lets us split the graph into separate concerns. In a federated graph, we can compose all that together so that what you end up with is that single universal graph. It gives you all that information really richly connected.”
Feature image by janjf93 from Pixabay.