Introduction

I first learned about GraphQL when Facebook engineers publicly talked about it for the very first time at a React.js conference and I knew I had to try it right away. At the time, I was working on a few data-driven applications that all suffered from the lack of a structured and efficient data API solution. These applications used custom data API endpoints that were created to satisfy the growing data needs of their views in optimal ways. However, it was clear that managing these custom endpoints will eventually become a nightmare. The GraphQL talk beautifully validated these concerns.

Like others who attended that conference, I believed a validation from Facebook on the ideas and concepts behind GraphQL would probably create a game changer in the data API space and be a very good alternative to the problematic REST and ad-hoc API solutions that have been dominating the space before GraphQL. I had a feeling GraphQL would become very popular very fast and this is already happening today.

Learning GraphQL was one of the best time investments I ever made. GraphQL allows me to implement ideas faster and have my projects perform better. Working with GraphQL is simply a lot more pleasant than the alternatives that I had to work with over the years.

GraphQL has many advantages that you will learn about in this , but it also comes with some challenges, especially in the areas of optimization and cache management. I will talk about the challenges as well, but first let me give you a gentle introduction to GraphQL.