Stickers, made with GraphQL

Loren Sands-Ramshaw
The GraphQL Guide
Published in
2 min readOct 11, 2018

We interviewed David North and Marco Lisci, Sticker Mule’s VP and Director of Engineering. They’ve been using GraphQL as their production API gateway for a year, and they shared with us their experience and advice 🔮

How do you use GraphQL at Sticker Mule?

We use GraphQL for our API gateway, which provides a single endpoint through which our front-end code can fetch data from multiple services. The gateway fetches the data to resolve queries using gRPC.

What GraphQL libraries do you use?

The gateway is Node — we use express-graphql. And we use Apollo Client in our single-page applications. Recently we also started using GatsbyJS, which depends on GraphQL for all data fetching.

How did you decide to adopt GraphQL?

We initially tried GraphQL while extracting a major service from our monolith. The reason for the choice was that this service’s API would have many different clients, each with very different data requirements. By exposing everything over GraphQL, those clients can choose to fetch only what they need. It was later that we realized the greater potential for GraphQL as our gateway interface, where it would allow us to model all our services and their relationships as a single graph, and allow the gateway’s clients to fetch data from multiple services with a single request.

How did your team learn GraphQL?

We started by reading the official spec, tutorials, and blog posts. Reading the book now is a breath of fresh air — everything is condensed and structured in a single resource.

What wishes do you have for GraphQL?

An interesting issue we’re facing with our gateway is that with the single GraphQL endpoint for all queries, it’s very hard to have specific rate limiting, filtering, and monitoring. This might lead to clients asking for complex data that translates into a non-optimized query in backend services.

What advice do you have for others adopting GraphQL?

Establish a comprehensive standard style for your schema before you start implementing too much of it to avoid inconsistency as it grows.

Are you hiring? 😄

We are indeed! Here’s our careers page ☺️

Thanks David and Marco for sharing your experience! Regarding your wishes, we recommend Apollo Server — it should be pretty painless to switch from express-graphql, and it has a couple of things that would help you. Since you don’t have a public API (the clients you build are the only ones using it), you can set up query whitelisting. (Public APIs can do something like Github does, calculating the cost of each query.) And for monitoring a GraphQL API, Apollo Engine is the best tool out there!

--

--