A majority of web sites are SPAs, built either with Angular, Vue, React or any other framework. My personal preference is Angular but this is not the case of this topic :)
Apart from the web sites, a lot of mobile applications are hybrid built with frameworks such as Ionic.
All of them require a back-end system that handles the database calls, the heavy data processing/manipulation etc. How does the Client app (SPA or hybrid) communicates with the Server App (back-end)? I bet that the first thing that arises in your mind is the REST. And yup! You are right. This is not the only solution though. There are other solutions that you should consider.
From the title of this post, you can imagine what the solution I am talking about is :). GraphQL.
Let's see what this is and how we can use it.