Elixir, Phoenix, Absinthe, GraphQL, React, and Apollo
GraphQL inverts this principle — the client sends a query document describing the data it needs (possibly spanning table relationships) and the server returns it all in one request. For example, if I want the homepage to live update every time a new post is created, I might write a post subscription like this:
As you can probably intuit, this tells the server to send me a live update any time a new post is created, and include the post’s ID, body, and timestamp, and its author’s ID, name, and avatar URL. Try sending it the following query to fetch a list of posts with associated data (a slightly trimmed-down version of the hypothetical example above):
Apollo has become one of the most popular GraphQL libraries, both on the server and the client.
Source: schneider.dev