Agile devops & continuous delivery


Definition of GraphQL

GraphQL is a schema definition language (SDL) and a query and update language (CRUD ops) designed by Facebook in 2012. It deals with the data layer of solutions and has been open source since 2015.

The SDL is designed for gathering the requested attributes exactly, avoiding underfetching and overfetching. It is implemented by different open source runtimes, which efficiently query/update numerous data sources at once.

As a schema-based approach, it enables design time validation.

GraphQL has a ‘subscription’ feature that allows a GraphQL server to notify its clients when a specific event happens.

It is de-facto used over HTTP (although that is not enforced by the standard), and is extended by some commercial products, e.g. Apollo, 8base.

GraphQL example avoiding overfetching and underfetching

GraphQL returning exactly the requested attributes (source)

Technology evaluation

GraphQL is an integration technique and tooling for the data layer of solutions. It is a good and efficient choice for the problems it was written for. Developers can expose APIs with less effort compared to a traditional OpenAPI approach.

Market - current adoption

GraphQL is popular with developers who need to query and update many data sources at once. Overall adoption and popularity is growing, according to the GraphQL Foundation and other sources.

Software AG Integration Server supports GraphQL since Release 10.4

Some public GraphQL APIs exist (Twitter, Github, Deutsche Bahn, …), but there is no broad adoption so far with regard to using GraphQL for public APIs (not even by Facebook).

Market - Outlook

Software AG expects the adoption rate of GraphQL to grow, due to its attractiveness for a certain common set of problems. However, Software AG stays cautious with regard to GraphQL as a standard for publicizing an API.