16 April 2016

React Amsterdam 2016: Building (Reactive GraphQL Apps With) Apollo

Speaker: @martijnwalraven (Meteor)

Tech talk about: Apollo and GraphQL

See also: Building Apollo Medium Blog

Long term project, so not finished. Talk is about the vision.

Background


Meteor, consists of:

  • View layer (React can replace this)
  • Data stack (Minimongo / MongoDB)
  • Build tool
REST vs Meteor
  • Imperative data fetches vs declaritive data requirements
  • Lists of endpoints vs semantic data with identity
  • Independent request vs stateful client-side caching

Apollo


Apollo can be seen as the next version of the Meteor Data Stack, but... Apollo is independent!

Apollo will connect to:
React, Angular, Swift, Andoird, Java, Python, Scala, Go, Ruby

Why you want Apollo?
Need to do Application Data Management

Goal:
Decouple client from services

To decouple client from services, there is a need for a query language and GraphQL fills this gap.



Lifecycle of a query:
  1. UI passes data requirements to client
  2. queries diffed against existing stored data
  3. minimized query sent to server
  4. data aggregated from backend services
  5. result returned to client
  6. client updates store
  7. result is delivered to the UI
Work with the rest of the GraphQL community, not in isolation.

To do: Building tools to improve the GraphQL developer experience

Not fond of Relay, Apollo tools focus on debugging, transparency and simplicity.

First alpha of Apollo Client will probably  be released this week.