1/12/2017 - 10:21 AM

Model normalize/denormalize flow

Model normalize/denormalize flow


  1. Define nested Schema
  2. Saga middleware detect a _REQUEST Action, which trigger a API request
  3. API request success trigger a _REQUEST_SUCCESS Action, api client get API response, map it with model to be normalized to, if the match found, normalizer flatten the nested JSON objects into flat entities structure, then send to store
  4. Redux store puts the normalized entities in place automatically
  5. ?? We need to manually update associated key to parent object, can this be automated?
  6. When passing data from Store to Container, we denormalize the objects by recursively looking into the key -> object mapping, reassemble the parent object. If any child object is missing, we report a error in console

Interesting files to look into:

  • redux/sagas/client/client.js - normalize object according to schema definition
  • redux/models/index.js - recursive schema definition
  • redux/helpers/denormalizer.js - recursive denormalize object from Redux store to nested object structure


  • New association need to be defined and exported from schema file
  • model to be normalized to needs to be defined with ACTION object