GraphcoolDocs
FAQ

The Graphcool Framework

Last updated a day ago Edit this page

An overview of the Graphcool Framework.

The Graphcool Framework is an open-source backend development framework that builds on modern web techologies. Its powerful abstractions allow for rapid development of event-driven, highly scalable and production-ready GraphQL microservices as well as full-blown backend systems.

At the core of Graphcool is an auto-generated GraphQL API providing a convenient abstraction layer for your database. The API comes with CRUD operations and realtime capabilities, it can be easily customized with an API gateway. Business logic and integrations of existing systems are implemented with serverless functions. Out-of-the-box authentication mechanisms and an expressive permission system ensure absolute security for your data.

#A quick history of backend development

#From hardware servers to the cloud

Backend development has undergone tremendous change in the past decades. In the early days of the web, developers and website providers had to buy and manage their own hardware to deploy and run servers on the internet. The movement towards the cloud removed much of that burden and let developers focus on the applications they wanted to build rather than infrastructure to be managed.

Web frameworks like Ruby on Rails, Express.js or Laravel (PHP) bootstrap the development of a web server and further contributed to the productivity of backend developers in the past years.

#Developers still have to manage servers

Even in the cloud, developers still have to manage the servers themselves. These are not running on proprietary hardware any more, instead cloud providers like AWS, Google Cloud or Microsoft Azure offer scalable infrastructures where developers can deploy their software to virtual machines.

But in the end, developers are still managing servers. This comes with many challenges, like scalability, performance and security concerns, that need to be solved repeatedly.

#Serverless enables developers to focus on their application code

The advent of serverless technologies introduces a new era where servers are abstracted away. Serverless functions in particular enable a completely new way to architect backend applications.

The term serverless is a bit misleading. Servers still exist in serverless infrastructures - serverless just means that developers don't have to directly manage them any more. They're abstracted away. Serverless is furthermore characterized by a more effective "pay-as-you-go" cost model where idle servers don't cost anything.

When using serverless functions, developers don't have to implement their own web servers any more that will be deployed to the infrastructure of hosting providers like Heroku or Digital Ocean. Instead, they write code for small units of computation (functions) that are deployed and executed in a scalable runtime environment that's offered by a Functions-as-a-Service (FaaS) provider.

#The Graphcool Framework builds on modern web technologies

Graphcool leverages serverless functions as an effective way to build event-driven backend applications.

Next to serverless functions, Graphcool's second major pillar is GraphQL. GraphQL is a new API standard that was invented and open-sourced by Facebook and is now maintained by a large community of individuals and organizations from all over the world.

Check out How to GraphQL to learn everything you need to know about GraphQL.

The Graphcool Framework provides an auto-generated GraphQL API based on a concrete data model. The API exposes CRUD operations as well as advanced features like filtering, sorting and pagination.

#Local workflows and a great developer experience

Graphcool backends, called services, are managed with the Graphcool CLI.

#How does Graphcool compare to web frameworks like Ruby on Rails or Express.js?

Standard web frameworks like Ruby on Rails, Express.js or Laravel allow you to bootstrap a web server based on a specific programming language. When building a backend application with any of these frameworks, you additionally need to setup and configure a database, integrate an ORM (or implement a custom data layer) and make sure the data is properly returned by the API.

With Graphcool, the auto-generated CRUD API will be the foundation for your backend. This API can also be tailored and easily extended by using an API gateway.

Graphcool itself is programming language agnostic. Functions can be implemented in any language that's supported by your function runtime. The API proxy layer effectively is a simple web server that can also be implemented in the language of your choice. You could thus use any of the afore mentioned frameworks to build the proxy layer.

Was this page helpful?