Whether you’ve heard of GraphQL or not, it’s certainly not a technology to be ignored. There’s been a lot of buzz around GraphQL recently.

What is GraphQL?

GraphQL is essentially a query language for your APIs. This fundamentally means that your web or mobile clients can dictate the data it wants. This makes it easier to evolve the APIs over a period of time as your application grows.

Who uses GraphQL?

Facebook, which itself is the author of GraphQL uses it extensively since their product codebase has grown huge and it’s hard to maintain and manage the versioning of the APIs of such a huge codebase. Another example is Github, Github has substantially realised the advantages GraphQL gives and has been using it since.

What’s in it for developers?

The major advantage that it gives to the developers is the access and control over the data on the client side itself.

A vast amount of time in app’s development lifecycle goes into communication between a backend team and the frontend team. this also means an increase in the communication gap between developers over a period of time, resulting in poor app quality.

GraphQL let’s you describe the data at the backend, where you can specify what data interfaces to publish. Along with that there are multiple community-supported SDKs like Apollo client / Relay for client side development, so that the client’s can dictate the data it requires in order to achieve a functionality rather than being dependent on what API provides. This also ensures that the functional results are predictable.

Last but not the least, what’s in it for app based entrepreneurs?

Great Performance

Since the app only consumes the data that it actually requires, it saves a lot of backend calls which results in reduced time in fetching, quicker results and increased performance.

Less Data Consumption

The users of the app also gets relived on the data consumption part due to app’s ability to consume only that which is needed for a specific functionality.

Maintainability

The major benefit GraphQL gives to the app owner’s is it’s maintainability. Since the frontend developers knows from where, how and what to fetch, it becomes significantly easy for the owners to maintain optimum resources.

This leaves certain people with a reluctant feeling of, “No I need my own custom APIs for specific functionality”. Well that’s the best part. You can always write your own APIs and have it consumed with your own custom implementation along with GraphQL 🙂