For some context, currently my organization has a large number of graphql services that are all combined together into a single graph. And we did this before federation was a thing so naturally we are still using schema stitching to combine all of our graphs into a single graph to be consumed by our front ends.
We would like to move this system to a federated system so we have been experimenting and reading Apollo’s super handy schema stitching migration guide.
But after doing some research we came up with some questions.
We recommend that you begin by modifying existing services in place to support the federation specification while continuing to support schema stitching as well. At this point, you can stand up an Apollo gateway side-by-side with your existing stitching gateway and migrate over the links between the services in an incremental, backwards-compatible way.
First question, why is it recommended to stand up two gateways instead of just moving the existing schema stitched gateway to one compatible with Apollo federation?
Second question, since we already have our own schema registry and it would be a heavy lift to move all of our services away from this just to get started with federation is there any way that we can use our own registry on an Apollo gateway instead of Apollo studio?
I had stumbled upon the
experimental_updateServiceDefinitions Option in the Apollo Gateway code and after play around with it for a little bit I was able to get our custom registry to work with Apollo gateway and federation. But the only thing that has me worried is that it doesn’t seem like this is a feature that is guaranteed to be included in future releases.
Sorry for the long post but I am really liking what I am seeing with federation and I am eager to figure out the best path forward to get my organization federated