In this series of blog posts we share Moonpig’s journey to start using GraphQL. In part 1 we talked about why we decided to use GraphQL. In this part we will tell you about how we created a GraphQL Gateway to allow multiple teams to contribute to the Moonpig graph, while still allowing each team to work independently.

The monolithic GraphQL API

A common way of implementing a GraphQL API is to have a single GraphQL server with a single schema and many resolvers. The resolvers will point to data sources (other APIs, databases etc.) that are developed by different teams. To manage this API you have a couple of options. You could have a dedicated GraphQL team that works closely with the other teams to integrate any required changes. Another option is that all teams are responsible for a part of the GraphQL API, maintaining the schema and resolvers that belong to them. …

Jakob Nordlander

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store