Debugging GraphQL N+1 Issues with Open Source Tracing Tools(kickstage.com) |
Debugging GraphQL N+1 Issues with Open Source Tracing Tools(kickstage.com) |
But from this it sounds like that's something you have to detect and code for directly... which we'd have happily done in the existing code anyway?
People who complain about GraphQL having a lot of N+1s are complaining about their lack of fundamental knowledge. You can build a GraphQL with minimal N+1s and you can build a “standard” API with loads of N+1s
> one of the reasons I was told it was great was because it solves/avoids the n+1 problem
So, the thing about GraphQL is that it's a _specification_, in the same way that REST or gRPC are specifications.There's nothing inherent in either GraphQL or REST that admits or prevents the N+1 problem. You have endpoints with business logic (or in GQL's case, "resolvers") and there's no telling what's inside of those methods code.
It's true that GraphQL was built to integrate with tools like a "Dataloader" to solve "N+1", but you could just as validly be using a Dataloader in your REST or gRPC API endpoints.
MySQL isn't invited to the party however. Just Postgres.
They are a solution, but not necessarily a good one. And GraphQL doesn't lend itself to goos solutions.
In addition, we've deployed all the required infrastructure like an OTEL Collector and OTEL backend using Clickhouse to offer a managed end-to-end solution including dashboard for traces and a trace overview. A live demo can be found here (sign up for free into the demo org): https://cloud.wundergraph.com/wundergraph-demo/apollo-federa...
So I think 1+1 (or 1+N/batch size) is still correct.