Skip to content

2016 03 14 Relay Team Sync Notes

Joseph Savona edited this page Mar 15, 2016 · 4 revisions

Agenda

  • Status updates
  • Discussion about H1 plans

Status Updates

No sync last week, much of the team was remote.

  • @steveluscher
    • ReactNative + Relay OSS are now compatible!
    • Oncall
    • Continuing RelayConnection work
  • @wincent
    • Low-level mutation API (RelayGraphQLMutation)
    • Adding documentation to mutations
    • Turning on validation for internal mutations
  • @kassens
    • Diff queries slow on large lists, investigating
    • Supporting internal product teams
  • @yungsters
    • Cleaning up codebase
    • Persisted queries
      • Logging issue
      • Web stuff
  • @yuzhi
    • Support FB GraphQL feature of skipping null fields in GraphQL response
    • Fix for reusing client IDs
    • Relay office hours
  • @josephsavona
    • Shipped contextual Relay - next step server rendering!
    • Rough proposal for Relay Core / react-relay split
    • Proof of concept for not doing query tracking (perf positive), not having paths (perf neutral)
    • Fixed non-nodes plural root calls in OSS
  • @elynde
    • Meetings
      • Perf people
      • React Native London people

H1 Plans

Background

One of our goals with Relay is to make it easier for our developers to build apps that work well regardless of the device or network. At Facebook, we recognize that more and more people are using our products on mobile devices on slower networks. For example, people in emerging markets typically use devices such as 2011 year-class phones and connect via 2G class networks. These devices and networks present their own set of engineering challenges and the Relay core team is working to improve performance in these scenarios.

Discussion

In addition to standard approaches to performance work such as profiling, benchmarking, etc, we're also focusing on a few high-level projects:

  • A simpler/faster Relay core. Where possible, we'll move non-critical features into a layer above the core in order to preserve the developer experience and get additional perf where necessary.
  • New top-level connection API optimized for complex list views.
  • New low-level mutation API to help reduce some bookkeeping overhead.
  • Normalized GraphQL response format.
  • Persisted queries - construct queries at build time, only send query ID to the server.

Open Source

Hopefully this gives you a bit more context as to how we've prioritized our efforts since we open-sourced and what we're focusing on going forward. We'll continue to focus our efforts on:

As always, reach to us with questions on Discord or Stack Overflow.