Petra Gulicher - Web Developer

A GraphQL Survival Kit

Presented at ReactConfAU 2020

GraphQL lets us model our business domain as a graph, but what does that mean? What are the tools we need to design a model that works for our business, products and users both now and into the future? Let's take a deep dive into the language, concepts and building blocks of a successful domain graph, and learn how to how to shape your React architecture with GraphQL for better developer experience, easier scaling and faster iterations on your user experience.

Inspiration

This presentation was pulled together off the back of my own learning and experience as well as a wealth of knowledge in the community.

This list is not exhaustive, but I hope it captures some of the principles inspiring my ideas.

The tree is executed breadth-first, meaning user must be resolved before its children name and email are executed. If the user resolver is asynchronous, the user branch delays until its resolved.

This means that the schema is not only a scope contract, but also the authoritative source of structure and meaning of the context covered by the API.

To build a good schema, examine the everyday language you use to describe your business.

With GraphQL, you model your business domain as a graph ... to build a good schema, examine the everyday language you use to describe your business.

Don't reinvent the wheel, use fantastic wheels, hashed out by experts, that solve problems you hadn't even considered yet.

The trade-off, though, is that a uniform interface degrades efficiency, since information is transferred in a standardized form rather than one which is specific to an application's needs. The REST interface is designed to be efficient for large-grain hypermedia data transfer, optimizing for the common case of the Web, but resulting in an interface that is not optimal for other forms of architectural interaction ...