1、gRPC Migration Automation at LinkedInKarthik RamgopalMin ChenDeveloped in early-mid 2010s and open sourced with minimal non-maintenance investment since introductionRESTful service architecture at scaleRest.li is the main RPC mechanism and protocol used at LinkedinBetween microservices Between our w
2、eb/mobile apps and frontend API servicesExternalized APIs for partner integrationsPowers 50k endpoints in productionBackgroundServer5 5Rest.li OverviewData Schema(PDL)1 1Resource Class sResource ClassResource Class3 3Client7 7Record Template2 2Generated4 4REST IDL(JSON)Generated6 6Type-Safe RequestB
3、uildersGeneratedHuman Readable DocumentationGenerated8 8Gaps in Rest.liNo support for streaming,deferred responses or deadlinesExcessive use of reflection,string interpolation,URI encodingService stubs declared as java classesPoor support for non-java servers/clientsPoor adoption and community suppo
4、rt in Open SourceWhy gRPCExcessive use of reflection,string interpolation,URI encodingService stubs declared as java classesPoor support for non-java servers/clientsPoor adoption and community support in Open SourceSupports bi-di streaming,deferred responses and deadlinesWhy gRPCPoor support for non
5、-java servers/clientsPoor adoption and community support in Open SourceService stubs declared as java classesSupports bi-di streaming,deferred responses and deadlinesExcellent out of the box performanceWhy gRPCPoor support for non-java servers/clientsPoor adoption and community support in Open Sourc
6、eSupports bi-di streaming,deferred responses and deadlinesExcellent out of the box performanceDeclarative service stubsWhy gRPCPoor adoption and community support in Open SourceSupports bi-di streaming,deferred responses and deadlinesExcellent out of the box performanceDeclarative service stubsOut o