Skip to content

Roadmap

Joseph Savona edited this page Apr 5, 2016 · 19 revisions

H1 2016

These reflect the current plans of Relay Team as of the 14 March 2016 Sync. For the latest information as plans evolve, see the Meeting Notes.

Themes

  • Mobile First: support React Native product teams at Facebook.
  • Performance
  • Simplicity with predictable degrees of correctness.
    • Balancing product sophistication vs speed of iteration on Relay core.
  • Provide low-level primitives so that product teams and OSS users can build tooling in user space (as they can with React).
  • Reduce support costs:
    • Identify and address common types of issues.
    • Simplify the API and improve documentation to help developers understand the framework better.

Current Projects

  • Improve mutations.
  • Persisted queries.
  • RelayConnection API.
  • Unified response handling (GraphMode).
  • Simpler/faster core (#559, also ideas in Potential Projects).

Potential Projects

  • Split Relay core and react-relay; core provides basic primitives to build tools in userspace. (see #558, #559)
  • Improve disk cache hit rates.
  • Investigate "persisted"/native cache readers (read from cache in native code).
  • Reduce memory usage (improve garbage collection or rethink).
  • Potential improved integration with React.
  • Local schema and/or Redux integration.
  • Support TTL or some other cache expiration policy.

Archive

Previous roadmap notes

This is a tentative roadmap of the high-level enhancements we're working on or planning for Relay. Note that we're using the issues page to track bugs and as a venue for discussing these enhancements with the community. If you're curious about one of the tasks below and we haven't already created an issue, feel free to file one!

In progress:

  • Support using Relay offline (data persistence, handling lack of network, etc): @yuzhi.
  • Support extracting queries at build time: @yungsters.
  • Create Relay dev tools: @kassens.
  • Support arbitrary root fields (avoids the need for a viewer wrapper field): #112 by @steveluscher.
  • Make all Relay state contextual: #558 by @josephsavona.
  • Make Relay more modular, drawing a clear boundary btween Relay core (imperative APIs for data-fetching) and the React/Relay integration (declarative APIs such as RelayRootContainer and RelayContainer). #559 by @josephsavona.
  • Make OSS Relay & React Native work together: #26 by @zpao, @spicyj, and others.
  • Support deferred queries (or alternative) in OSS: #288 by @wincent.

Future enhancements:

If you're looking for a place to contribute there are a number of smaller, well-defined enhancements tagged with "help wanted". The items below are larger enhancements that we plan to address in the future. If you're interested in working on them please reach out to the core team first.

  • Support client/local state
    • API for resolving fields locally: #431.
    • Support querying & compiling client-only fields by extending the server schema, and a means for writing data for these fields into the cache: #114.
  • Real-time updates via an event-based Subscription API: #541.
  • Simplify the mutations API: #538.