Migration plan
We believe that iterative migration is the best way to go. The long-term goal is to phase-out Ember Data in favor of Redux.
General Strategy
Prove out redux-query (done)
Move vishnu-frontend to toranb's
ember-reduxAdd
redux-queryto vishnuAdd schemas/models to vishnu if necessary (this is likely unnecessary).
Prod Infra converts one feature over and documents process.
Product converts one feature over, Prod Infra works closely to ensure it's solid.
Prod Infra improves documentation based on feedback.
Teams convert features over using our guides
We should aim to have the majority of our Grow and Maintain Value features converted within 12 months (maybe less maybe more). We believe the ROI for this effort will be noticeable and will propel the change much like it did for Slate. Typical steps in converting features will look like:
Add a reducer for the feature
Setup the initial state for the feature
Fetch data using
redux-queryand ourquery-builder(very much like Query Expressions)Update views to work with pojo's. They mostly do already.
Convert computed properties to selectors (using
reselect)Move model mutation logic from routes and actions into reducers
Test the reducers
Work out any overlap with non-redux code. We'll have strategies in place to identify and manage this.
Most of these steps will feel like a simplification and clarification of the codebase. Especially for devs how have done it once or twice. They are generally low-effort tasks.
What stays the same:
Most of the view code
Most of the CSS
The overall routing structure
The component hierarchy