Like I said at the beginning of the talk, gradually and distributed, you can use GraphQL merging and remote sources without a complete buying into a specific product. In order to dive deeper into that, I won't do that today, unfortunately, because I have more things to mention, but I think you should really check out this repository by Greg, schema stitching demos. What's happening there is that there you can actually see demos of the latest schema stitching. Well, first of all, side by side with some demos from Apollo Federation to compare. Secondly, you can see things there, like how to use subscriptions with schema stitching and also how to live reload specific services into your gateway. If they're releasing new version and how you can leave the gateway and live reload other things into it. So, it's very, very interesting and we keep, like all of our other tools, we're slowly and gradually improving it. And we want your feedback as well.
Now, like I said, gradually and distributively. Now, once we have all the things that I just mentioned, meaning we can take different sources, GraphQL or not, convert them into GraphQL, then merge them together using Apollo Federation or Schemas stitching. And now we have this central place that we can query and with one graph, right? But the thing is, we also care about distributed. So, it's not...we think that you could get all those benefits, get those one graph, get all those things together, but then, instead of making you run everything through one central gateway or one central point that might be a point of failure, with GraphQL Mesh and schema stitching, you could actually get all those different services, introspect them. And then also, instead of just creating a gateway, you can actually generate SDKs. So now, each service can query directly all those different services, that's why it's called GraphQL Mesh, because it can be a mesh of services and those SDKs could sit on your data processing layer, or data processing service on your gateway and even on the client. So you could get this one graph experience, but you don't have to run all of those through essential place.
Now, and you know, just to give you an example of how we use it sometimes, taking all that power, but using it in a very simple use case to start with, you have today resolvers. You already wrote a regular GraphQL server, you have resolvers. Hopefully, if you're using TypeScript, you generated the inputs and the outputs of those resolvers using GraphQL code generator. But then when you call the remote services, it's not typed, you call the same old REST endpoint. You don't have types and you can query that. But if we take all the power that I just mentioned, and but generated into a simple SDK will can get all those types and actually get a powerful SDK that can query all the services in our ecosystem. And that's actually the most popular use case that we see today for GraphQL Mesh. It can be a very powerful gateway, but it can also be just a much better data source for you. So you can just integrate it today into your existing GraphQL services. So that's the beauty and the power of having something that has all the knowledge, all the power of everything I mentioned, but can just be compiled into an SDK.
Now, in order to have that SDK, we need to, somewhere, but still have it being distributed, where would we save all those information, all the schemas from all those different sources. That's the problem that is missing here. And so we want the distributed GraphQL, but we also wanted one-graph information. How do we do that? The answer is simple. We just need the registry.
Comments