9 Comments
User's avatar
Victoria Cheng's avatar

This is a great intro of GraphQL and straight to the point! Thank you, Petar!

Expand full comment
Michał Poczwardowski's avatar

Thank you Petar, for the comprehensive introduction, including the historical part and focusing on the kind of problems GraphQL promises to solve.

Thank you for placing my article on the ‘worth reading’ list. I appreciate it!

Expand full comment
Petar Ivanov's avatar

I'm glad you liked it! 🙌

Expand full comment
Akash Mukherjee's avatar

Great overview of GraphQL, Petar.

In my career, I've come across multiple situations where we evaluated GraphQL but decided not to go with it for different reasons. A concise summary like this would've helped a lot.

A future post that you might consider is comparing this with gRPC, REST, it'll be a great resource for software engineers.

Expand full comment
Petar Ivanov's avatar

I'm glad you liked it, Akash! 🙌 And yes, I'm thinking of writing a future article comparing it with REST and gRPC.

Expand full comment
Jordan Cutler's avatar

This is an awesome overview of GraphQL, Petar. I read the book https://book.productionreadygraphql.com/ when I was first learning GraphQL and it was a game-changer for me.

I love GraphQL soooo much more than REST. How you can quickly request only the data you need and get typed versions of it is 🔥

Thanks as well for the mention!

Expand full comment
Petar Ivanov's avatar

I'm also a big fan of GraphQL than REST. I'm glad you liked it, Jordan! 🙌

Expand full comment
Fran Soto's avatar

Thanks for sharing this, Petar!

The ability to change the API without breaking clients is a great thing. I'm sure there are limitations there to how much you can change it, but it seems much cleaner than having to do an /v1 or /v2, or having to access the resource from a different URI path.

Looking forward to the next one, I just have a vague memory of the graphql concepts defining the queries and mutations

Expand full comment
Petar Ivanov's avatar

For sure you can't change a lot stuff without breaking the clients but it's much more flexible than REST. For instance, we can easily deprecate one field, and add a new one, without breaking the clients. When the new change is consumed from all clients, we remove the one, without versioning the API.

Thank you, Fran! 🙏

Expand full comment