GraphQL is seeing rapid adoption in the JavaScript community. In part, thanks to an excellent reference implementation written in Node.js (graphql-js). Yet there are still many challenges to operating a GraphQL API in production and few real world examples of how to tackle them. Newcomers are often on their own for concerns such as:
- Authorization and authentication - Extending built in types - Sharing field definitions - Deciding between Union and Interface types - Custom default resolvers - Project structure and organization
In this talk I'll discuss why Bustle rewrote our entire backend in GraphQL and how we solved these challenges along the way. I will also be open sourcing code extracted from our production GraphQL backend.