Adopting GraphQL in Large Codebases#
With the vibrant and growing GraphQL ecosystem and community, it's simpler than ever to start using GraphQL in your project. However, adopting GraphQL incrementally (and carefully!) in huge codebases powering large distributed systems is not quite as straightforward. We'll dive into how Airbnb is tackling this challenge, what we've learned so far, and how we plan to continue evolving our GraphQL infrastructure in the future.
Real-time GraphQL with Event Sourcing#
GraphQL makes real-time easy with it's Subscriptions support, but how easy is it to build a backend that puts real-time data first? With event sourcing, it's easier than you think! The ability to easily subscribe to data changes and have blazing-fast reads on our data sets at Gatsby enables our team to build a sophisticated cloud-native offering that is flexible for even the most demanding product requirements. Join Andrew as he gives a thirty-thousand foot overview of event sourcing and how naturally it fits with GraphQL and subscriptions.
Benjie loves using and talking about GraphQL, Node.js, PostgreSQL and React; he is the maintainer of PostGraphile, the original instant GraphQL API for your Postgres database.
Database-first GraphQL Development#
Learn how a database-centric approach to GraphQL API development can give your engineers more time to focus on the important parts of your application. Topics covered include authorization, adhering to GraphQL best practices, embracing the power of PostgreSQL, and avoiding common pitfalls.
Carolyn Stransky is a frontend developer and former technical writer based in Berlin. She currently works at Blacklane and teaches at ReDI School of Digital Integration. You’ll usually find her looking at memes or taking selfies in the nearest restroom.
Life is hard and so is learning GraphQL#
Learning a new technology can be daunting. For many of us, the way we try to make sense of a new technology is through their documentation and the examples we see online. The problem with GraphQL is that - because there’s no “vanilla” GraphQL - there’s no central hub for all of the information and tooling necessary to learn. While documentation is meant to serve as a tool for teaching, it’s underutilized and scattered throughout our community.
Consider this talk a voyage through the ups and downs of learning GraphQL. Along the way, we’ll touch on the major pain points faced by GraphQL beginners and how we can better enable our docs for learning and comprehension.
Dan Schafer is a software engineer at Facebook and a co-creator of GraphQL. He worked on the original GraphQL API for Facebook News Feed, developed Facebook’s GraphQL API Design principles, expanded GraphQL to support Mutations and Subscriptions, and contributed to the initial release of the GraphQL specification and reference implementation. Currently, he’s a tech lead on the Product Foundation team at Facebook, focused on building end-to-end client frameworks for development of the Facebook apps.
The Prehistory of GraphQL#
Ellie is a technologist, product engineer, speaker, teacher, and more. Currently, she works at Atlassian as a senior software engineer on the Statuspage team. In her spare time. she's the director of Women Who Code SF and helps early stage software teams scale their software platforms. Previously, she worked at Mavenlink, building highly usable and performant web products, like Full-Cycle Resource Management. Before Mavenlink, she led platform development for mRelief (YC W16), a tech non-profit, that has helped hundreds of thousands of low-income Americans get access to public assistance.
Emerging uses of GraphQL for rapid application development#
GraphQL makes dealing with application data a breeze, especially with open source libraries such as Apollo. However, many schemas simply mirror their RESTful counterparts, limiting their overall usefulness. In this talk I will cover emerging patterns that enable rapid GraphQL-powered application development.
Where art thou, my error?#
Glenn is a front-end Engineer, who builds modern user interfaces and apps with React & GraphQL, loves OSS, co-organizes ReactVienna meetups, and plays JM music on guitar.
Building tools for GraphQL#
Adopting GraphQL can be fairly demanding and it takes some time to find the right tooling. What can we do to improve DX and supercharge our GraphQL development? Let's deep-dive into GraphQL tooling that help us building GraphQL at scale.
(Un)expected use of GraphQL#
Ivan is very active in GraphQL community and one of the core contributors to graphql-js. He is co-founder of APIs.guru which specializes in API consulting. During last few years they released a bunch of popular GraphQL tools including GraphQL Voyager.
Hidden gems of GraphQL query#
We all love GraphQL query syntax because it’s simple and easy to learn. At the same time, it has a few useful features that are typically overlooked. If you think that you already know everything about GraphQL queries this talk is for you. Warning: this talk will contain spoilers from GraphQL Specification.
Jimmy is a principal scientist and full-stack developer at Butterfly Network and 4Catalyzer. He is an advocate for GraphQL internally, and is committed to using machine learning and the web to save lives by advancing healthcare technology. He also maintains a number of open-source libraries within the GraphQL ecosystem.
Building efficient, waterfall-free GraphQL applications#
GraphQL makes it easy to query your back end efficiently. However, when building large applications, this is not always enough on its own. For these larger projects, it’s easy to run into situations where requests still wait on each other, to the detriment of user experience. In this talk, we’ll explore how these problems arise, and look at strategies for mitigating these problems.
Johannes Schickling is the co-founder & CEO of Prisma, a GraphQL-based data layer for modern applications. Johannes is interested in Technology, Developer Tools, Open Source, Startups & Music.
End-to-end type-safety with GraphQL#
GraphQL is becoming the new standard for API development and shows rapid adoption both on the client and server. This talk dives deep into one of the most powerful features of GraphQL - its type-system. See how GraphQL can be used to enable end-to-end type-safety across any language, making your application architecture more resilient and easier to evolve.
Going offline first with GraphQL#
We live in a world that is online 24/7. Even so, we are reasonably lenient on the web when we're not connected to the internet. However, for mobile apps, not working in flakey connectivity zones is borderline unacceptable. Users expect your app to work offline (though they don't phrase it like that). They really don't care that a network request has failed or is taking a long time. And thankfully, we developers can make it happen.
This talk is about how tooling in GraphQL makes it reasonably straightforward to get your React Native app working offline.
Nik cares about good UX and development tools. He co-created several popular open source projects like DraftJS Plugins and Polished. Nik participated in Stripe’s Open Source Retreat and joined Serverless Inc. to deploy auto-scaling infrastructures. In his spare-time he enjoys writing code in Reason and play with WebVR as well as organising the ReactJS Vienna meetup.
Reason and GraphQL#
Using Reason's type inference we can create GraphQL servers with 100% type coverage. Regardless if we compile to Node.js or native binaries using Reason we can do this with ease.
Besides that Reason shines even more so on the client. Send one quick introspection request and you get full autocompletion on your schema right in the browser.
Advanced GraphQL Concepts#
You understood the basics of GraphQL or even worked with it in a production environment? Then this workshop is for you. While GraphQL comes with many benefits it also requires some rethinking. For example how to secure your server from malicious queries or how to give different users access to different parts of the Schema.
We will answer these questions and many more by covering the following topics:
- Rate limiting
- Persistent Queries
- Schema stitching
- API Design
Every topic is covered by a 20 minute presentation followed by a hands on exercise. After every exercise we will briefly glance at a solution and move on to the next topic. For the exercises you can choose the programming language and tools of your choice. Just come prepared with a working GraphQL setup.
To goal is that by the end of the day you are way more comfortable making design decisions for your GraphQL environment.
Tanmai is the co-founder of hasura.io. He is a StackOverflow powered fullstack, polyglot developer whose areas of interest and work span react, GraphQL, nodejs, python, haskell, docker, postgres, kubernetes. He is passionate about making it easy to build things and is the instructor of India's largest MOOC imad.tech with over 250,000 students.
Writing a realtime GraphQL backend as a compiler in Haskell#
At Hasura, we’ve been building a high-performance GraphQL backend that can handle a large number of subscription connections. We took a few interesting approaches to tackle this problem, and in this talk I’ll go over the key architectural decisions, programming constructs and of course the unforeseen implementation pitfalls we ran into. I’ll also cover tools from the Haskell ecosystem that made this possible. These are some of the topics I’ll touch upon:
- Fast GraphQL parsing with parser combinators
- Modelling and manipulating the GraphQL AST with algebraic data types
- Software Transactional Memory: Concurrency constructs for scaling graphql subscriptions
Juho Vepsäläinen is behind the SurviveJS effort. He has been active in the open source scene since the early 2000s and participated in projects like Blender and webpack as a core team member. Blue Arrow Awards winner.
Let’s Learn GraphQL#
So you want to learn GraphQL? That is awesome! But like any other technology it's not easy to get started and get the basics of it mainly because all the docs are spread all over the place.
In this 8 hour workshop we will create a GraphQL server with Apollo Server, connect it to a Postgres database in Heroku to have a fully functional GraphQL Server.
After that we will jump to the frontend using React and Apollo to query and mutate a GraphQL Endpoint easily.
- Node installed, I have version 10.3.0 but anything that supports async await is great!
- I use yarn but npm is 💯
- Heroku Account - https://heroku.com/
- Postgres DB in Heroku - Video on how to do it: https://cdn.rawgit.com/SaraVieira/graphql-workshop/13d73f3b/howtoheroku.mp4
- CodeSanbox Account is preferred so you can keep all the files in your account
- React knowledge
- An overview of what GraphQL is
- The basics of a querying with GraphQL
- The basics of a mutations in GraphQL
- Connect to a Postgres DB
- Using context
- Make multiple requests in one Query
- Making simple queries with React and React-Apollo
- Making advanced queries with React and React-Apollo
- Creating our own query component
- Mutations with React Apollo
- Updating the UI automatically after a mutation
- Using pagination
This workshop is free. Tickets would be distributed through a diversity ticket program. Ticket will include a free ticket to the actual conference. Apply for a diversity ticket.
A Jazz guitarist turned developer, Marc-André is currently working at GitHub, where he is trying to help building better APIs. He is currently writing a book, The Little Book of GraphQL Design. When he's not hacking on or thinking about GraphQL, you might find him throwing heavy weights above his head.
GraphQL Schema Design#
Building a brand new GraphQL API? Migrating from a REST API? If you are interested in designing a GraphQL schema that is great to use by clients and stands the test of time, this workshop is for you.
Alternating between presentations and hands on exercices, this workshop will cover:
- Good development workflows to build GraphQL APIs
- Common anti-patterns
- How to build an evolvable schema
- How to approach a migration from another API
- Domain driven design & GraphQL
- How to design errors
- Must-have tooling for building GraphQL APIs at scale
- Many other great practices used in the largest GraphQL APIs out there!
For the exercices, we will only use the GraphQL SDL (Schema Definition Language), meaning you'll get to learn no matter what language you use to build your schema.
Mikhail is a GraphQL hipster. He started GraphQL startup before GraphQL was ever public. The startup failed, but Mikhail has been active in GraphQL community ever since, working on tools like Schema Stitching and Apollo Launchpad. He is one of the organizers of GraphQL Finland.
Building a GraphQL API with node.js#
Learn how to build a GraphQL API from scratch using Node.js. This workshop is aimed at GraphQL beginners, but you probably have built an API server before. We'll go through the basics of building a GraphQL API server, wrap a REST API with it and then connect it to a database.
The following topics will be covered:
- Basics of GraphQL on a server
- Resolver model
- Ways to define a GraphQL schema
- Schema first design
- Evolving the backing data service, without changing the schema
- Wrapping a REST API with GraphQL gateway
- Connecting to a database
Workshop will have an interactive format, where I will livecode, while explaining what I'm doing. There will also be short presentations and non-coding parts, where I will explain some of the advanced concepts.
At the end of the workshop you should be comfortable building a GraphQL API with node.js.
This workshop is only offered as a bundle deal with a conference.