Today I released DataLoader v2.0.0, almost two years since the last release, more than four years since its initial release, and nearly ten years since the original internal implementation at Facebook.

With it come much improved TypeScript and Flow type definitions, some significant improvements to the scheduling behavior that result in better whole-program performance (as well as the ability to customize this behavior), and a clearer legal framing with the MIT license and neutral non-profit copyright ownership.

I’d love to tell you more about this release, but first a bit of the story of where this library came from.

In the fall of 2015, shortly after open sourcing GraphQL, Dan, Nick and I would occasionally meet with teams at other companies to answer questions and advise about GraphQL and how it worked at Facebook and swap ideas about product infrastructure. These discussions were exciting and inspiring and, frequently, surprising. At Facebook GraphQL was a thin layer atop a stack of abstractions which had been in place far longer, most of which designed by Nick and the Product Infrastructure team. …

In the spring of 2012, as part of an effort to build Facebook’s next generation iOS app, Nick Schrock, Dan Schafer and myself set out to build an API for News Feed and arrived at the first version of GraphQL. We saw potential in what we had built and spent the next few years expanding GraphQL to support the majority of Facebook’s products.

Inspired by a series of other successful open source efforts from our teammates, we decided to share GraphQL with the broader community in the summer of 2015, following an intensive internal redesign. Since then, the GraphQL community has grown from hobbyists to large companies adopting GraphQL to new companies started from the ground up to build new tools and services for GraphQL. Today there are regular meetups and multiple dedicated annual developer conferences around the globe by and for the GraphQL community. …

A little over month ago I left Facebook after working there for nearly 10 years. I’m excited to share that I’m joining Robinhood to help lead web engineering. I wanted to share why I’m joining Robinhood, and how my decision may impact GraphQL and the other open source projects I contribute to.

I joined Facebook back in 2008 because I believed in their mission. I had personally experienced how Facebook totally changed the college community and the opportunity to bring that to the whole world was something I just couldn’t pass up. Since then, Facebook’s mission has become even more ambitious: to connect people, build communities, and bring the world closer together. …

Last week I asked for opinions about developing on a 12" Macbook, and after getting pretty overwhelmingly positive feedback decided to give it a go.

I’ll admit that I was nervous that the underpowered processor would grind my typical workflows to a halt. The 12" Macbook has half the memory and less than half the clock speed of my previous Macbook Pro.

Image for post

For the last week I’ve been using the Macbook for day to day JavaScript development with VS Code, Github, and a handful of common tools. Everything has felt about the same, with no noticeable slow down or pauses. …

Since it’s open sourcing almost three years ago, GraphQL.js has followed a “pre-major” version scheme. The most recent release was v0.13.2. The next release will move to a proper semver major version as v14.0.0. I need your help to prepare.

What happened to v1.0.0?

Versions serve two purposes: a way people can talk about a project’s progress as well as a way software can express dependencies. The semver spec makes it clear that major version zero means an API is unstable and can change; moving to major versions indicates the beginning of a stable API. However people place meaning the progression of version numbers and can have preconceived notions of version 1.0 …

Today we’re relicensing the GraphQL specification under the Open Web Foundation Agreement (OWFa) v1.0. We think the OWFa is a great fit for GraphQL because it’s designed for collaborative open standards and supported by other well-known companies. The OWFa allows GraphQL to be implemented under a royalty-free basis, and allows other organizations to contribute to the project on reasonable terms.

Additionally, our reference implementation GraphQL.js and client-side framework Relay will be relicensed under the MIT license, following the React open source ecosystem’s recent change. The GraphQL specification and our open source software around GraphQL have different licenses because the open source projects’ license only covers the specific open source projects while the OWFa is meant to cover implementations of the GraphQL specification.

I want to thank everyone for their patience as we worked to arrive at this change. We hope that GraphQL adopting the Open Web Foundation Agreement, and GraphQL.js …

A few days ago I got to share GraphQL at the React-Europe conference, a project I’ve been working on for over three years at Facebook.

After this talk, multiple attendees of the conference asked me how Facebook is able to consistently produce new technology that “rethinks current best practices” which succeeds in altering the way we build software as an industry.

This was a React conference, so let’s start there…

React was laughed at by the JavaScript community when it open sourced 2 years ago, and for the first few months of its existence internally at Facebook many (including myself) thought it was a bad idea. Jordan Walke was stubborn in all the right ways and his idealism eventually found impact. We thought he was crazy, and he is, but he was also on to something. React has changed the way we build things across all platforms. Adam Ernst borrowed these ideas and built ComponentKit for iOS which was met at first by great skepticism by our internal iOS teams. …


Lee Byron

I design and build software and teams at Robinhood. React, GraphQL, Immutable.js, Web, Mobile, JavaScript. Opinions are my own, often flawed.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store