Relay
JavaScript framework for building data-driven React applications
...That means you won't accidentally break other components as you refactor or make changes to your app. Relay's compiler aggregates and optimizes the data requirements for your entire app, so that they can be efficiently fetched in a single GraphQL request. Relay handles the heavy lifting to ensure the data declared by your components is fetched in the most efficient way. For example, by deduplicating identical fields, and precomputing information used at runtime, among other optimizations. Relay also supports executing GraphQL Mutations, optionally with optimistic updates, and updates to local data.