
يحب المبرمجون القصص الجيدة ، لذلك آمل أن تكون الرحلة التي تستغرق خمس سنوات إلى واجهة برمجة تطبيقات مركبة باستخدام GraphQL في بيئة إنتاج (في ذروة 110 طلبًا في الثانية عند زمن انتقال 100 مللي ثانية) ممتعة.
[إذا كنت تسرع ، proskrolte أدناه للدروس وإلقاء نظرة على المصدر المفتوح graphql-schema-Registry ]

مهمة
, Pipedrive ( 2020 10 ), REST API . /users/self, , , 30 . PHP , . , .

, .
, graphql.
3-4 , , , - - elixir graphql. MySQL Pipedrive /graphql.
, , - CRUD, .
2019, , GraphQL stitching graphql-compose REST API. , , - graphql .
:
. dataloader', N+1 . - .
. , , . - - , - .
, POST gateway .
graphql - . , Protobuf Thrift, GRPC, OData.
, graphql (insights, teams) , ( User). typescript + relay , .
.
, - API ? ? Gateway - ? .
, - , - . Confluent’s schema-registry Atlassian’s Braid, , Java, .
3 :

:

schema-registry , , (swagger, typescript, graphql, avro, proto). .
Gateway schema-registry . frontend autocomplete .
, graphql , , .
/users/self - ? (!). - , .
( 2020), - 13% 25% (- ), UI Datadog.
, - REST.
- ( 600+ ), - . IOS- Android- graphql .
60 , -
Apollo studio . gateway.

, - , - . opensource - graphql-schema-registry.
graphql gateway . , gateway .
, gateway , - . Apollo studio - .
, ( -) . . Gateway schema-registry /schema/compose , .
schema-registry ,


REST Graphql API, , REST.
REST
REST graphql, openapi-to-graphql, .

- , , ? REST .
, REST API , .

REST API . , - deal.pipeline_id. graphql, ,
json-. , REST _, .

CQRS
Pipedrive TTL-.
, , . , . 3 .
- PHP-, nodejs ( monograph), memcached. -. , .

CQRS pattern. , 80% .

- . , - . - , identity. .
Identity , kafka, monograph . , ( 1 ), . , - .
APM - . Datadog .
, 30 memcached. . memcached 10, , 220. , - mcrouter. , 20 .
- , getMulti . resolver' , 5 debounce .

. graphql gateway . , .

28 30 , 500, .
graphql , /graphql . 3-5 , ( debounce FE )
, - (APM) tracing:true, .

700 300 . , ( performance.now()), .
graphql gateway Chrome DevTools, , .
, graphql . /graphql ( vendors.js) . , - - .
- graphql gql . bundle, fetch. , - - . server-side-rendering service workers .
graphql , . , , rate limit .
graphql-cost-analysis , , - , , ( , , CPU, ). gateway schema-registry. .
js/typescript . graphql .
koa-graphql apollo-server-koa GraphQLSchema . apollo/server :
buildFederatedSchema([{typeDefs, resolvers}]), , gql , schema.graphql , , ASTNode ( parse / buildASTSchema)
canary
- .
, graphql 100 -"". 1000 , 1%, 10%, 30%, 50% .
company ID . , - , graphql . - graphql .
, , ( ), .
- graphql , - , , . - .
graphql API , API. OAuth ( ) .
schema-registry , gateway - , , , (persisted query), .
, go, - GRPC - , graphql , gateway. GRPC - , graphql msgpack?
بالنسبة للعالم الخارجي ، آمل أن تسرع Apollo مع مشروع Constellation الخاص بها في معالجة طلب Rust بحيث لا تكون ضريبة الأداء هذه بنسبة 10٪ موجودة وستكون قادرة على توحيد خدمات الرسم البياني دون تغييرات كبيرة على الأخير.
بشكل عام ، وقت رائع للاستمتاع بالتطوير حيث يوجد الكثير من التعقيد!