Please log in to watch this conference skillscast.
As many of you know GraphQL has replaced REST API. You have adopted GraphQL to build your platforms service using GraphQL.
Since you were in your earlier stages, all the different vertical features were built together into a monolithic server. This was good to get our different features out in start, but as the company grew and your user base increased, you started developing lot of new features as graphql sub-modules to be attached into MONO graphql server.
Apollo - Major contributors of graphql did not have any platform functionality where you could split your submodules into graphql micorservices and have it delegated. Apollo then came up with Remote schema architecture where you can delegate a request to remote service along with the schema and the Graphql query will be resolved. But that did not serve our purpose as we had lot of common types that was shared between services too. So they decided to write their own GraphQl gateway service and create a Graphql framework that our submodules can migrate to as microservices. This increased the number of hops and did add about 150-200ms at 95 percentile, but then they implemented caching mechanisms using memcache to reduce the latency to an acceptable value.
YOU MAY ALSO LIKE:
Lightning Talk: Distributed GraphQL for Enterprise Systems
Siddharth works as a Senior Software Engineer for a mid-sized company called Credit Karma based out of San Francisco. He works with Platform engineering team focussed on developing API Frameworks for his company. Node/Typescript, GraphQL, GraphDB, caching etc are some of the technologies his primarily focus.