GraphQL
(
)
https://graphql.org/ GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools. GraphQL is a mature and approachable solution to the problem of connecting modern apps to data services. GraphQL, on its own, helps to address the problems of over-fetching and under-fetching that exist with traditional REST APIs. However, by implementing a GraphQL interface with resolvers, you still suffer from the pains of the N+1 problem, and you are implementing your graph in your service tier. If you have a database that supports a graph model, instead of implementing your graph in the service tier, is it instead possible to perform the graph traversals on the database as close to the data as possible for maximum query efficiency and increased developer productivity? While looking for a way to combine the flexibility of GraphQL with the power of a multi-model database using the Spring stack as the basis for future state core enterprise data services, Colin created a small library that would ultimately mature to be the open-source ArangoDB GraphQL Spring Boot Starter project, with a v1 dropping in August 2019.