Production Ready GraphQL with Marc-André Giroux

There aren’t many great resources for learning about GraphQL API design or running a GraphQL server. Most of what I’ve learned on both of those fronts has come from experience and talking with other people with lots of experience building and maintaining GraphQL APIs. Naturally, when I see someone putting out good content on these … [Read more…]

Namespaced GraphQL Mutations: It’s A Trap

It was probably a couple of years ago now that I first heard the idea. A random blog post that I stumbled across; someone who was new to GraphQL and had a wild idea that they were exploring. The idea? Namespacing your mutations. Since then, I’ve seen it touted as a “good idea” and even … [Read more…]

How is GraphQL “Versionless”?

One of the more underrated benefits of GraphQL that gets glossed over a bit I think is that GraphQL is versionless. It’s one of those things that we don’t really think about a whole lot - we sort of take it for granted that we have to version. But what if we didn’t? The amount … [Read more…]

A $300 Billion Question

Earlier this week, I was at API World in San Jose to give a talk about how GraphQL can help solve the problem of enterprise sprawl, based somewhat loosely on this blog post from a while back. It was a really great experience and I loved getting the opportunity to share my thoughts on the … [Read more…]

Sharing Input Types in GraphQL is a Bad Idea

I don’t tend to think it’s a good idea to share input types between different mutations. “But wait,” you might say, “that seems like it would be helpful in reducing boilerplate between create/update variations that are identical - why would it be a bad idea?” I’m so glad you asked. The main reason for this … [Read more…]

Does the GraphQL Spec Contradict Itself?

The other day, I saw an interesting question come up from someone who was new to GraphQL and reading the spec. It was one of those things that made me realize that it could be a point of confusion for many people who are not yet deeply familiar with GraphQL, and I thought it was … [Read more…]

Transactions, Mutations, and GraphQL

The other day I found myself reflecting on mutations, and one of the common complaints about them: there’s no way to run multiple mutations inside a transaction. To begin, let me outline the problem. Most people eventually run into a situation where you’re performing multiple actions that should either all succeed or all fail. The classic … [Read more…]

Beware of Complex Filtering in GraphQL

When something new and powerful that enables a different paradigm for working with and seeing something, people can sometimes take it to far and go overboard with it. This can be seen clearly in adoption of new technologies, as well as new programming patterns. I know I sometimes have a habit of learning some new … [Read more…]

Secure By Default

How long has it been since the last “biggest security breach in history” that “affected millions of users”? It seems like every other week another company is making headlines with this kind of stuff. Everyone talks about “security”, but it seems like very few pieces of software are actually “secure”. How many times have you … [Read more…]

With Great Power…

… comes great responsibility. These words are often quoted in reference to some situation where a person in power could easily cause severe consequences by misusing their power. So how does this relate to GraphQL? It’s amazing the kind of power that you can coax out of GraphQL. The benefits are quite impressive and extensive, … [Read more…]