It seems that GraphQL forces us to use a monolithic architecture. Single graph equals a single backend service, doesn't it? Let's see that it is not true and what we can do with that.
scalar _FieldSet # a union of all types that use the @key directive union _Entity type _Service { sdl: String } extend type Query { _entities(representations: [_Any!]!): [_Entity]! _service: _Service! } directive @external on FIELD_DEFINITION directive @requires(fields: _FieldSet!) on FIELD_DEFINITION directive @provides(fields: _FieldSet!) on FIELD_DEFINITION directive @key(fields: _FieldSet!) on OBJECT | INTERFACE directive @extends on OBJECT | INTERFACE
distributed graph ❓ Grained control over the final schema ✅ Does not require boilerplate code ✅ Declarative management ✅ Stimulates conventions, standards 58