GraphQL API Specification Moving Forward With Independent Foundation

The open-source GraphQL specification was originally developed by Facebook as an alternative to REST, providing organizations with a new way to enable more complex and dynamic data-driven APIs.

GraphQL

The Linux Foundation announced on Nov. 6 that it is forming a new foundation to support the open-source GraphQL specification, which enables a new generation of APIs.

For nearly two decades, REST (Representational State Transfer) has been one of the primary approaches for enabling APIs that help to connect and extend applications and web services. REST, however, has multiple limitations, which is where GraphQL steps into the picture, finding wide adoption by large web properties. GraphQL was created in 2012 by Facebook and became open source in 2015. The move to create a new vendor-neutral independent foundation under the Linux Foundation will help further advance the development of GraphQL.

"The GraphQL project started in 2012 is an internal project at Facebook originally for the newsfeed API, for what would become the new version of the iOS (Facebook) app," Lee Byron, co-creator of GraphQL, told eWEEK. "If you remember back in 2012, the Facebook mobile apps were pretty bad and we rebuilt them, and GraphQL was the big piece of that rebuild effort."

GraphQL in 2018 is widely used beyond Facebook by web properties including GitHub, Shopify, Twitter and Airbnb, among others.

"So right about now is when GraphQL has been a community project for at least as long as, if not longer than, it was an internal Facebook project, which I think is actually pretty interesting that now we're talking about this next step of creating a GraphQL foundation and creating a neutral space for the community that's grown over the last three years," Byron said.

The GraphQL Specification

Byron explained that GraphQL at the outset was the embodiment of some of the best ideas from Facebook's product infrastructure.

"The actual deliverable of GraphQL, the thing that everybody references, is not actually a piece of software; it's the specification," he said. 

Byron added that Facebook has its own implementation of the GraphQL specification that is written in Facebook's Hack programming language, which is a dialect of the PHP programming language. He noted that there are many other implementations of GraphQL in other languages, including JavaScript, Go, Python and Ruby.

GraphQL vs. REST

While some have labelled GraphQL as a REST killer, Byron has a different viewpoint.

"There's actually plenty of cases I have found where people use REST and GraphQL together," he said. "They're not mutually incompatible, but they do help solve similar problems."

While REST and GraphQL solve similar problems, Byron explained that there are areas where GraphQL excels and is particularly well-suited.

"GraphQL is a fit for products that have complex interrelated data, and especially data that changes based on particular moments in time and really dynamic data," he said. "I think that use case covers the vast majority of products that are out there these days, and that's part of the reason why GraphQL has gotten such attention over the last three years."

Byron said that Facebook did originally try to build its Newsfeed API with REST and it didn't work. He noted that the main thing that led Facebook to build something new was nested interrelated data. 

Linux Foundation

The Linux Foundation has become a home to many open-source foundations and projects in recent years, including the Cloud Native Computing Foundation (CNCF) and the Node.js foundation. The Linux Foundation is also home to the Open Compute Initiative (OCI) effort, which defines specifications for container platforms. 

"I would say that GraphQL will be similar in spirit to OCI," Chris Aniszczyk, vice president of developer relations at the Linux Foundation, told eWEEK.

Aniszczyk explained that the governance model of the GraphQL Foundation will be under discussion in the coming weeks as the group gets organized and develops a formal charter.

"What's interesting is that there's a lot of end users compared to vendors for GraphQL, so it's going to be, from my perspective, a fascinating way to set up a governance structure to ensure that end users have a voice in things," Aniszczyk said. "I want to see GraphQL have a long and neutral life, and we're happy to provide that. "

Sean Michael Kerner is a senior editor at eWEEK and InternetNews.com. Follow him on Twitter @TechJournalist.

Sean Michael Kerner

Sean Michael Kerner

Sean Michael Kerner is an Internet consultant, strategist, and contributor to several leading IT business web sites.